@brigadasos/nadeshiko-sdk 1.3.0 → 1.4.0-dev.28a0384
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.
- package/README.md +105 -2
- package/dist/client/client.gen.d.ts.map +1 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/types.gen.d.ts.map +1 -0
- package/dist/client/utils.gen.d.ts.map +1 -0
- package/dist/client.gen.d.ts.map +1 -0
- package/dist/core/auth.gen.d.ts.map +1 -0
- package/dist/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/core/params.gen.d.ts.map +1 -0
- package/dist/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/dist/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/core/types.gen.d.ts.map +1 -0
- package/dist/core/utils.gen.d.ts.map +1 -0
- package/dist/index.cjs +622 -55
- package/dist/index.cjs.map +5 -5
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +629 -51
- package/dist/index.js.map +5 -5
- package/dist/internal/admin.gen.d.ts +2 -0
- package/dist/internal/admin.gen.d.ts.map +1 -0
- package/dist/internal/media.gen.d.ts +2 -0
- package/dist/internal/media.gen.d.ts.map +1 -0
- package/dist/internal/user.gen.d.ts +2 -0
- package/dist/internal/user.gen.d.ts.map +1 -0
- package/dist/internal.gen.d.ts +4 -0
- package/dist/internal.gen.d.ts.map +1 -0
- package/dist/nadeshiko.gen.d.ts +79 -0
- package/dist/nadeshiko.gen.d.ts.map +1 -0
- package/dist/sdk.gen.d.ts +660 -0
- package/dist/sdk.gen.d.ts.map +1 -0
- package/dist/types.gen.d.ts +5121 -0
- package/dist/types.gen.d.ts.map +1 -0
- package/package.json +4 -8
- package/dist/generated/client/client.gen.d.ts.map +0 -1
- package/dist/generated/client/index.d.ts.map +0 -1
- package/dist/generated/client/types.gen.d.ts.map +0 -1
- package/dist/generated/client/utils.gen.d.ts.map +0 -1
- package/dist/generated/client.gen.d.ts.map +0 -1
- package/dist/generated/core/auth.gen.d.ts.map +0 -1
- package/dist/generated/core/bodySerializer.gen.d.ts.map +0 -1
- package/dist/generated/core/params.gen.d.ts.map +0 -1
- package/dist/generated/core/pathSerializer.gen.d.ts.map +0 -1
- package/dist/generated/core/queryKeySerializer.gen.d.ts.map +0 -1
- package/dist/generated/core/serverSentEvents.gen.d.ts.map +0 -1
- package/dist/generated/core/types.gen.d.ts.map +0 -1
- package/dist/generated/core/utils.gen.d.ts.map +0 -1
- package/dist/generated/index.d.ts +0 -6
- package/dist/generated/index.d.ts.map +0 -1
- package/dist/generated/nadeshiko.gen.d.ts +0 -27
- package/dist/generated/nadeshiko.gen.d.ts.map +0 -1
- package/dist/generated/sdk.gen.d.ts +0 -257
- package/dist/generated/sdk.gen.d.ts.map +0 -1
- package/dist/generated/types.gen.d.ts +0 -2001
- package/dist/generated/types.gen.d.ts.map +0 -1
- /package/dist/{generated/client → client}/client.gen.d.ts +0 -0
- /package/dist/{generated/client → client}/index.d.ts +0 -0
- /package/dist/{generated/client → client}/types.gen.d.ts +0 -0
- /package/dist/{generated/client → client}/utils.gen.d.ts +0 -0
- /package/dist/{generated/client.gen.d.ts → client.gen.d.ts} +0 -0
- /package/dist/{generated/core → core}/auth.gen.d.ts +0 -0
- /package/dist/{generated/core → core}/bodySerializer.gen.d.ts +0 -0
- /package/dist/{generated/core → core}/params.gen.d.ts +0 -0
- /package/dist/{generated/core → core}/pathSerializer.gen.d.ts +0 -0
- /package/dist/{generated/core → core}/queryKeySerializer.gen.d.ts +0 -0
- /package/dist/{generated/core → core}/serverSentEvents.gen.d.ts +0 -0
- /package/dist/{generated/core → core}/types.gen.d.ts +0 -0
- /package/dist/{generated/core → core}/utils.gen.d.ts +0 -0
|
@@ -0,0 +1,5121 @@
|
|
|
1
|
+
export type ClientOptions = {
|
|
2
|
+
baseUrl: 'http://localhost:5000' | 'https://api.nadeshiko.co' | (string & {});
|
|
3
|
+
};
|
|
4
|
+
/**
|
|
5
|
+
* A media filter entry with optional episode restriction
|
|
6
|
+
*/
|
|
7
|
+
export type MediaFilterItem = {
|
|
8
|
+
/**
|
|
9
|
+
* Media ID to filter
|
|
10
|
+
*/
|
|
11
|
+
mediaId: number;
|
|
12
|
+
/**
|
|
13
|
+
* Specific episodes (omit for all episodes)
|
|
14
|
+
*/
|
|
15
|
+
episodes?: Array<number>;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Media category type
|
|
19
|
+
*/
|
|
20
|
+
export type Category = 'ANIME' | 'JDRAMA';
|
|
21
|
+
/**
|
|
22
|
+
* Content rating level for the segment
|
|
23
|
+
*/
|
|
24
|
+
export type ContentRating = 'SAFE' | 'SUGGESTIVE' | 'QUESTIONABLE' | 'EXPLICIT';
|
|
25
|
+
/**
|
|
26
|
+
* Search filters for narrowing segment results
|
|
27
|
+
*/
|
|
28
|
+
export type SearchFilters = {
|
|
29
|
+
/**
|
|
30
|
+
* Media inclusion/exclusion filters
|
|
31
|
+
*/
|
|
32
|
+
media?: {
|
|
33
|
+
/**
|
|
34
|
+
* Include only segments from these media (with optional episode filter)
|
|
35
|
+
*/
|
|
36
|
+
include?: Array<MediaFilterItem>;
|
|
37
|
+
/**
|
|
38
|
+
* Exclude segments from these media (with optional episode filter)
|
|
39
|
+
*/
|
|
40
|
+
exclude?: Array<MediaFilterItem>;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Media category filter
|
|
44
|
+
*/
|
|
45
|
+
category?: Array<Category>;
|
|
46
|
+
/**
|
|
47
|
+
* Content ratings to include (omit for all ratings)
|
|
48
|
+
*/
|
|
49
|
+
contentRating?: Array<ContentRating>;
|
|
50
|
+
/**
|
|
51
|
+
* Segment status filter
|
|
52
|
+
*/
|
|
53
|
+
status?: Array<'DELETED' | 'ACTIVE' | 'SUSPENDED' | 'VERIFIED' | 'INVALID' | 'TOO_LONG'>;
|
|
54
|
+
/**
|
|
55
|
+
* Content character count range filter
|
|
56
|
+
*/
|
|
57
|
+
segmentLengthChars?: {
|
|
58
|
+
/**
|
|
59
|
+
* Minimum content length
|
|
60
|
+
*/
|
|
61
|
+
min?: number;
|
|
62
|
+
/**
|
|
63
|
+
* Maximum content length
|
|
64
|
+
*/
|
|
65
|
+
max?: number;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Segment audio duration range filter (in milliseconds)
|
|
69
|
+
*/
|
|
70
|
+
segmentDurationMs?: {
|
|
71
|
+
/**
|
|
72
|
+
* Minimum duration in ms
|
|
73
|
+
*/
|
|
74
|
+
min?: number;
|
|
75
|
+
/**
|
|
76
|
+
* Maximum duration in ms
|
|
77
|
+
*/
|
|
78
|
+
max?: number;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Resource to expand in the response includes block
|
|
83
|
+
*/
|
|
84
|
+
export type IncludeExpansion = 'media';
|
|
85
|
+
export type SearchRequest = {
|
|
86
|
+
/**
|
|
87
|
+
* What to search for (omit for queryless browse)
|
|
88
|
+
*/
|
|
89
|
+
query?: {
|
|
90
|
+
/**
|
|
91
|
+
* Search expression (supports boolean operators, wildcards, phrase matching)
|
|
92
|
+
*/
|
|
93
|
+
search?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Whether to use exact phrase matching
|
|
96
|
+
*/
|
|
97
|
+
exactMatch?: boolean;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Max amount of entries by response
|
|
101
|
+
*/
|
|
102
|
+
limit?: number;
|
|
103
|
+
/**
|
|
104
|
+
* Current page of search
|
|
105
|
+
*/
|
|
106
|
+
cursor?: Array<number>;
|
|
107
|
+
/**
|
|
108
|
+
* Sort configuration
|
|
109
|
+
*/
|
|
110
|
+
sort?: {
|
|
111
|
+
/**
|
|
112
|
+
* Sort mode
|
|
113
|
+
*/
|
|
114
|
+
mode?: 'ASC' | 'DESC' | 'NONE' | 'TIME_ASC' | 'TIME_DESC' | 'RANDOM';
|
|
115
|
+
/**
|
|
116
|
+
* Non-negative integer seed for deterministic random sorting (only used when mode is RANDOM)
|
|
117
|
+
*/
|
|
118
|
+
seed?: number;
|
|
119
|
+
};
|
|
120
|
+
filters?: SearchFilters;
|
|
121
|
+
/**
|
|
122
|
+
* Resources to expand in the response includes block
|
|
123
|
+
*/
|
|
124
|
+
include?: Array<IncludeExpansion>;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Segment with content, optional highlights, and media URLs
|
|
128
|
+
*/
|
|
129
|
+
export type Segment = {
|
|
130
|
+
/**
|
|
131
|
+
* Unique identifier for the segment
|
|
132
|
+
*/
|
|
133
|
+
uuid: string;
|
|
134
|
+
/**
|
|
135
|
+
* Position of the segment within the episode
|
|
136
|
+
*/
|
|
137
|
+
position: number;
|
|
138
|
+
/**
|
|
139
|
+
* Segment status
|
|
140
|
+
*/
|
|
141
|
+
status: 'DELETED' | 'ACTIVE' | 'SUSPENDED' | 'VERIFIED' | 'INVALID' | 'TOO_LONG';
|
|
142
|
+
/**
|
|
143
|
+
* Start time of the segment in milliseconds from the beginning of the episode
|
|
144
|
+
*/
|
|
145
|
+
startTimeMs: number;
|
|
146
|
+
/**
|
|
147
|
+
* End time of the segment in milliseconds from the beginning of the episode
|
|
148
|
+
*/
|
|
149
|
+
endTimeMs: number;
|
|
150
|
+
contentRating: ContentRating;
|
|
151
|
+
/**
|
|
152
|
+
* Episode number this segment belongs to
|
|
153
|
+
*/
|
|
154
|
+
episode: number;
|
|
155
|
+
/**
|
|
156
|
+
* Media ID this segment belongs to
|
|
157
|
+
*/
|
|
158
|
+
mediaId: number;
|
|
159
|
+
textJa: {
|
|
160
|
+
/**
|
|
161
|
+
* Original Japanese content
|
|
162
|
+
*/
|
|
163
|
+
content: string;
|
|
164
|
+
/**
|
|
165
|
+
* Japanese content with search terms highlighted
|
|
166
|
+
*/
|
|
167
|
+
highlight?: string;
|
|
168
|
+
};
|
|
169
|
+
textEn: {
|
|
170
|
+
/**
|
|
171
|
+
* English translation
|
|
172
|
+
*/
|
|
173
|
+
content: string;
|
|
174
|
+
/**
|
|
175
|
+
* Whether the translation was machine-translated
|
|
176
|
+
*/
|
|
177
|
+
isMachineTranslated: boolean;
|
|
178
|
+
/**
|
|
179
|
+
* English content with search terms highlighted
|
|
180
|
+
*/
|
|
181
|
+
highlight?: string;
|
|
182
|
+
};
|
|
183
|
+
textEs: {
|
|
184
|
+
/**
|
|
185
|
+
* Spanish translation
|
|
186
|
+
*/
|
|
187
|
+
content: string;
|
|
188
|
+
/**
|
|
189
|
+
* Whether the translation was machine-translated
|
|
190
|
+
*/
|
|
191
|
+
isMachineTranslated: boolean;
|
|
192
|
+
/**
|
|
193
|
+
* Spanish content with search terms highlighted
|
|
194
|
+
*/
|
|
195
|
+
highlight?: string;
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* URLs to media resources for this segment
|
|
199
|
+
*/
|
|
200
|
+
urls: {
|
|
201
|
+
/**
|
|
202
|
+
* URL to the subtitle image snapshot
|
|
203
|
+
*/
|
|
204
|
+
imageUrl: string;
|
|
205
|
+
/**
|
|
206
|
+
* URL to the audio clip for this segment
|
|
207
|
+
*/
|
|
208
|
+
audioUrl: string;
|
|
209
|
+
/**
|
|
210
|
+
* URL to the video clip for this segment
|
|
211
|
+
*/
|
|
212
|
+
videoUrl: string;
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
/**
|
|
216
|
+
* Map of external IDs keyed by source. Only sources with values are included.
|
|
217
|
+
*/
|
|
218
|
+
export type ExternalId = {
|
|
219
|
+
/**
|
|
220
|
+
* AniList ID
|
|
221
|
+
*/
|
|
222
|
+
anilist?: string;
|
|
223
|
+
/**
|
|
224
|
+
* IMDB ID
|
|
225
|
+
*/
|
|
226
|
+
imdb?: string;
|
|
227
|
+
/**
|
|
228
|
+
* TVDB ID
|
|
229
|
+
*/
|
|
230
|
+
tvdb?: string;
|
|
231
|
+
};
|
|
232
|
+
/**
|
|
233
|
+
* Japanese voice actor (seiyuu)
|
|
234
|
+
*/
|
|
235
|
+
export type Seiyuu = {
|
|
236
|
+
/**
|
|
237
|
+
* AniList staff ID
|
|
238
|
+
*/
|
|
239
|
+
id: number;
|
|
240
|
+
/**
|
|
241
|
+
* Japanese name of the voice actor
|
|
242
|
+
*/
|
|
243
|
+
nameJa: string;
|
|
244
|
+
/**
|
|
245
|
+
* English name of the voice actor
|
|
246
|
+
*/
|
|
247
|
+
nameEn: string;
|
|
248
|
+
/**
|
|
249
|
+
* Profile image URL
|
|
250
|
+
*/
|
|
251
|
+
imageUrl: string;
|
|
252
|
+
};
|
|
253
|
+
/**
|
|
254
|
+
* Character appearing in a media with their voice actor and role
|
|
255
|
+
*/
|
|
256
|
+
export type MediaCharacter = {
|
|
257
|
+
/**
|
|
258
|
+
* AniList character ID
|
|
259
|
+
*/
|
|
260
|
+
id: number;
|
|
261
|
+
/**
|
|
262
|
+
* Japanese name of the character
|
|
263
|
+
*/
|
|
264
|
+
nameJa: string;
|
|
265
|
+
/**
|
|
266
|
+
* English name of the character
|
|
267
|
+
*/
|
|
268
|
+
nameEn: string;
|
|
269
|
+
/**
|
|
270
|
+
* Character image URL
|
|
271
|
+
*/
|
|
272
|
+
imageUrl: string;
|
|
273
|
+
seiyuu: Seiyuu;
|
|
274
|
+
/**
|
|
275
|
+
* Character's role in the media
|
|
276
|
+
*/
|
|
277
|
+
role: 'MAIN' | 'SUPPORTING' | 'BACKGROUND';
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* Media entry with full metadata
|
|
281
|
+
*/
|
|
282
|
+
export type Media = {
|
|
283
|
+
/**
|
|
284
|
+
* Unique identifier for the media
|
|
285
|
+
*/
|
|
286
|
+
id: number;
|
|
287
|
+
externalIds: ExternalId;
|
|
288
|
+
/**
|
|
289
|
+
* Original Japanese name of the media
|
|
290
|
+
*/
|
|
291
|
+
nameJa: string;
|
|
292
|
+
/**
|
|
293
|
+
* Romaji transliteration of the media name
|
|
294
|
+
*/
|
|
295
|
+
nameRomaji: string;
|
|
296
|
+
/**
|
|
297
|
+
* English name of the media
|
|
298
|
+
*/
|
|
299
|
+
nameEn: string;
|
|
300
|
+
/**
|
|
301
|
+
* Format of the media release (e.g., TV, OVA, Movie)
|
|
302
|
+
*/
|
|
303
|
+
airingFormat: string;
|
|
304
|
+
/**
|
|
305
|
+
* Current airing status (FINISHED, RELEASING, NOT_YET_RELEASED, CANCELLED)
|
|
306
|
+
*/
|
|
307
|
+
airingStatus: string;
|
|
308
|
+
/**
|
|
309
|
+
* List of genres associated with the media
|
|
310
|
+
*/
|
|
311
|
+
genres: Array<string>;
|
|
312
|
+
/**
|
|
313
|
+
* Full URL to the cover image
|
|
314
|
+
*/
|
|
315
|
+
coverUrl: string;
|
|
316
|
+
/**
|
|
317
|
+
* Full URL to the banner image
|
|
318
|
+
*/
|
|
319
|
+
bannerUrl: string;
|
|
320
|
+
/**
|
|
321
|
+
* Start date of the media (first airing/release)
|
|
322
|
+
*/
|
|
323
|
+
startDate: string;
|
|
324
|
+
/**
|
|
325
|
+
* End date of the media (last airing/release)
|
|
326
|
+
*/
|
|
327
|
+
endDate?: string;
|
|
328
|
+
category: Category;
|
|
329
|
+
/**
|
|
330
|
+
* Total number of subtitle segments available
|
|
331
|
+
*/
|
|
332
|
+
segmentCount: number;
|
|
333
|
+
/**
|
|
334
|
+
* Total number of episodes available
|
|
335
|
+
*/
|
|
336
|
+
episodeCount: number;
|
|
337
|
+
/**
|
|
338
|
+
* Animation studio that produced the media
|
|
339
|
+
*/
|
|
340
|
+
studio: string;
|
|
341
|
+
/**
|
|
342
|
+
* Airing season label for the media
|
|
343
|
+
*/
|
|
344
|
+
seasonName: string;
|
|
345
|
+
/**
|
|
346
|
+
* Airing year for the media
|
|
347
|
+
*/
|
|
348
|
+
seasonYear: number;
|
|
349
|
+
/**
|
|
350
|
+
* Characters appearing in the media with their voice actors
|
|
351
|
+
*/
|
|
352
|
+
characters?: Array<MediaCharacter>;
|
|
353
|
+
};
|
|
354
|
+
/**
|
|
355
|
+
* Pagination metadata for search results
|
|
356
|
+
*/
|
|
357
|
+
export type PaginationInfo = {
|
|
358
|
+
/**
|
|
359
|
+
* Whether there are more results after this page
|
|
360
|
+
*/
|
|
361
|
+
hasMore?: boolean;
|
|
362
|
+
/**
|
|
363
|
+
* Estimated total number of matching segments
|
|
364
|
+
*/
|
|
365
|
+
estimatedTotalHits?: number;
|
|
366
|
+
/**
|
|
367
|
+
* Whether estimatedTotalHits is exact or a lower bound
|
|
368
|
+
*/
|
|
369
|
+
estimatedTotalHitsRelation?: 'EXACT' | 'LOWER_BOUND';
|
|
370
|
+
/**
|
|
371
|
+
* Cursor for fetching the next page (undefined when hasMore is false)
|
|
372
|
+
*/
|
|
373
|
+
cursor?: Array<number>;
|
|
374
|
+
};
|
|
375
|
+
export type SearchResponse = {
|
|
376
|
+
segments?: Array<Segment>;
|
|
377
|
+
includes?: {
|
|
378
|
+
/**
|
|
379
|
+
* Media objects keyed by mediaId
|
|
380
|
+
*/
|
|
381
|
+
media?: {
|
|
382
|
+
[key: string]: Media;
|
|
383
|
+
};
|
|
384
|
+
};
|
|
385
|
+
pagination?: PaginationInfo;
|
|
386
|
+
};
|
|
387
|
+
/**
|
|
388
|
+
* Bad Request error response
|
|
389
|
+
*/
|
|
390
|
+
export type Error400 = {
|
|
391
|
+
/**
|
|
392
|
+
* Specific error code for programmatic handling
|
|
393
|
+
*/
|
|
394
|
+
code: 'VALIDATION_FAILED' | 'INVALID_JSON' | 'INVALID_REQUEST';
|
|
395
|
+
/**
|
|
396
|
+
* A short, human-readable summary of the problem
|
|
397
|
+
*/
|
|
398
|
+
title: string;
|
|
399
|
+
/**
|
|
400
|
+
* A human-readable explanation specific to this occurrence
|
|
401
|
+
*/
|
|
402
|
+
detail: string;
|
|
403
|
+
/**
|
|
404
|
+
* A URI reference that identifies the problem type (e.g., GitHub issues link)
|
|
405
|
+
*/
|
|
406
|
+
type?: string;
|
|
407
|
+
/**
|
|
408
|
+
* A URI reference that identifies the specific occurrence (e.g., trace ID)
|
|
409
|
+
*/
|
|
410
|
+
instance?: string;
|
|
411
|
+
/**
|
|
412
|
+
* The HTTP status code
|
|
413
|
+
*/
|
|
414
|
+
status: 400;
|
|
415
|
+
/**
|
|
416
|
+
* Optional map of field names to their error messages (for validation errors)
|
|
417
|
+
*/
|
|
418
|
+
errors?: {
|
|
419
|
+
[key: string]: string;
|
|
420
|
+
};
|
|
421
|
+
};
|
|
422
|
+
/**
|
|
423
|
+
* Unauthorized error response
|
|
424
|
+
*/
|
|
425
|
+
export type Error401 = {
|
|
426
|
+
/**
|
|
427
|
+
* Specific error code for programmatic handling
|
|
428
|
+
*/
|
|
429
|
+
code: 'AUTH_CREDENTIALS_REQUIRED' | 'AUTH_CREDENTIALS_INVALID' | 'AUTH_CREDENTIALS_EXPIRED' | 'EMAIL_NOT_VERIFIED';
|
|
430
|
+
/**
|
|
431
|
+
* A short, human-readable summary of the problem
|
|
432
|
+
*/
|
|
433
|
+
title: string;
|
|
434
|
+
/**
|
|
435
|
+
* A human-readable explanation specific to this occurrence
|
|
436
|
+
*/
|
|
437
|
+
detail: string;
|
|
438
|
+
/**
|
|
439
|
+
* A URI reference that identifies the problem type (e.g., GitHub issues link)
|
|
440
|
+
*/
|
|
441
|
+
type?: string;
|
|
442
|
+
/**
|
|
443
|
+
* A URI reference that identifies the specific occurrence (e.g., trace ID)
|
|
444
|
+
*/
|
|
445
|
+
instance?: string;
|
|
446
|
+
/**
|
|
447
|
+
* The HTTP status code
|
|
448
|
+
*/
|
|
449
|
+
status: 401;
|
|
450
|
+
/**
|
|
451
|
+
* Optional map of field names to their error messages (for validation errors)
|
|
452
|
+
*/
|
|
453
|
+
errors?: {
|
|
454
|
+
[key: string]: string;
|
|
455
|
+
};
|
|
456
|
+
};
|
|
457
|
+
/**
|
|
458
|
+
* Forbidden error response
|
|
459
|
+
*/
|
|
460
|
+
export type Error403 = {
|
|
461
|
+
/**
|
|
462
|
+
* Specific error code for programmatic handling
|
|
463
|
+
*/
|
|
464
|
+
code: 'ACCESS_DENIED' | 'INSUFFICIENT_PERMISSIONS';
|
|
465
|
+
/**
|
|
466
|
+
* A short, human-readable summary of the problem
|
|
467
|
+
*/
|
|
468
|
+
title: string;
|
|
469
|
+
/**
|
|
470
|
+
* A human-readable explanation specific to this occurrence
|
|
471
|
+
*/
|
|
472
|
+
detail: string;
|
|
473
|
+
/**
|
|
474
|
+
* A URI reference that identifies the problem type (e.g., GitHub issues link)
|
|
475
|
+
*/
|
|
476
|
+
type?: string;
|
|
477
|
+
/**
|
|
478
|
+
* A URI reference that identifies the specific occurrence (e.g., trace ID)
|
|
479
|
+
*/
|
|
480
|
+
instance?: string;
|
|
481
|
+
/**
|
|
482
|
+
* The HTTP status code
|
|
483
|
+
*/
|
|
484
|
+
status: 403;
|
|
485
|
+
/**
|
|
486
|
+
* Optional map of field names to their error messages (for validation errors)
|
|
487
|
+
*/
|
|
488
|
+
errors?: {
|
|
489
|
+
[key: string]: string;
|
|
490
|
+
};
|
|
491
|
+
};
|
|
492
|
+
/**
|
|
493
|
+
* Too Many Requests error response
|
|
494
|
+
*/
|
|
495
|
+
export type Error429 = {
|
|
496
|
+
/**
|
|
497
|
+
* Specific error code for programmatic handling
|
|
498
|
+
*/
|
|
499
|
+
code: 'RATE_LIMIT_EXCEEDED' | 'QUOTA_EXCEEDED';
|
|
500
|
+
/**
|
|
501
|
+
* A short, human-readable summary of the problem
|
|
502
|
+
*/
|
|
503
|
+
title: string;
|
|
504
|
+
/**
|
|
505
|
+
* A human-readable explanation specific to this occurrence
|
|
506
|
+
*/
|
|
507
|
+
detail: string;
|
|
508
|
+
/**
|
|
509
|
+
* A URI reference that identifies the problem type (e.g., GitHub issues link)
|
|
510
|
+
*/
|
|
511
|
+
type?: string;
|
|
512
|
+
/**
|
|
513
|
+
* A URI reference that identifies the specific occurrence (e.g., trace ID)
|
|
514
|
+
*/
|
|
515
|
+
instance?: string;
|
|
516
|
+
/**
|
|
517
|
+
* The HTTP status code
|
|
518
|
+
*/
|
|
519
|
+
status: 429;
|
|
520
|
+
/**
|
|
521
|
+
* Optional map of field names to their error messages (for validation errors)
|
|
522
|
+
*/
|
|
523
|
+
errors?: {
|
|
524
|
+
[key: string]: string;
|
|
525
|
+
};
|
|
526
|
+
};
|
|
527
|
+
/**
|
|
528
|
+
* Internal Server Error response
|
|
529
|
+
*/
|
|
530
|
+
export type Error500 = {
|
|
531
|
+
/**
|
|
532
|
+
* Specific error code for programmatic handling
|
|
533
|
+
*/
|
|
534
|
+
code: 'INTERNAL_SERVER_EXCEPTION';
|
|
535
|
+
/**
|
|
536
|
+
* A short, human-readable summary of the problem
|
|
537
|
+
*/
|
|
538
|
+
title: string;
|
|
539
|
+
/**
|
|
540
|
+
* A human-readable explanation specific to this occurrence
|
|
541
|
+
*/
|
|
542
|
+
detail: string;
|
|
543
|
+
/**
|
|
544
|
+
* A URI reference that identifies the problem type (e.g., GitHub issues link)
|
|
545
|
+
*/
|
|
546
|
+
type?: string;
|
|
547
|
+
/**
|
|
548
|
+
* A URI reference that identifies the specific occurrence (e.g., trace ID)
|
|
549
|
+
*/
|
|
550
|
+
instance?: string;
|
|
551
|
+
/**
|
|
552
|
+
* The HTTP status code
|
|
553
|
+
*/
|
|
554
|
+
status: 500;
|
|
555
|
+
/**
|
|
556
|
+
* Optional map of field names to their error messages (for validation errors)
|
|
557
|
+
*/
|
|
558
|
+
errors?: {
|
|
559
|
+
[key: string]: string;
|
|
560
|
+
};
|
|
561
|
+
};
|
|
562
|
+
export type SearchStatsRequest = {
|
|
563
|
+
/**
|
|
564
|
+
* What to search for (omit for queryless stats)
|
|
565
|
+
*/
|
|
566
|
+
query?: {
|
|
567
|
+
/**
|
|
568
|
+
* Search expression (supports boolean operators, wildcards, phrase matching)
|
|
569
|
+
*/
|
|
570
|
+
search?: string;
|
|
571
|
+
/**
|
|
572
|
+
* Whether to use exact phrase matching
|
|
573
|
+
*/
|
|
574
|
+
exactMatch?: boolean;
|
|
575
|
+
};
|
|
576
|
+
filters?: SearchFilters;
|
|
577
|
+
/**
|
|
578
|
+
* Resources to expand in the response includes block
|
|
579
|
+
*/
|
|
580
|
+
include?: Array<IncludeExpansion>;
|
|
581
|
+
};
|
|
582
|
+
/**
|
|
583
|
+
* Search hit statistics for a single media
|
|
584
|
+
*/
|
|
585
|
+
export type MediaSearchStats = {
|
|
586
|
+
/**
|
|
587
|
+
* Media identifier (look up full details in includes.media)
|
|
588
|
+
*/
|
|
589
|
+
mediaId: number;
|
|
590
|
+
/**
|
|
591
|
+
* Number of matching segments found in this media
|
|
592
|
+
*/
|
|
593
|
+
matchCount: number;
|
|
594
|
+
/**
|
|
595
|
+
* Mapping of episode numbers to segment hit counts
|
|
596
|
+
*/
|
|
597
|
+
episodeHits: {
|
|
598
|
+
[key: string]: number;
|
|
599
|
+
};
|
|
600
|
+
};
|
|
601
|
+
/**
|
|
602
|
+
* Count of entries grouped by media category
|
|
603
|
+
*/
|
|
604
|
+
export type CategoryCount = {
|
|
605
|
+
category?: Category;
|
|
606
|
+
/**
|
|
607
|
+
* Number of entries in this category
|
|
608
|
+
*/
|
|
609
|
+
count?: number;
|
|
610
|
+
};
|
|
611
|
+
export type SearchStatsResponse = {
|
|
612
|
+
media?: Array<MediaSearchStats>;
|
|
613
|
+
categories?: Array<CategoryCount>;
|
|
614
|
+
includes?: {
|
|
615
|
+
/**
|
|
616
|
+
* Media objects keyed by mediaId
|
|
617
|
+
*/
|
|
618
|
+
media?: {
|
|
619
|
+
[key: string]: Media;
|
|
620
|
+
};
|
|
621
|
+
};
|
|
622
|
+
};
|
|
623
|
+
export type SearchMultipleRequest = {
|
|
624
|
+
/**
|
|
625
|
+
* What to search for
|
|
626
|
+
*/
|
|
627
|
+
query: {
|
|
628
|
+
/**
|
|
629
|
+
* List of words to search for
|
|
630
|
+
*/
|
|
631
|
+
words: Array<string>;
|
|
632
|
+
/**
|
|
633
|
+
* Whether to use exact matching
|
|
634
|
+
*/
|
|
635
|
+
exactMatch?: boolean;
|
|
636
|
+
};
|
|
637
|
+
filters?: SearchFilters;
|
|
638
|
+
/**
|
|
639
|
+
* Resources to expand in the response includes block
|
|
640
|
+
*/
|
|
641
|
+
include?: Array<IncludeExpansion>;
|
|
642
|
+
};
|
|
643
|
+
/**
|
|
644
|
+
* Media match count entry
|
|
645
|
+
*/
|
|
646
|
+
export type WordMatchMedia = {
|
|
647
|
+
/**
|
|
648
|
+
* Media identifier (look up full details in includes.media)
|
|
649
|
+
*/
|
|
650
|
+
mediaId: number;
|
|
651
|
+
/**
|
|
652
|
+
* Number of times the word appears in this media
|
|
653
|
+
*/
|
|
654
|
+
matchCount: number;
|
|
655
|
+
};
|
|
656
|
+
/**
|
|
657
|
+
* Word matching result with occurrences across media
|
|
658
|
+
*/
|
|
659
|
+
export type WordMatch = {
|
|
660
|
+
/**
|
|
661
|
+
* The word that was searched for
|
|
662
|
+
*/
|
|
663
|
+
word?: string;
|
|
664
|
+
/**
|
|
665
|
+
* Indicates whether the word was found in any segment
|
|
666
|
+
*/
|
|
667
|
+
isMatch?: boolean;
|
|
668
|
+
/**
|
|
669
|
+
* Total number of times this word appears across all media
|
|
670
|
+
*/
|
|
671
|
+
matchCount?: number;
|
|
672
|
+
/**
|
|
673
|
+
* List of media containing this word
|
|
674
|
+
*/
|
|
675
|
+
media?: Array<WordMatchMedia>;
|
|
676
|
+
};
|
|
677
|
+
export type SearchMultipleResponse = {
|
|
678
|
+
results?: Array<WordMatch>;
|
|
679
|
+
includes?: {
|
|
680
|
+
/**
|
|
681
|
+
* Media objects keyed by mediaId
|
|
682
|
+
*/
|
|
683
|
+
media?: {
|
|
684
|
+
[key: string]: Media;
|
|
685
|
+
};
|
|
686
|
+
};
|
|
687
|
+
};
|
|
688
|
+
/**
|
|
689
|
+
* Resource to expand in media responses
|
|
690
|
+
*/
|
|
691
|
+
export type MediaIncludeExpansion = 'media' | 'media.characters';
|
|
692
|
+
/**
|
|
693
|
+
* Cursor pagination metadata
|
|
694
|
+
*/
|
|
695
|
+
export type CursorPagination = {
|
|
696
|
+
/**
|
|
697
|
+
* Whether more results are available
|
|
698
|
+
*/
|
|
699
|
+
hasMore: boolean;
|
|
700
|
+
/**
|
|
701
|
+
* Cursor for the next page (`null` when `hasMore` is `false`)
|
|
702
|
+
*/
|
|
703
|
+
cursor: number;
|
|
704
|
+
};
|
|
705
|
+
export type MediaListResponse = {
|
|
706
|
+
media: Array<Media>;
|
|
707
|
+
pagination: CursorPagination;
|
|
708
|
+
};
|
|
709
|
+
/**
|
|
710
|
+
* Character data for creating/updating media
|
|
711
|
+
*/
|
|
712
|
+
export type CharacterInput = {
|
|
713
|
+
/**
|
|
714
|
+
* AniList character ID
|
|
715
|
+
*/
|
|
716
|
+
id: number;
|
|
717
|
+
/**
|
|
718
|
+
* Japanese name of the character
|
|
719
|
+
*/
|
|
720
|
+
nameJa: string;
|
|
721
|
+
/**
|
|
722
|
+
* English name of the character
|
|
723
|
+
*/
|
|
724
|
+
nameEn: string;
|
|
725
|
+
/**
|
|
726
|
+
* Character image URL
|
|
727
|
+
*/
|
|
728
|
+
imageUrl: string;
|
|
729
|
+
/**
|
|
730
|
+
* Character's role in the media
|
|
731
|
+
*/
|
|
732
|
+
role: 'MAIN' | 'SUPPORTING' | 'BACKGROUND';
|
|
733
|
+
/**
|
|
734
|
+
* AniList staff ID for the Japanese voice actor
|
|
735
|
+
*/
|
|
736
|
+
seiyuuId: number;
|
|
737
|
+
/**
|
|
738
|
+
* Japanese name of the voice actor
|
|
739
|
+
*/
|
|
740
|
+
seiyuuNameJa: string;
|
|
741
|
+
/**
|
|
742
|
+
* English name of the voice actor
|
|
743
|
+
*/
|
|
744
|
+
seiyuuNameEn: string;
|
|
745
|
+
/**
|
|
746
|
+
* Voice actor profile image URL
|
|
747
|
+
*/
|
|
748
|
+
seiyuuImageUrl: string;
|
|
749
|
+
};
|
|
750
|
+
/**
|
|
751
|
+
* Request body for creating a new media entry
|
|
752
|
+
*/
|
|
753
|
+
export type MediaCreateRequest = {
|
|
754
|
+
externalIds?: ExternalId;
|
|
755
|
+
/**
|
|
756
|
+
* Original Japanese name of the media
|
|
757
|
+
*/
|
|
758
|
+
nameJa: string;
|
|
759
|
+
/**
|
|
760
|
+
* Romaji transliteration of the media name
|
|
761
|
+
*/
|
|
762
|
+
nameRomaji: string;
|
|
763
|
+
/**
|
|
764
|
+
* English name of the media
|
|
765
|
+
*/
|
|
766
|
+
nameEn: string;
|
|
767
|
+
/**
|
|
768
|
+
* Format of the media release (e.g., TV, OVA, Movie)
|
|
769
|
+
*/
|
|
770
|
+
airingFormat: string;
|
|
771
|
+
/**
|
|
772
|
+
* Current airing status (FINISHED, RELEASING, NOT_YET_RELEASED, CANCELLED)
|
|
773
|
+
*/
|
|
774
|
+
airingStatus: string;
|
|
775
|
+
/**
|
|
776
|
+
* List of genres associated with the media
|
|
777
|
+
*/
|
|
778
|
+
genres: Array<string>;
|
|
779
|
+
/**
|
|
780
|
+
* Storage backend for media assets
|
|
781
|
+
*/
|
|
782
|
+
storage: 'LOCAL' | 'R2';
|
|
783
|
+
/**
|
|
784
|
+
* Start date of the media (first airing/release)
|
|
785
|
+
*/
|
|
786
|
+
startDate: string;
|
|
787
|
+
/**
|
|
788
|
+
* End date of the media (last airing/release)
|
|
789
|
+
*/
|
|
790
|
+
endDate?: string;
|
|
791
|
+
/**
|
|
792
|
+
* Media category
|
|
793
|
+
*/
|
|
794
|
+
category: 'ANIME' | 'JDRAMA';
|
|
795
|
+
/**
|
|
796
|
+
* Version of the media-sub-splitter used
|
|
797
|
+
*/
|
|
798
|
+
version: string;
|
|
799
|
+
/**
|
|
800
|
+
* Hash salt used when generating the hash for the related media assets
|
|
801
|
+
*/
|
|
802
|
+
hashSalt: string;
|
|
803
|
+
/**
|
|
804
|
+
* Animation studio that produced the media
|
|
805
|
+
*/
|
|
806
|
+
studio: string;
|
|
807
|
+
/**
|
|
808
|
+
* Airing season label for the media
|
|
809
|
+
*/
|
|
810
|
+
seasonName: string;
|
|
811
|
+
/**
|
|
812
|
+
* Airing year for the media
|
|
813
|
+
*/
|
|
814
|
+
seasonYear: number;
|
|
815
|
+
/**
|
|
816
|
+
* Base path for R2/CDN storage (e.g. "media/21459")
|
|
817
|
+
*/
|
|
818
|
+
storageBasePath?: string;
|
|
819
|
+
/**
|
|
820
|
+
* List of characters appearing in the media with their voice actors
|
|
821
|
+
*/
|
|
822
|
+
characters?: Array<CharacterInput>;
|
|
823
|
+
};
|
|
824
|
+
/**
|
|
825
|
+
* Conflict error response
|
|
826
|
+
*/
|
|
827
|
+
export type Error409 = {
|
|
828
|
+
/**
|
|
829
|
+
* Specific error code for programmatic handling
|
|
830
|
+
*/
|
|
831
|
+
code: 'ACCOUNT_CONFLICT' | 'DUPLICATE_KEY';
|
|
832
|
+
/**
|
|
833
|
+
* A short, human-readable summary of the problem
|
|
834
|
+
*/
|
|
835
|
+
title: string;
|
|
836
|
+
/**
|
|
837
|
+
* A human-readable explanation specific to this occurrence
|
|
838
|
+
*/
|
|
839
|
+
detail: string;
|
|
840
|
+
/**
|
|
841
|
+
* A URI reference that identifies the problem type (e.g., GitHub issues link)
|
|
842
|
+
*/
|
|
843
|
+
type?: string;
|
|
844
|
+
/**
|
|
845
|
+
* A URI reference that identifies the specific occurrence (e.g., trace ID)
|
|
846
|
+
*/
|
|
847
|
+
instance?: string;
|
|
848
|
+
/**
|
|
849
|
+
* The HTTP status code
|
|
850
|
+
*/
|
|
851
|
+
status: 409;
|
|
852
|
+
/**
|
|
853
|
+
* Optional map of field names to their error messages (for validation errors)
|
|
854
|
+
*/
|
|
855
|
+
errors?: {
|
|
856
|
+
[key: string]: string;
|
|
857
|
+
};
|
|
858
|
+
};
|
|
859
|
+
/**
|
|
860
|
+
* Not Found error response
|
|
861
|
+
*/
|
|
862
|
+
export type Error404 = {
|
|
863
|
+
/**
|
|
864
|
+
* Specific error code for programmatic handling
|
|
865
|
+
*/
|
|
866
|
+
code: 'NOT_FOUND';
|
|
867
|
+
/**
|
|
868
|
+
* A short, human-readable summary of the problem
|
|
869
|
+
*/
|
|
870
|
+
title: string;
|
|
871
|
+
/**
|
|
872
|
+
* A human-readable explanation specific to this occurrence
|
|
873
|
+
*/
|
|
874
|
+
detail: string;
|
|
875
|
+
/**
|
|
876
|
+
* A URI reference that identifies the problem type (e.g., GitHub issues link)
|
|
877
|
+
*/
|
|
878
|
+
type?: string;
|
|
879
|
+
/**
|
|
880
|
+
* A URI reference that identifies the specific occurrence (e.g., trace ID)
|
|
881
|
+
*/
|
|
882
|
+
instance?: string;
|
|
883
|
+
/**
|
|
884
|
+
* The HTTP status code
|
|
885
|
+
*/
|
|
886
|
+
status: 404;
|
|
887
|
+
/**
|
|
888
|
+
* Optional map of field names to their error messages (for validation errors)
|
|
889
|
+
*/
|
|
890
|
+
errors?: {
|
|
891
|
+
[key: string]: string;
|
|
892
|
+
};
|
|
893
|
+
};
|
|
894
|
+
/**
|
|
895
|
+
* Request body for updating an existing media entry (all fields optional)
|
|
896
|
+
*/
|
|
897
|
+
export type MediaUpdateRequest = {
|
|
898
|
+
externalIds?: ExternalId;
|
|
899
|
+
/**
|
|
900
|
+
* Original Japanese name of the media
|
|
901
|
+
*/
|
|
902
|
+
nameJa?: string;
|
|
903
|
+
/**
|
|
904
|
+
* Romaji transliteration of the media name
|
|
905
|
+
*/
|
|
906
|
+
nameRomaji?: string;
|
|
907
|
+
/**
|
|
908
|
+
* English name of the media
|
|
909
|
+
*/
|
|
910
|
+
nameEn?: string;
|
|
911
|
+
/**
|
|
912
|
+
* Format of the media release (e.g., TV, OVA, Movie)
|
|
913
|
+
*/
|
|
914
|
+
airingFormat?: string;
|
|
915
|
+
/**
|
|
916
|
+
* Current airing status (FINISHED, RELEASING, NOT_YET_RELEASED, CANCELLED)
|
|
917
|
+
*/
|
|
918
|
+
airingStatus?: string;
|
|
919
|
+
/**
|
|
920
|
+
* List of genres associated with the media
|
|
921
|
+
*/
|
|
922
|
+
genres?: Array<string>;
|
|
923
|
+
/**
|
|
924
|
+
* Storage backend for media assets
|
|
925
|
+
*/
|
|
926
|
+
storage?: 'LOCAL' | 'R2';
|
|
927
|
+
/**
|
|
928
|
+
* Start date of the media (first airing/release)
|
|
929
|
+
*/
|
|
930
|
+
startDate?: string;
|
|
931
|
+
/**
|
|
932
|
+
* End date of the media (last airing/release)
|
|
933
|
+
*/
|
|
934
|
+
endDate?: string;
|
|
935
|
+
/**
|
|
936
|
+
* Media category
|
|
937
|
+
*/
|
|
938
|
+
category?: 'ANIME' | 'JDRAMA';
|
|
939
|
+
/**
|
|
940
|
+
* Version of the media-sub-splitter used
|
|
941
|
+
*/
|
|
942
|
+
version?: string;
|
|
943
|
+
/**
|
|
944
|
+
* Hash salt used when generating the hash for the related media assets
|
|
945
|
+
*/
|
|
946
|
+
hashSalt?: string;
|
|
947
|
+
/**
|
|
948
|
+
* Animation studio that produced the media
|
|
949
|
+
*/
|
|
950
|
+
studio?: string;
|
|
951
|
+
/**
|
|
952
|
+
* Airing season label for the media
|
|
953
|
+
*/
|
|
954
|
+
seasonName?: string;
|
|
955
|
+
/**
|
|
956
|
+
* Airing year for the media
|
|
957
|
+
*/
|
|
958
|
+
seasonYear?: number;
|
|
959
|
+
/**
|
|
960
|
+
* Base path for R2/CDN storage (e.g. "media/21459")
|
|
961
|
+
*/
|
|
962
|
+
storageBasePath?: string;
|
|
963
|
+
/**
|
|
964
|
+
* List of characters appearing in the media with their voice actors
|
|
965
|
+
*/
|
|
966
|
+
characters?: Array<CharacterInput>;
|
|
967
|
+
/**
|
|
968
|
+
* Total number of subtitle segments available
|
|
969
|
+
*/
|
|
970
|
+
segmentCount?: number;
|
|
971
|
+
};
|
|
972
|
+
export type Episode = {
|
|
973
|
+
/**
|
|
974
|
+
* ID of the media this episode belongs to
|
|
975
|
+
*/
|
|
976
|
+
mediaId: number;
|
|
977
|
+
/**
|
|
978
|
+
* Episode number within the media
|
|
979
|
+
*/
|
|
980
|
+
episodeNumber: number;
|
|
981
|
+
/**
|
|
982
|
+
* English title of the episode
|
|
983
|
+
*/
|
|
984
|
+
titleEn?: string;
|
|
985
|
+
/**
|
|
986
|
+
* Romanized title of the episode
|
|
987
|
+
*/
|
|
988
|
+
titleRomaji?: string;
|
|
989
|
+
/**
|
|
990
|
+
* Japanese title of the episode
|
|
991
|
+
*/
|
|
992
|
+
titleJa?: string;
|
|
993
|
+
/**
|
|
994
|
+
* Episode description or synopsis
|
|
995
|
+
*/
|
|
996
|
+
description?: string;
|
|
997
|
+
/**
|
|
998
|
+
* When the episode originally aired
|
|
999
|
+
*/
|
|
1000
|
+
airedAt?: string;
|
|
1001
|
+
/**
|
|
1002
|
+
* Episode duration in seconds
|
|
1003
|
+
*/
|
|
1004
|
+
lengthSeconds?: number;
|
|
1005
|
+
/**
|
|
1006
|
+
* URL to episode thumbnail image
|
|
1007
|
+
*/
|
|
1008
|
+
thumbnailUrl?: string;
|
|
1009
|
+
/**
|
|
1010
|
+
* Number of segments in this episode
|
|
1011
|
+
*/
|
|
1012
|
+
segmentCount: number;
|
|
1013
|
+
};
|
|
1014
|
+
export type EpisodeListResponse = {
|
|
1015
|
+
/**
|
|
1016
|
+
* Array of episode objects
|
|
1017
|
+
*/
|
|
1018
|
+
episodes: Array<Episode>;
|
|
1019
|
+
pagination: CursorPagination;
|
|
1020
|
+
};
|
|
1021
|
+
export type EpisodeCreateRequest = {
|
|
1022
|
+
/**
|
|
1023
|
+
* English title of the episode
|
|
1024
|
+
*/
|
|
1025
|
+
titleEn?: string;
|
|
1026
|
+
/**
|
|
1027
|
+
* Romanized title of the episode
|
|
1028
|
+
*/
|
|
1029
|
+
titleRomaji?: string;
|
|
1030
|
+
/**
|
|
1031
|
+
* Japanese title of the episode
|
|
1032
|
+
*/
|
|
1033
|
+
titleJa?: string;
|
|
1034
|
+
/**
|
|
1035
|
+
* Episode description or synopsis
|
|
1036
|
+
*/
|
|
1037
|
+
description?: string;
|
|
1038
|
+
/**
|
|
1039
|
+
* When the episode originally aired
|
|
1040
|
+
*/
|
|
1041
|
+
airedAt?: string;
|
|
1042
|
+
/**
|
|
1043
|
+
* Episode duration in seconds
|
|
1044
|
+
*/
|
|
1045
|
+
lengthSeconds?: number;
|
|
1046
|
+
/**
|
|
1047
|
+
* URL to episode thumbnail image
|
|
1048
|
+
*/
|
|
1049
|
+
thumbnailUrl?: string;
|
|
1050
|
+
/**
|
|
1051
|
+
* Episode number within the media (must be unique for this media)
|
|
1052
|
+
*/
|
|
1053
|
+
episodeNumber: number;
|
|
1054
|
+
};
|
|
1055
|
+
/**
|
|
1056
|
+
* All fields are optional for partial updates
|
|
1057
|
+
*/
|
|
1058
|
+
export type EpisodeUpdateRequest = {
|
|
1059
|
+
/**
|
|
1060
|
+
* English title of the episode
|
|
1061
|
+
*/
|
|
1062
|
+
titleEn?: string;
|
|
1063
|
+
/**
|
|
1064
|
+
* Romanized title of the episode
|
|
1065
|
+
*/
|
|
1066
|
+
titleRomaji?: string;
|
|
1067
|
+
/**
|
|
1068
|
+
* Japanese title of the episode
|
|
1069
|
+
*/
|
|
1070
|
+
titleJa?: string;
|
|
1071
|
+
/**
|
|
1072
|
+
* Episode description or synopsis
|
|
1073
|
+
*/
|
|
1074
|
+
description?: string;
|
|
1075
|
+
/**
|
|
1076
|
+
* When the episode originally aired
|
|
1077
|
+
*/
|
|
1078
|
+
airedAt?: string;
|
|
1079
|
+
/**
|
|
1080
|
+
* Episode duration in seconds
|
|
1081
|
+
*/
|
|
1082
|
+
lengthSeconds?: number;
|
|
1083
|
+
/**
|
|
1084
|
+
* URL to episode thumbnail image
|
|
1085
|
+
*/
|
|
1086
|
+
thumbnailUrl?: string;
|
|
1087
|
+
};
|
|
1088
|
+
export type SegmentCreateRequest = {
|
|
1089
|
+
/**
|
|
1090
|
+
* Position of the segment within the episode
|
|
1091
|
+
*/
|
|
1092
|
+
position: number;
|
|
1093
|
+
/**
|
|
1094
|
+
* Segment status
|
|
1095
|
+
*/
|
|
1096
|
+
status?: 'DELETED' | 'ACTIVE' | 'SUSPENDED' | 'VERIFIED' | 'INVALID' | 'TOO_LONG';
|
|
1097
|
+
/**
|
|
1098
|
+
* Start time of the segment in milliseconds from the beginning of the episode
|
|
1099
|
+
*/
|
|
1100
|
+
startTimeMs: number;
|
|
1101
|
+
/**
|
|
1102
|
+
* End time of the segment in milliseconds from the beginning of the episode
|
|
1103
|
+
*/
|
|
1104
|
+
endTimeMs: number;
|
|
1105
|
+
textJa: {
|
|
1106
|
+
/**
|
|
1107
|
+
* Original Japanese content of the segment
|
|
1108
|
+
*/
|
|
1109
|
+
content?: string;
|
|
1110
|
+
};
|
|
1111
|
+
textEs?: {
|
|
1112
|
+
/**
|
|
1113
|
+
* Spanish translation of the segment content
|
|
1114
|
+
*/
|
|
1115
|
+
content?: string;
|
|
1116
|
+
/**
|
|
1117
|
+
* Whether the Spanish translation was machine-translated
|
|
1118
|
+
*/
|
|
1119
|
+
isMachineTranslated?: boolean;
|
|
1120
|
+
};
|
|
1121
|
+
textEn?: {
|
|
1122
|
+
/**
|
|
1123
|
+
* English translation of the segment content
|
|
1124
|
+
*/
|
|
1125
|
+
content?: string;
|
|
1126
|
+
/**
|
|
1127
|
+
* Whether the English translation was machine-translated
|
|
1128
|
+
*/
|
|
1129
|
+
isMachineTranslated?: boolean;
|
|
1130
|
+
};
|
|
1131
|
+
contentRating?: ContentRating;
|
|
1132
|
+
/**
|
|
1133
|
+
* Raw WD Tagger v3 classifier output used to derive content rating
|
|
1134
|
+
*/
|
|
1135
|
+
ratingAnalysis?: {
|
|
1136
|
+
[key: string]: unknown;
|
|
1137
|
+
};
|
|
1138
|
+
/**
|
|
1139
|
+
* POS tokenization results keyed by engine (sudachi, unidic)
|
|
1140
|
+
*/
|
|
1141
|
+
posAnalysis?: {
|
|
1142
|
+
[key: string]: unknown;
|
|
1143
|
+
};
|
|
1144
|
+
/**
|
|
1145
|
+
* Storage backend for segment assets
|
|
1146
|
+
*/
|
|
1147
|
+
storage: 'LOCAL' | 'R2';
|
|
1148
|
+
/**
|
|
1149
|
+
* Hash identifier for the segment (from segment JSON)
|
|
1150
|
+
*/
|
|
1151
|
+
hashedId: string;
|
|
1152
|
+
};
|
|
1153
|
+
/**
|
|
1154
|
+
* Segment with internal fields (for internal API responses)
|
|
1155
|
+
*/
|
|
1156
|
+
export type SegmentInternal = Segment & {
|
|
1157
|
+
/**
|
|
1158
|
+
* Storage backend for segment assets
|
|
1159
|
+
*/
|
|
1160
|
+
storage?: 'LOCAL' | 'R2';
|
|
1161
|
+
/**
|
|
1162
|
+
* Hash identifier for the segment
|
|
1163
|
+
*/
|
|
1164
|
+
hashedId?: string;
|
|
1165
|
+
/**
|
|
1166
|
+
* Base path in the storage backend
|
|
1167
|
+
*/
|
|
1168
|
+
storageBasePath?: string;
|
|
1169
|
+
/**
|
|
1170
|
+
* Raw WD Tagger v3 classifier output used to derive content rating
|
|
1171
|
+
*/
|
|
1172
|
+
ratingAnalysis?: {
|
|
1173
|
+
[key: string]: unknown;
|
|
1174
|
+
};
|
|
1175
|
+
/**
|
|
1176
|
+
* POS tokenization results keyed by engine (sudachi, unidic)
|
|
1177
|
+
*/
|
|
1178
|
+
posAnalysis?: {
|
|
1179
|
+
[key: string]: unknown;
|
|
1180
|
+
};
|
|
1181
|
+
};
|
|
1182
|
+
/**
|
|
1183
|
+
* All fields are optional for partial updates
|
|
1184
|
+
*/
|
|
1185
|
+
export type SegmentUpdateRequest = {
|
|
1186
|
+
/**
|
|
1187
|
+
* Position of the segment within the episode
|
|
1188
|
+
*/
|
|
1189
|
+
position?: number;
|
|
1190
|
+
/**
|
|
1191
|
+
* Segment status
|
|
1192
|
+
*/
|
|
1193
|
+
status?: 'DELETED' | 'ACTIVE' | 'SUSPENDED' | 'VERIFIED' | 'INVALID' | 'TOO_LONG';
|
|
1194
|
+
/**
|
|
1195
|
+
* Start time of the segment in milliseconds from the beginning of the episode
|
|
1196
|
+
*/
|
|
1197
|
+
startTimeMs?: number;
|
|
1198
|
+
/**
|
|
1199
|
+
* End time of the segment in milliseconds from the beginning of the episode
|
|
1200
|
+
*/
|
|
1201
|
+
endTimeMs?: number;
|
|
1202
|
+
textJa?: {
|
|
1203
|
+
/**
|
|
1204
|
+
* Original Japanese content of the segment
|
|
1205
|
+
*/
|
|
1206
|
+
content?: string;
|
|
1207
|
+
};
|
|
1208
|
+
textEs?: {
|
|
1209
|
+
/**
|
|
1210
|
+
* Spanish translation of the segment content
|
|
1211
|
+
*/
|
|
1212
|
+
content?: string;
|
|
1213
|
+
/**
|
|
1214
|
+
* Whether the Spanish translation was machine-translated
|
|
1215
|
+
*/
|
|
1216
|
+
isMachineTranslated?: boolean;
|
|
1217
|
+
};
|
|
1218
|
+
textEn?: {
|
|
1219
|
+
/**
|
|
1220
|
+
* English translation of the segment content
|
|
1221
|
+
*/
|
|
1222
|
+
content?: string;
|
|
1223
|
+
/**
|
|
1224
|
+
* Whether the English translation was machine-translated
|
|
1225
|
+
*/
|
|
1226
|
+
isMachineTranslated?: boolean;
|
|
1227
|
+
};
|
|
1228
|
+
contentRating?: ContentRating;
|
|
1229
|
+
/**
|
|
1230
|
+
* Raw WD Tagger v3 classifier output used to derive content rating
|
|
1231
|
+
*/
|
|
1232
|
+
ratingAnalysis?: {
|
|
1233
|
+
[key: string]: unknown;
|
|
1234
|
+
};
|
|
1235
|
+
/**
|
|
1236
|
+
* POS tokenization results keyed by engine (sudachi, unidic)
|
|
1237
|
+
*/
|
|
1238
|
+
posAnalysis?: {
|
|
1239
|
+
[key: string]: unknown;
|
|
1240
|
+
};
|
|
1241
|
+
/**
|
|
1242
|
+
* Storage backend for segment assets
|
|
1243
|
+
*/
|
|
1244
|
+
storage?: 'LOCAL' | 'R2';
|
|
1245
|
+
/**
|
|
1246
|
+
* Hash identifier for the segment (from segment JSON)
|
|
1247
|
+
*/
|
|
1248
|
+
hashedId?: string;
|
|
1249
|
+
};
|
|
1250
|
+
export type SegmentContextResponse = {
|
|
1251
|
+
segments: Array<Segment>;
|
|
1252
|
+
includes?: {
|
|
1253
|
+
/**
|
|
1254
|
+
* Media objects keyed by mediaId
|
|
1255
|
+
*/
|
|
1256
|
+
media?: {
|
|
1257
|
+
[key: string]: Media;
|
|
1258
|
+
};
|
|
1259
|
+
};
|
|
1260
|
+
};
|
|
1261
|
+
/**
|
|
1262
|
+
* Ordered media series grouping
|
|
1263
|
+
*/
|
|
1264
|
+
export type Series = {
|
|
1265
|
+
/**
|
|
1266
|
+
* Series ID
|
|
1267
|
+
*/
|
|
1268
|
+
id: number;
|
|
1269
|
+
/**
|
|
1270
|
+
* Japanese name of the series
|
|
1271
|
+
*/
|
|
1272
|
+
nameJa: string;
|
|
1273
|
+
/**
|
|
1274
|
+
* Romaji name of the series
|
|
1275
|
+
*/
|
|
1276
|
+
nameRomaji: string;
|
|
1277
|
+
/**
|
|
1278
|
+
* English name of the series
|
|
1279
|
+
*/
|
|
1280
|
+
nameEn: string;
|
|
1281
|
+
};
|
|
1282
|
+
export type SeriesListResponse = {
|
|
1283
|
+
series: Array<Series>;
|
|
1284
|
+
pagination: CursorPagination;
|
|
1285
|
+
};
|
|
1286
|
+
/**
|
|
1287
|
+
* Series with ordered media entries
|
|
1288
|
+
*/
|
|
1289
|
+
export type SeriesWithMedia = {
|
|
1290
|
+
/**
|
|
1291
|
+
* Series ID
|
|
1292
|
+
*/
|
|
1293
|
+
id: number;
|
|
1294
|
+
/**
|
|
1295
|
+
* Japanese name of the series
|
|
1296
|
+
*/
|
|
1297
|
+
nameJa: string;
|
|
1298
|
+
/**
|
|
1299
|
+
* Romaji name of the series
|
|
1300
|
+
*/
|
|
1301
|
+
nameRomaji: string;
|
|
1302
|
+
/**
|
|
1303
|
+
* English name of the series
|
|
1304
|
+
*/
|
|
1305
|
+
nameEn: string;
|
|
1306
|
+
/**
|
|
1307
|
+
* All media in the series, sorted by position
|
|
1308
|
+
*/
|
|
1309
|
+
media: Array<{
|
|
1310
|
+
/**
|
|
1311
|
+
* Position in the series (1-indexed)
|
|
1312
|
+
*/
|
|
1313
|
+
position?: number;
|
|
1314
|
+
media?: Media;
|
|
1315
|
+
}>;
|
|
1316
|
+
};
|
|
1317
|
+
/**
|
|
1318
|
+
* Anime character
|
|
1319
|
+
*/
|
|
1320
|
+
export type Character = {
|
|
1321
|
+
/**
|
|
1322
|
+
* AniList character ID
|
|
1323
|
+
*/
|
|
1324
|
+
id: number;
|
|
1325
|
+
/**
|
|
1326
|
+
* Japanese name of the character
|
|
1327
|
+
*/
|
|
1328
|
+
nameJa: string;
|
|
1329
|
+
/**
|
|
1330
|
+
* English name of the character
|
|
1331
|
+
*/
|
|
1332
|
+
nameEn: string;
|
|
1333
|
+
/**
|
|
1334
|
+
* Character image URL
|
|
1335
|
+
*/
|
|
1336
|
+
imageUrl: string;
|
|
1337
|
+
};
|
|
1338
|
+
/**
|
|
1339
|
+
* Character with voice actor and all media appearances
|
|
1340
|
+
*/
|
|
1341
|
+
export type CharacterWithMedia = Character & {
|
|
1342
|
+
seiyuu: Seiyuu;
|
|
1343
|
+
/**
|
|
1344
|
+
* All media this character appears in
|
|
1345
|
+
*/
|
|
1346
|
+
mediaAppearances: Array<{
|
|
1347
|
+
media?: Media;
|
|
1348
|
+
/**
|
|
1349
|
+
* Character role in this media
|
|
1350
|
+
*/
|
|
1351
|
+
role?: 'MAIN' | 'SUPPORTING' | 'BACKGROUND';
|
|
1352
|
+
}>;
|
|
1353
|
+
};
|
|
1354
|
+
/**
|
|
1355
|
+
* Seiyuu details with optional character appearances
|
|
1356
|
+
*/
|
|
1357
|
+
export type SeiyuuWithRoles = {
|
|
1358
|
+
/**
|
|
1359
|
+
* AniList staff ID
|
|
1360
|
+
*/
|
|
1361
|
+
id: number;
|
|
1362
|
+
/**
|
|
1363
|
+
* Japanese name of the voice actor
|
|
1364
|
+
*/
|
|
1365
|
+
nameJa: string;
|
|
1366
|
+
/**
|
|
1367
|
+
* English name of the voice actor
|
|
1368
|
+
*/
|
|
1369
|
+
nameEn: string;
|
|
1370
|
+
/**
|
|
1371
|
+
* Profile image URL
|
|
1372
|
+
*/
|
|
1373
|
+
imageUrl: string;
|
|
1374
|
+
/**
|
|
1375
|
+
* Characters voiced by this seiyuu with their media appearances
|
|
1376
|
+
*/
|
|
1377
|
+
characters: Array<Character & {
|
|
1378
|
+
media: Media;
|
|
1379
|
+
/**
|
|
1380
|
+
* Character role in this media
|
|
1381
|
+
*/
|
|
1382
|
+
role: 'MAIN' | 'SUPPORTING' | 'BACKGROUND';
|
|
1383
|
+
}>;
|
|
1384
|
+
};
|
|
1385
|
+
export type UserQuotaResponse = {
|
|
1386
|
+
/**
|
|
1387
|
+
* Number of API requests used in the current billing period.
|
|
1388
|
+
*/
|
|
1389
|
+
quotaUsed: number;
|
|
1390
|
+
/**
|
|
1391
|
+
* Maximum number of API requests allowed in the current billing period.
|
|
1392
|
+
*/
|
|
1393
|
+
quotaLimit: number;
|
|
1394
|
+
/**
|
|
1395
|
+
* Number of API requests remaining in the current billing period.
|
|
1396
|
+
*/
|
|
1397
|
+
quotaRemaining: number;
|
|
1398
|
+
/**
|
|
1399
|
+
* Current billing period in YYYYMM format.
|
|
1400
|
+
*/
|
|
1401
|
+
periodYyyymm: number;
|
|
1402
|
+
/**
|
|
1403
|
+
* Start of the current billing period (UTC).
|
|
1404
|
+
*/
|
|
1405
|
+
periodStart: string;
|
|
1406
|
+
/**
|
|
1407
|
+
* End of the current billing period (UTC).
|
|
1408
|
+
*/
|
|
1409
|
+
periodEnd: string;
|
|
1410
|
+
};
|
|
1411
|
+
export type ReportTargetMedia = {
|
|
1412
|
+
/**
|
|
1413
|
+
* Report target type
|
|
1414
|
+
*/
|
|
1415
|
+
type: 'MEDIA';
|
|
1416
|
+
/**
|
|
1417
|
+
* Media ID this report targets
|
|
1418
|
+
*/
|
|
1419
|
+
mediaId: number;
|
|
1420
|
+
};
|
|
1421
|
+
export type ReportTargetEpisode = {
|
|
1422
|
+
/**
|
|
1423
|
+
* Report target type
|
|
1424
|
+
*/
|
|
1425
|
+
type: 'EPISODE';
|
|
1426
|
+
/**
|
|
1427
|
+
* Media ID this report targets
|
|
1428
|
+
*/
|
|
1429
|
+
mediaId: number;
|
|
1430
|
+
/**
|
|
1431
|
+
* Episode number this report targets
|
|
1432
|
+
*/
|
|
1433
|
+
episodeNumber: number;
|
|
1434
|
+
};
|
|
1435
|
+
export type ReportTargetSegment = {
|
|
1436
|
+
/**
|
|
1437
|
+
* Report target type
|
|
1438
|
+
*/
|
|
1439
|
+
type: 'SEGMENT';
|
|
1440
|
+
/**
|
|
1441
|
+
* Media ID this report targets
|
|
1442
|
+
*/
|
|
1443
|
+
mediaId: number;
|
|
1444
|
+
/**
|
|
1445
|
+
* Episode number containing the segment
|
|
1446
|
+
*/
|
|
1447
|
+
episodeNumber?: number;
|
|
1448
|
+
/**
|
|
1449
|
+
* Segment UUID this report targets
|
|
1450
|
+
*/
|
|
1451
|
+
segmentUuid: string;
|
|
1452
|
+
};
|
|
1453
|
+
export type ReportTarget = ({
|
|
1454
|
+
type: 'MEDIA';
|
|
1455
|
+
} & ReportTargetMedia) | ({
|
|
1456
|
+
type: 'EPISODE';
|
|
1457
|
+
} & ReportTargetEpisode) | ({
|
|
1458
|
+
type: 'SEGMENT';
|
|
1459
|
+
} & ReportTargetSegment);
|
|
1460
|
+
export type Report = {
|
|
1461
|
+
/**
|
|
1462
|
+
* Report ID
|
|
1463
|
+
*/
|
|
1464
|
+
id: number;
|
|
1465
|
+
/**
|
|
1466
|
+
* Who created this report
|
|
1467
|
+
*/
|
|
1468
|
+
source: 'USER' | 'AUTO';
|
|
1469
|
+
target: ReportTarget;
|
|
1470
|
+
/**
|
|
1471
|
+
* ID of the auto-check run that created this report (AUTO only)
|
|
1472
|
+
*/
|
|
1473
|
+
reviewCheckRunId?: number;
|
|
1474
|
+
/**
|
|
1475
|
+
* Reason for the report
|
|
1476
|
+
*/
|
|
1477
|
+
reason: 'WRONG_TRANSLATION' | 'WRONG_TIMING' | 'WRONG_AUDIO' | 'NSFW_NOT_TAGGED' | 'DUPLICATE_SEGMENT' | 'WRONG_METADATA' | 'MISSING_EPISODES' | 'WRONG_COVER_IMAGE' | 'INAPPROPRIATE_CONTENT' | 'OTHER' | 'LOW_SEGMENT_MEDIA' | 'EMPTY_EPISODES' | 'MISSING_EPISODES_AUTO' | 'BAD_SEGMENT_RATIO' | 'MEDIA_WITH_NO_EPISODES' | 'MISSING_TRANSLATIONS' | 'DB_ES_SYNC_ISSUES' | 'HIGH_REPORT_DENSITY';
|
|
1478
|
+
/**
|
|
1479
|
+
* Optional description with additional details
|
|
1480
|
+
*/
|
|
1481
|
+
description?: string;
|
|
1482
|
+
/**
|
|
1483
|
+
* Check-specific metrics (AUTO reports) or null (USER reports)
|
|
1484
|
+
*/
|
|
1485
|
+
data?: {
|
|
1486
|
+
[key: string]: unknown;
|
|
1487
|
+
};
|
|
1488
|
+
/**
|
|
1489
|
+
* Current status of the report
|
|
1490
|
+
*/
|
|
1491
|
+
status: 'PENDING' | 'CONCERN' | 'ACCEPTED' | 'REJECTED' | 'RESOLVED' | 'IGNORED';
|
|
1492
|
+
/**
|
|
1493
|
+
* Notes from the admin who reviewed the report
|
|
1494
|
+
*/
|
|
1495
|
+
adminNotes?: string;
|
|
1496
|
+
/**
|
|
1497
|
+
* ID of the user who submitted the report (USER reports only)
|
|
1498
|
+
*/
|
|
1499
|
+
userId?: number;
|
|
1500
|
+
/**
|
|
1501
|
+
* When the report was created
|
|
1502
|
+
*/
|
|
1503
|
+
createdAt: string;
|
|
1504
|
+
/**
|
|
1505
|
+
* When the report was last updated
|
|
1506
|
+
*/
|
|
1507
|
+
updatedAt?: string;
|
|
1508
|
+
};
|
|
1509
|
+
export type ReportListResponse = {
|
|
1510
|
+
reports: Array<Report>;
|
|
1511
|
+
pagination: CursorPagination;
|
|
1512
|
+
};
|
|
1513
|
+
export type UserReportTarget = ({
|
|
1514
|
+
type: 'MEDIA';
|
|
1515
|
+
} & ReportTargetMedia) | ({
|
|
1516
|
+
type: 'SEGMENT';
|
|
1517
|
+
} & ReportTargetSegment);
|
|
1518
|
+
export type CreateReportRequest = {
|
|
1519
|
+
target: UserReportTarget;
|
|
1520
|
+
/**
|
|
1521
|
+
* Reason for the report
|
|
1522
|
+
*/
|
|
1523
|
+
reason: 'WRONG_TRANSLATION' | 'WRONG_TIMING' | 'WRONG_AUDIO' | 'NSFW_NOT_TAGGED' | 'DUPLICATE_SEGMENT' | 'WRONG_METADATA' | 'MISSING_EPISODES' | 'WRONG_COVER_IMAGE' | 'INAPPROPRIATE_CONTENT' | 'OTHER';
|
|
1524
|
+
/**
|
|
1525
|
+
* Optional description with additional details
|
|
1526
|
+
*/
|
|
1527
|
+
description?: string;
|
|
1528
|
+
};
|
|
1529
|
+
export type UserPreferences = {
|
|
1530
|
+
/**
|
|
1531
|
+
* Lab feature opt-in flags keyed by feature key
|
|
1532
|
+
*/
|
|
1533
|
+
labs?: {
|
|
1534
|
+
[key: string]: boolean;
|
|
1535
|
+
};
|
|
1536
|
+
/**
|
|
1537
|
+
* Preferred language for media names display
|
|
1538
|
+
*/
|
|
1539
|
+
mediaNameLanguage?: 'english' | 'japanese' | 'romaji';
|
|
1540
|
+
/**
|
|
1541
|
+
* Per-category content rating display preferences
|
|
1542
|
+
*/
|
|
1543
|
+
contentRatingPreferences?: {
|
|
1544
|
+
suggestive?: 'show' | 'blur' | 'hide';
|
|
1545
|
+
explicit?: 'show' | 'blur' | 'hide';
|
|
1546
|
+
};
|
|
1547
|
+
searchHistory?: {
|
|
1548
|
+
/**
|
|
1549
|
+
* Whether activity tracking is enabled (default true)
|
|
1550
|
+
*/
|
|
1551
|
+
enabled?: boolean;
|
|
1552
|
+
};
|
|
1553
|
+
/**
|
|
1554
|
+
* ISO timestamp of when the user last visited the blog page
|
|
1555
|
+
*/
|
|
1556
|
+
blogLastVisited?: string;
|
|
1557
|
+
ankiProfiles?: Array<{
|
|
1558
|
+
id: string;
|
|
1559
|
+
name: string;
|
|
1560
|
+
deck?: string;
|
|
1561
|
+
model?: string;
|
|
1562
|
+
fields?: Array<{
|
|
1563
|
+
key: string;
|
|
1564
|
+
value: string;
|
|
1565
|
+
}>;
|
|
1566
|
+
key?: string;
|
|
1567
|
+
serverAddress: string;
|
|
1568
|
+
}>;
|
|
1569
|
+
/**
|
|
1570
|
+
* Media hidden from search results by the user
|
|
1571
|
+
*/
|
|
1572
|
+
hiddenMedia?: Array<{
|
|
1573
|
+
mediaId: number;
|
|
1574
|
+
nameEn?: string;
|
|
1575
|
+
nameJa?: string;
|
|
1576
|
+
nameRomaji?: string;
|
|
1577
|
+
}>;
|
|
1578
|
+
};
|
|
1579
|
+
/**
|
|
1580
|
+
* Type of user activity
|
|
1581
|
+
*/
|
|
1582
|
+
export type ActivityType = 'SEARCH' | 'ANKI_EXPORT' | 'SEGMENT_PLAY' | 'LIST_ADD_SEGMENT';
|
|
1583
|
+
export type UserActivity = {
|
|
1584
|
+
id: number;
|
|
1585
|
+
activityType: ActivityType;
|
|
1586
|
+
segmentUuid?: string;
|
|
1587
|
+
mediaId?: number;
|
|
1588
|
+
searchQuery?: string;
|
|
1589
|
+
createdAt: string;
|
|
1590
|
+
};
|
|
1591
|
+
/**
|
|
1592
|
+
* User segment collection
|
|
1593
|
+
*/
|
|
1594
|
+
export type Collection = {
|
|
1595
|
+
/**
|
|
1596
|
+
* Collection ID
|
|
1597
|
+
*/
|
|
1598
|
+
id: number;
|
|
1599
|
+
/**
|
|
1600
|
+
* Name of the collection
|
|
1601
|
+
*/
|
|
1602
|
+
name: string;
|
|
1603
|
+
/**
|
|
1604
|
+
* User ID who owns the collection
|
|
1605
|
+
*/
|
|
1606
|
+
userId: number;
|
|
1607
|
+
/**
|
|
1608
|
+
* Visibility of the collection
|
|
1609
|
+
*/
|
|
1610
|
+
visibility: 'PUBLIC' | 'PRIVATE';
|
|
1611
|
+
};
|
|
1612
|
+
export type UserExportCollection = Collection & {
|
|
1613
|
+
/**
|
|
1614
|
+
* Segment UUIDs in saved order
|
|
1615
|
+
*/
|
|
1616
|
+
segmentUuids: Array<string>;
|
|
1617
|
+
};
|
|
1618
|
+
/**
|
|
1619
|
+
* User data export payload (identifier-oriented references)
|
|
1620
|
+
*/
|
|
1621
|
+
export type UserExportResponse = {
|
|
1622
|
+
profile: {
|
|
1623
|
+
id: number;
|
|
1624
|
+
username: string;
|
|
1625
|
+
email: string;
|
|
1626
|
+
createdAt: string;
|
|
1627
|
+
};
|
|
1628
|
+
preferences: UserPreferences;
|
|
1629
|
+
activity: Array<UserActivity>;
|
|
1630
|
+
collections: Array<UserExportCollection>;
|
|
1631
|
+
reports: Array<Report>;
|
|
1632
|
+
};
|
|
1633
|
+
export type UserLabFeature = {
|
|
1634
|
+
/**
|
|
1635
|
+
* Unique identifier for the lab feature
|
|
1636
|
+
*/
|
|
1637
|
+
key: string;
|
|
1638
|
+
/**
|
|
1639
|
+
* Human-readable feature name
|
|
1640
|
+
*/
|
|
1641
|
+
name: string;
|
|
1642
|
+
/**
|
|
1643
|
+
* Description of what the feature does
|
|
1644
|
+
*/
|
|
1645
|
+
description: string;
|
|
1646
|
+
/**
|
|
1647
|
+
* Whether the feature is globally available
|
|
1648
|
+
*/
|
|
1649
|
+
enabled: boolean;
|
|
1650
|
+
/**
|
|
1651
|
+
* Whether the user has opted in to this feature
|
|
1652
|
+
*/
|
|
1653
|
+
userEnabled: boolean;
|
|
1654
|
+
};
|
|
1655
|
+
/**
|
|
1656
|
+
* Paginated collection list response
|
|
1657
|
+
*/
|
|
1658
|
+
export type CollectionListResponse = {
|
|
1659
|
+
collections: Array<Collection>;
|
|
1660
|
+
pagination: CursorPagination;
|
|
1661
|
+
};
|
|
1662
|
+
/**
|
|
1663
|
+
* Request body for creating a new collection
|
|
1664
|
+
*/
|
|
1665
|
+
export type CollectionRequests = {
|
|
1666
|
+
/**
|
|
1667
|
+
* Name of the collection
|
|
1668
|
+
*/
|
|
1669
|
+
name: string;
|
|
1670
|
+
/**
|
|
1671
|
+
* Visibility of the collection
|
|
1672
|
+
*/
|
|
1673
|
+
visibility?: 'PUBLIC' | 'PRIVATE';
|
|
1674
|
+
};
|
|
1675
|
+
/**
|
|
1676
|
+
* Collection with saved segments (search result format)
|
|
1677
|
+
*/
|
|
1678
|
+
export type CollectionWithSegments = {
|
|
1679
|
+
/**
|
|
1680
|
+
* Collection ID
|
|
1681
|
+
*/
|
|
1682
|
+
id: number;
|
|
1683
|
+
/**
|
|
1684
|
+
* Name of the collection
|
|
1685
|
+
*/
|
|
1686
|
+
name: string;
|
|
1687
|
+
/**
|
|
1688
|
+
* User ID who owns the collection
|
|
1689
|
+
*/
|
|
1690
|
+
userId: number;
|
|
1691
|
+
/**
|
|
1692
|
+
* Visibility of the collection
|
|
1693
|
+
*/
|
|
1694
|
+
visibility: 'PUBLIC' | 'PRIVATE';
|
|
1695
|
+
/**
|
|
1696
|
+
* Saved segments with their search result data
|
|
1697
|
+
*/
|
|
1698
|
+
segments: Array<{
|
|
1699
|
+
/**
|
|
1700
|
+
* Position in the collection
|
|
1701
|
+
*/
|
|
1702
|
+
position?: number;
|
|
1703
|
+
/**
|
|
1704
|
+
* User annotation
|
|
1705
|
+
*/
|
|
1706
|
+
note?: string;
|
|
1707
|
+
result?: Segment;
|
|
1708
|
+
}>;
|
|
1709
|
+
includes?: {
|
|
1710
|
+
/**
|
|
1711
|
+
* Media objects keyed by mediaId
|
|
1712
|
+
*/
|
|
1713
|
+
media?: {
|
|
1714
|
+
[key: string]: Media;
|
|
1715
|
+
};
|
|
1716
|
+
};
|
|
1717
|
+
/**
|
|
1718
|
+
* Total number of segments in the collection
|
|
1719
|
+
*/
|
|
1720
|
+
totalCount: number;
|
|
1721
|
+
pagination: CursorPagination;
|
|
1722
|
+
};
|
|
1723
|
+
/**
|
|
1724
|
+
* Request to reindex segments from the database into Elasticsearch
|
|
1725
|
+
*/
|
|
1726
|
+
export type ReindexRequest = {
|
|
1727
|
+
/**
|
|
1728
|
+
* Array of media to reindex. If not provided, all media will be reindexed.
|
|
1729
|
+
* Each media can optionally specify which episodes to reindex.
|
|
1730
|
+
* If episodes are not specified for a media, all episodes will be reindexed.
|
|
1731
|
+
*/
|
|
1732
|
+
media?: Array<{
|
|
1733
|
+
/**
|
|
1734
|
+
* The ID of the media
|
|
1735
|
+
*/
|
|
1736
|
+
mediaId: number;
|
|
1737
|
+
/**
|
|
1738
|
+
* Optional array of episode numbers to reindex.
|
|
1739
|
+
* If not provided, all episodes for this media will be reindexed.
|
|
1740
|
+
*/
|
|
1741
|
+
episodes?: Array<number>;
|
|
1742
|
+
}>;
|
|
1743
|
+
};
|
|
1744
|
+
/**
|
|
1745
|
+
* Response from the reindex operation
|
|
1746
|
+
*/
|
|
1747
|
+
export type ReindexResponse = {
|
|
1748
|
+
/**
|
|
1749
|
+
* Whether the reindex operation completed successfully
|
|
1750
|
+
*/
|
|
1751
|
+
success?: boolean;
|
|
1752
|
+
/**
|
|
1753
|
+
* Human-readable message about the reindex operation
|
|
1754
|
+
*/
|
|
1755
|
+
message?: string;
|
|
1756
|
+
/**
|
|
1757
|
+
* Statistics about the reindex operation
|
|
1758
|
+
*/
|
|
1759
|
+
stats?: {
|
|
1760
|
+
/**
|
|
1761
|
+
* Total number of segments processed
|
|
1762
|
+
*/
|
|
1763
|
+
totalSegments?: number;
|
|
1764
|
+
/**
|
|
1765
|
+
* Number of segments successfully indexed
|
|
1766
|
+
*/
|
|
1767
|
+
successfulIndexes?: number;
|
|
1768
|
+
/**
|
|
1769
|
+
* Number of segments that failed to index
|
|
1770
|
+
*/
|
|
1771
|
+
failedIndexes?: number;
|
|
1772
|
+
/**
|
|
1773
|
+
* Number of media items processed
|
|
1774
|
+
*/
|
|
1775
|
+
mediaProcessed?: number;
|
|
1776
|
+
};
|
|
1777
|
+
/**
|
|
1778
|
+
* Array of errors that occurred during reindexing (if any)
|
|
1779
|
+
*/
|
|
1780
|
+
errors?: Array<{
|
|
1781
|
+
/**
|
|
1782
|
+
* ID of the segment that failed
|
|
1783
|
+
*/
|
|
1784
|
+
segmentId?: number;
|
|
1785
|
+
/**
|
|
1786
|
+
* Error message
|
|
1787
|
+
*/
|
|
1788
|
+
error?: string;
|
|
1789
|
+
}>;
|
|
1790
|
+
};
|
|
1791
|
+
export type AdminReport = Report & {
|
|
1792
|
+
/**
|
|
1793
|
+
* Number of reports for the same target
|
|
1794
|
+
*/
|
|
1795
|
+
reportCount: number;
|
|
1796
|
+
/**
|
|
1797
|
+
* Name of the user who submitted this report
|
|
1798
|
+
*/
|
|
1799
|
+
reporterName: string;
|
|
1800
|
+
};
|
|
1801
|
+
export type AdminReportListResponse = {
|
|
1802
|
+
reports: Array<AdminReport>;
|
|
1803
|
+
pagination: CursorPagination;
|
|
1804
|
+
};
|
|
1805
|
+
export type UpdateReportRequest = {
|
|
1806
|
+
/**
|
|
1807
|
+
* New status for the report
|
|
1808
|
+
*/
|
|
1809
|
+
status?: 'PENDING' | 'CONCERN' | 'ACCEPTED' | 'REJECTED' | 'RESOLVED' | 'IGNORED';
|
|
1810
|
+
/**
|
|
1811
|
+
* Admin notes about the report
|
|
1812
|
+
*/
|
|
1813
|
+
adminNotes?: string;
|
|
1814
|
+
};
|
|
1815
|
+
export type RunReviewResponse = {
|
|
1816
|
+
/**
|
|
1817
|
+
* Category filter used
|
|
1818
|
+
*/
|
|
1819
|
+
category: string;
|
|
1820
|
+
checksRun: Array<{
|
|
1821
|
+
/**
|
|
1822
|
+
* Check identifier
|
|
1823
|
+
*/
|
|
1824
|
+
checkName: string;
|
|
1825
|
+
/**
|
|
1826
|
+
* Human-readable check name
|
|
1827
|
+
*/
|
|
1828
|
+
label: string;
|
|
1829
|
+
/**
|
|
1830
|
+
* Number of reports created
|
|
1831
|
+
*/
|
|
1832
|
+
resultCount: number;
|
|
1833
|
+
/**
|
|
1834
|
+
* ID of the created run record
|
|
1835
|
+
*/
|
|
1836
|
+
runId: number;
|
|
1837
|
+
}>;
|
|
1838
|
+
/**
|
|
1839
|
+
* Total reports created across all checks
|
|
1840
|
+
*/
|
|
1841
|
+
totalReports: number;
|
|
1842
|
+
};
|
|
1843
|
+
export type ReviewCheck = {
|
|
1844
|
+
/**
|
|
1845
|
+
* Check ID
|
|
1846
|
+
*/
|
|
1847
|
+
id: number;
|
|
1848
|
+
/**
|
|
1849
|
+
* Unique check identifier
|
|
1850
|
+
*/
|
|
1851
|
+
name: string;
|
|
1852
|
+
/**
|
|
1853
|
+
* Human-readable label
|
|
1854
|
+
*/
|
|
1855
|
+
label: string;
|
|
1856
|
+
/**
|
|
1857
|
+
* What this check does
|
|
1858
|
+
*/
|
|
1859
|
+
description: string;
|
|
1860
|
+
/**
|
|
1861
|
+
* What level this check operates on
|
|
1862
|
+
*/
|
|
1863
|
+
targetType: 'MEDIA' | 'EPISODE';
|
|
1864
|
+
/**
|
|
1865
|
+
* Current threshold configuration
|
|
1866
|
+
*/
|
|
1867
|
+
threshold: {
|
|
1868
|
+
[key: string]: unknown;
|
|
1869
|
+
};
|
|
1870
|
+
/**
|
|
1871
|
+
* Whether this check is active
|
|
1872
|
+
*/
|
|
1873
|
+
enabled: boolean;
|
|
1874
|
+
/**
|
|
1875
|
+
* Schema for threshold fields (from registry)
|
|
1876
|
+
*/
|
|
1877
|
+
thresholdSchema?: Array<{
|
|
1878
|
+
key?: string;
|
|
1879
|
+
label?: string;
|
|
1880
|
+
type?: 'number' | 'boolean';
|
|
1881
|
+
default?: number | boolean;
|
|
1882
|
+
min?: number;
|
|
1883
|
+
max?: number;
|
|
1884
|
+
}>;
|
|
1885
|
+
/**
|
|
1886
|
+
* Latest run info for this check
|
|
1887
|
+
*/
|
|
1888
|
+
latestRun?: {
|
|
1889
|
+
id?: number;
|
|
1890
|
+
resultCount?: number;
|
|
1891
|
+
createdAt?: string;
|
|
1892
|
+
};
|
|
1893
|
+
createdAt?: string;
|
|
1894
|
+
updatedAt?: string;
|
|
1895
|
+
};
|
|
1896
|
+
export type ReviewCheckRun = {
|
|
1897
|
+
/**
|
|
1898
|
+
* Run ID
|
|
1899
|
+
*/
|
|
1900
|
+
id: number;
|
|
1901
|
+
/**
|
|
1902
|
+
* Name of the check that was run
|
|
1903
|
+
*/
|
|
1904
|
+
checkName: string;
|
|
1905
|
+
/**
|
|
1906
|
+
* Category filter used (ANIME/JDRAMA) or null for all
|
|
1907
|
+
*/
|
|
1908
|
+
category?: string;
|
|
1909
|
+
/**
|
|
1910
|
+
* Number of reports created in this run
|
|
1911
|
+
*/
|
|
1912
|
+
resultCount: number;
|
|
1913
|
+
/**
|
|
1914
|
+
* Snapshot of threshold at run time
|
|
1915
|
+
*/
|
|
1916
|
+
thresholdUsed: {
|
|
1917
|
+
[key: string]: unknown;
|
|
1918
|
+
};
|
|
1919
|
+
/**
|
|
1920
|
+
* When this run was executed
|
|
1921
|
+
*/
|
|
1922
|
+
createdAt: string;
|
|
1923
|
+
};
|
|
1924
|
+
export type ReviewAllowlist = {
|
|
1925
|
+
/**
|
|
1926
|
+
* Allowlist entry ID
|
|
1927
|
+
*/
|
|
1928
|
+
id: number;
|
|
1929
|
+
/**
|
|
1930
|
+
* Name of the check this entry applies to
|
|
1931
|
+
*/
|
|
1932
|
+
checkName: string;
|
|
1933
|
+
/**
|
|
1934
|
+
* Media ID to exclude
|
|
1935
|
+
*/
|
|
1936
|
+
mediaId: number;
|
|
1937
|
+
/**
|
|
1938
|
+
* Episode number to exclude (null for media-level checks)
|
|
1939
|
+
*/
|
|
1940
|
+
episodeNumber?: number;
|
|
1941
|
+
/**
|
|
1942
|
+
* Why this was allowlisted
|
|
1943
|
+
*/
|
|
1944
|
+
reason?: string;
|
|
1945
|
+
/**
|
|
1946
|
+
* When this entry was created
|
|
1947
|
+
*/
|
|
1948
|
+
createdAt: string;
|
|
1949
|
+
};
|
|
1950
|
+
export type SearchIndexData = {
|
|
1951
|
+
body?: SearchRequest;
|
|
1952
|
+
path?: never;
|
|
1953
|
+
query?: never;
|
|
1954
|
+
url: '/v1/search';
|
|
1955
|
+
};
|
|
1956
|
+
export type SearchIndexErrors = {
|
|
1957
|
+
/**
|
|
1958
|
+
* Bad Request
|
|
1959
|
+
*/
|
|
1960
|
+
400: Error400;
|
|
1961
|
+
/**
|
|
1962
|
+
* Unauthorized
|
|
1963
|
+
*/
|
|
1964
|
+
401: Error401;
|
|
1965
|
+
/**
|
|
1966
|
+
* Forbidden
|
|
1967
|
+
*/
|
|
1968
|
+
403: Error403;
|
|
1969
|
+
/**
|
|
1970
|
+
* Too Many Requests
|
|
1971
|
+
*/
|
|
1972
|
+
429: Error429;
|
|
1973
|
+
/**
|
|
1974
|
+
* Internal Server Error
|
|
1975
|
+
*/
|
|
1976
|
+
500: Error500;
|
|
1977
|
+
};
|
|
1978
|
+
export type SearchIndexError = SearchIndexErrors[keyof SearchIndexErrors];
|
|
1979
|
+
export type SearchIndexResponses = {
|
|
1980
|
+
/**
|
|
1981
|
+
* OK
|
|
1982
|
+
*/
|
|
1983
|
+
200: SearchResponse;
|
|
1984
|
+
};
|
|
1985
|
+
export type SearchIndexResponse = SearchIndexResponses[keyof SearchIndexResponses];
|
|
1986
|
+
export type SearchStatsData = {
|
|
1987
|
+
body?: SearchStatsRequest;
|
|
1988
|
+
path?: never;
|
|
1989
|
+
query?: never;
|
|
1990
|
+
url: '/v1/search/stats';
|
|
1991
|
+
};
|
|
1992
|
+
export type SearchStatsErrors = {
|
|
1993
|
+
/**
|
|
1994
|
+
* Bad Request
|
|
1995
|
+
*/
|
|
1996
|
+
400: Error400;
|
|
1997
|
+
/**
|
|
1998
|
+
* Unauthorized
|
|
1999
|
+
*/
|
|
2000
|
+
401: Error401;
|
|
2001
|
+
/**
|
|
2002
|
+
* Forbidden
|
|
2003
|
+
*/
|
|
2004
|
+
403: Error403;
|
|
2005
|
+
/**
|
|
2006
|
+
* Too Many Requests
|
|
2007
|
+
*/
|
|
2008
|
+
429: Error429;
|
|
2009
|
+
/**
|
|
2010
|
+
* Internal Server Error
|
|
2011
|
+
*/
|
|
2012
|
+
500: Error500;
|
|
2013
|
+
};
|
|
2014
|
+
export type SearchStatsError = SearchStatsErrors[keyof SearchStatsErrors];
|
|
2015
|
+
export type SearchStatsResponses = {
|
|
2016
|
+
/**
|
|
2017
|
+
* OK
|
|
2018
|
+
*/
|
|
2019
|
+
200: SearchStatsResponse;
|
|
2020
|
+
};
|
|
2021
|
+
export type SearchStatsResponse2 = SearchStatsResponses[keyof SearchStatsResponses];
|
|
2022
|
+
export type SearchWordsData = {
|
|
2023
|
+
body: SearchMultipleRequest;
|
|
2024
|
+
path?: never;
|
|
2025
|
+
query?: never;
|
|
2026
|
+
url: '/v1/search/words';
|
|
2027
|
+
};
|
|
2028
|
+
export type SearchWordsErrors = {
|
|
2029
|
+
/**
|
|
2030
|
+
* Bad Request
|
|
2031
|
+
*/
|
|
2032
|
+
400: Error400;
|
|
2033
|
+
/**
|
|
2034
|
+
* Unauthorized
|
|
2035
|
+
*/
|
|
2036
|
+
401: Error401;
|
|
2037
|
+
/**
|
|
2038
|
+
* Forbidden
|
|
2039
|
+
*/
|
|
2040
|
+
403: Error403;
|
|
2041
|
+
/**
|
|
2042
|
+
* Too Many Requests
|
|
2043
|
+
*/
|
|
2044
|
+
429: Error429;
|
|
2045
|
+
/**
|
|
2046
|
+
* Internal Server Error
|
|
2047
|
+
*/
|
|
2048
|
+
500: Error500;
|
|
2049
|
+
};
|
|
2050
|
+
export type SearchWordsError = SearchWordsErrors[keyof SearchWordsErrors];
|
|
2051
|
+
export type SearchWordsResponses = {
|
|
2052
|
+
/**
|
|
2053
|
+
* OK
|
|
2054
|
+
*/
|
|
2055
|
+
200: SearchMultipleResponse;
|
|
2056
|
+
};
|
|
2057
|
+
export type SearchWordsResponse = SearchWordsResponses[keyof SearchWordsResponses];
|
|
2058
|
+
export type MediaIndexData = {
|
|
2059
|
+
body?: never;
|
|
2060
|
+
path?: never;
|
|
2061
|
+
query?: {
|
|
2062
|
+
/**
|
|
2063
|
+
* Number of results per page
|
|
2064
|
+
*/
|
|
2065
|
+
limit?: number;
|
|
2066
|
+
/**
|
|
2067
|
+
* Pagination cursor offset
|
|
2068
|
+
*/
|
|
2069
|
+
cursor?: number;
|
|
2070
|
+
/**
|
|
2071
|
+
* Filter by media category
|
|
2072
|
+
*/
|
|
2073
|
+
category?: 'ANIME' | 'JDRAMA';
|
|
2074
|
+
/**
|
|
2075
|
+
* Search query for filtering media by name
|
|
2076
|
+
*/
|
|
2077
|
+
query?: string;
|
|
2078
|
+
/**
|
|
2079
|
+
* Resources to expand in the media response (`media.characters` implies `media`)
|
|
2080
|
+
*/
|
|
2081
|
+
include?: Array<MediaIncludeExpansion>;
|
|
2082
|
+
};
|
|
2083
|
+
url: '/v1/media';
|
|
2084
|
+
};
|
|
2085
|
+
export type MediaIndexErrors = {
|
|
2086
|
+
/**
|
|
2087
|
+
* Bad Request
|
|
2088
|
+
*/
|
|
2089
|
+
400: Error400;
|
|
2090
|
+
/**
|
|
2091
|
+
* Unauthorized
|
|
2092
|
+
*/
|
|
2093
|
+
401: Error401;
|
|
2094
|
+
/**
|
|
2095
|
+
* Forbidden
|
|
2096
|
+
*/
|
|
2097
|
+
403: Error403;
|
|
2098
|
+
/**
|
|
2099
|
+
* Too Many Requests
|
|
2100
|
+
*/
|
|
2101
|
+
429: Error429;
|
|
2102
|
+
/**
|
|
2103
|
+
* Internal Server Error
|
|
2104
|
+
*/
|
|
2105
|
+
500: Error500;
|
|
2106
|
+
};
|
|
2107
|
+
export type MediaIndexError = MediaIndexErrors[keyof MediaIndexErrors];
|
|
2108
|
+
export type MediaIndexResponses = {
|
|
2109
|
+
/**
|
|
2110
|
+
* OK
|
|
2111
|
+
*/
|
|
2112
|
+
200: MediaListResponse;
|
|
2113
|
+
};
|
|
2114
|
+
export type MediaIndexResponse = MediaIndexResponses[keyof MediaIndexResponses];
|
|
2115
|
+
export type MediaCreateData = {
|
|
2116
|
+
body: MediaCreateRequest;
|
|
2117
|
+
path?: never;
|
|
2118
|
+
query?: never;
|
|
2119
|
+
url: '/v1/media';
|
|
2120
|
+
};
|
|
2121
|
+
export type MediaCreateErrors = {
|
|
2122
|
+
/**
|
|
2123
|
+
* Bad Request
|
|
2124
|
+
*/
|
|
2125
|
+
400: Error400;
|
|
2126
|
+
/**
|
|
2127
|
+
* Unauthorized
|
|
2128
|
+
*/
|
|
2129
|
+
401: Error401;
|
|
2130
|
+
/**
|
|
2131
|
+
* Forbidden
|
|
2132
|
+
*/
|
|
2133
|
+
403: Error403;
|
|
2134
|
+
/**
|
|
2135
|
+
* Conflict
|
|
2136
|
+
*/
|
|
2137
|
+
409: Error409;
|
|
2138
|
+
/**
|
|
2139
|
+
* Too Many Requests
|
|
2140
|
+
*/
|
|
2141
|
+
429: Error429;
|
|
2142
|
+
/**
|
|
2143
|
+
* Internal Server Error
|
|
2144
|
+
*/
|
|
2145
|
+
500: Error500;
|
|
2146
|
+
};
|
|
2147
|
+
export type MediaCreateError = MediaCreateErrors[keyof MediaCreateErrors];
|
|
2148
|
+
export type MediaCreateResponses = {
|
|
2149
|
+
/**
|
|
2150
|
+
* Created
|
|
2151
|
+
*/
|
|
2152
|
+
201: Media;
|
|
2153
|
+
};
|
|
2154
|
+
export type MediaCreateResponse = MediaCreateResponses[keyof MediaCreateResponses];
|
|
2155
|
+
export type MediaDestroyData = {
|
|
2156
|
+
body?: never;
|
|
2157
|
+
path: {
|
|
2158
|
+
/**
|
|
2159
|
+
* Media ID
|
|
2160
|
+
*/
|
|
2161
|
+
id: number;
|
|
2162
|
+
};
|
|
2163
|
+
query?: never;
|
|
2164
|
+
url: '/v1/media/{id}';
|
|
2165
|
+
};
|
|
2166
|
+
export type MediaDestroyErrors = {
|
|
2167
|
+
/**
|
|
2168
|
+
* Bad Request
|
|
2169
|
+
*/
|
|
2170
|
+
400: Error400;
|
|
2171
|
+
/**
|
|
2172
|
+
* Unauthorized
|
|
2173
|
+
*/
|
|
2174
|
+
401: Error401;
|
|
2175
|
+
/**
|
|
2176
|
+
* Forbidden
|
|
2177
|
+
*/
|
|
2178
|
+
403: Error403;
|
|
2179
|
+
/**
|
|
2180
|
+
* Not Found
|
|
2181
|
+
*/
|
|
2182
|
+
404: Error404;
|
|
2183
|
+
/**
|
|
2184
|
+
* Too Many Requests
|
|
2185
|
+
*/
|
|
2186
|
+
429: Error429;
|
|
2187
|
+
/**
|
|
2188
|
+
* Internal Server Error
|
|
2189
|
+
*/
|
|
2190
|
+
500: Error500;
|
|
2191
|
+
};
|
|
2192
|
+
export type MediaDestroyError = MediaDestroyErrors[keyof MediaDestroyErrors];
|
|
2193
|
+
export type MediaDestroyResponses = {
|
|
2194
|
+
/**
|
|
2195
|
+
* No Content
|
|
2196
|
+
*/
|
|
2197
|
+
204: void;
|
|
2198
|
+
};
|
|
2199
|
+
export type MediaDestroyResponse = MediaDestroyResponses[keyof MediaDestroyResponses];
|
|
2200
|
+
export type MediaShowData = {
|
|
2201
|
+
body?: never;
|
|
2202
|
+
path: {
|
|
2203
|
+
/**
|
|
2204
|
+
* Media ID
|
|
2205
|
+
*/
|
|
2206
|
+
id: number;
|
|
2207
|
+
};
|
|
2208
|
+
query?: {
|
|
2209
|
+
/**
|
|
2210
|
+
* Resources to expand in the media response (`media.characters` implies `media`)
|
|
2211
|
+
*/
|
|
2212
|
+
include?: Array<MediaIncludeExpansion>;
|
|
2213
|
+
};
|
|
2214
|
+
url: '/v1/media/{id}';
|
|
2215
|
+
};
|
|
2216
|
+
export type MediaShowErrors = {
|
|
2217
|
+
/**
|
|
2218
|
+
* Bad Request
|
|
2219
|
+
*/
|
|
2220
|
+
400: Error400;
|
|
2221
|
+
/**
|
|
2222
|
+
* Unauthorized
|
|
2223
|
+
*/
|
|
2224
|
+
401: Error401;
|
|
2225
|
+
/**
|
|
2226
|
+
* Forbidden
|
|
2227
|
+
*/
|
|
2228
|
+
403: Error403;
|
|
2229
|
+
/**
|
|
2230
|
+
* Not Found
|
|
2231
|
+
*/
|
|
2232
|
+
404: Error404;
|
|
2233
|
+
/**
|
|
2234
|
+
* Too Many Requests
|
|
2235
|
+
*/
|
|
2236
|
+
429: Error429;
|
|
2237
|
+
/**
|
|
2238
|
+
* Internal Server Error
|
|
2239
|
+
*/
|
|
2240
|
+
500: Error500;
|
|
2241
|
+
};
|
|
2242
|
+
export type MediaShowError = MediaShowErrors[keyof MediaShowErrors];
|
|
2243
|
+
export type MediaShowResponses = {
|
|
2244
|
+
/**
|
|
2245
|
+
* OK
|
|
2246
|
+
*/
|
|
2247
|
+
200: Media;
|
|
2248
|
+
};
|
|
2249
|
+
export type MediaShowResponse = MediaShowResponses[keyof MediaShowResponses];
|
|
2250
|
+
export type MediaUpdateData = {
|
|
2251
|
+
body: MediaUpdateRequest;
|
|
2252
|
+
path: {
|
|
2253
|
+
/**
|
|
2254
|
+
* Media ID
|
|
2255
|
+
*/
|
|
2256
|
+
id: number;
|
|
2257
|
+
};
|
|
2258
|
+
query?: never;
|
|
2259
|
+
url: '/v1/media/{id}';
|
|
2260
|
+
};
|
|
2261
|
+
export type MediaUpdateErrors = {
|
|
2262
|
+
/**
|
|
2263
|
+
* Bad Request
|
|
2264
|
+
*/
|
|
2265
|
+
400: Error400;
|
|
2266
|
+
/**
|
|
2267
|
+
* Unauthorized
|
|
2268
|
+
*/
|
|
2269
|
+
401: Error401;
|
|
2270
|
+
/**
|
|
2271
|
+
* Forbidden
|
|
2272
|
+
*/
|
|
2273
|
+
403: Error403;
|
|
2274
|
+
/**
|
|
2275
|
+
* Not Found
|
|
2276
|
+
*/
|
|
2277
|
+
404: Error404;
|
|
2278
|
+
/**
|
|
2279
|
+
* Too Many Requests
|
|
2280
|
+
*/
|
|
2281
|
+
429: Error429;
|
|
2282
|
+
/**
|
|
2283
|
+
* Internal Server Error
|
|
2284
|
+
*/
|
|
2285
|
+
500: Error500;
|
|
2286
|
+
};
|
|
2287
|
+
export type MediaUpdateError = MediaUpdateErrors[keyof MediaUpdateErrors];
|
|
2288
|
+
export type MediaUpdateResponses = {
|
|
2289
|
+
/**
|
|
2290
|
+
* OK
|
|
2291
|
+
*/
|
|
2292
|
+
200: Media;
|
|
2293
|
+
};
|
|
2294
|
+
export type MediaUpdateResponse = MediaUpdateResponses[keyof MediaUpdateResponses];
|
|
2295
|
+
export type EpisodeIndexData = {
|
|
2296
|
+
body?: never;
|
|
2297
|
+
path: {
|
|
2298
|
+
/**
|
|
2299
|
+
* ID of the media
|
|
2300
|
+
*/
|
|
2301
|
+
mediaId: number;
|
|
2302
|
+
};
|
|
2303
|
+
query?: {
|
|
2304
|
+
/**
|
|
2305
|
+
* Maximum number of episodes to return
|
|
2306
|
+
*/
|
|
2307
|
+
limit?: number;
|
|
2308
|
+
/**
|
|
2309
|
+
* Episode number to start from (for pagination)
|
|
2310
|
+
*/
|
|
2311
|
+
cursor?: number;
|
|
2312
|
+
};
|
|
2313
|
+
url: '/v1/media/{mediaId}/episodes';
|
|
2314
|
+
};
|
|
2315
|
+
export type EpisodeIndexErrors = {
|
|
2316
|
+
/**
|
|
2317
|
+
* Bad Request
|
|
2318
|
+
*/
|
|
2319
|
+
400: Error400;
|
|
2320
|
+
/**
|
|
2321
|
+
* Unauthorized
|
|
2322
|
+
*/
|
|
2323
|
+
401: Error401;
|
|
2324
|
+
/**
|
|
2325
|
+
* Forbidden
|
|
2326
|
+
*/
|
|
2327
|
+
403: Error403;
|
|
2328
|
+
/**
|
|
2329
|
+
* Not Found
|
|
2330
|
+
*/
|
|
2331
|
+
404: Error404;
|
|
2332
|
+
/**
|
|
2333
|
+
* Too Many Requests
|
|
2334
|
+
*/
|
|
2335
|
+
429: Error429;
|
|
2336
|
+
/**
|
|
2337
|
+
* Internal Server Error
|
|
2338
|
+
*/
|
|
2339
|
+
500: Error500;
|
|
2340
|
+
};
|
|
2341
|
+
export type EpisodeIndexError = EpisodeIndexErrors[keyof EpisodeIndexErrors];
|
|
2342
|
+
export type EpisodeIndexResponses = {
|
|
2343
|
+
/**
|
|
2344
|
+
* Paginated list of episodes
|
|
2345
|
+
*/
|
|
2346
|
+
200: EpisodeListResponse;
|
|
2347
|
+
};
|
|
2348
|
+
export type EpisodeIndexResponse = EpisodeIndexResponses[keyof EpisodeIndexResponses];
|
|
2349
|
+
export type EpisodeCreateData = {
|
|
2350
|
+
body: EpisodeCreateRequest;
|
|
2351
|
+
path: {
|
|
2352
|
+
/**
|
|
2353
|
+
* ID of the media
|
|
2354
|
+
*/
|
|
2355
|
+
mediaId: number;
|
|
2356
|
+
};
|
|
2357
|
+
query?: never;
|
|
2358
|
+
url: '/v1/media/{mediaId}/episodes';
|
|
2359
|
+
};
|
|
2360
|
+
export type EpisodeCreateErrors = {
|
|
2361
|
+
/**
|
|
2362
|
+
* Bad Request
|
|
2363
|
+
*/
|
|
2364
|
+
400: Error400;
|
|
2365
|
+
/**
|
|
2366
|
+
* Unauthorized
|
|
2367
|
+
*/
|
|
2368
|
+
401: Error401;
|
|
2369
|
+
/**
|
|
2370
|
+
* Forbidden
|
|
2371
|
+
*/
|
|
2372
|
+
403: Error403;
|
|
2373
|
+
/**
|
|
2374
|
+
* Not Found
|
|
2375
|
+
*/
|
|
2376
|
+
404: Error404;
|
|
2377
|
+
/**
|
|
2378
|
+
* Conflict
|
|
2379
|
+
*/
|
|
2380
|
+
409: Error409;
|
|
2381
|
+
/**
|
|
2382
|
+
* Too Many Requests
|
|
2383
|
+
*/
|
|
2384
|
+
429: Error429;
|
|
2385
|
+
/**
|
|
2386
|
+
* Internal Server Error
|
|
2387
|
+
*/
|
|
2388
|
+
500: Error500;
|
|
2389
|
+
};
|
|
2390
|
+
export type EpisodeCreateError = EpisodeCreateErrors[keyof EpisodeCreateErrors];
|
|
2391
|
+
export type EpisodeCreateResponses = {
|
|
2392
|
+
/**
|
|
2393
|
+
* Single episode response
|
|
2394
|
+
*/
|
|
2395
|
+
201: Episode;
|
|
2396
|
+
};
|
|
2397
|
+
export type EpisodeCreateResponse = EpisodeCreateResponses[keyof EpisodeCreateResponses];
|
|
2398
|
+
export type EpisodeDestroyData = {
|
|
2399
|
+
body?: never;
|
|
2400
|
+
path: {
|
|
2401
|
+
/**
|
|
2402
|
+
* ID of the media
|
|
2403
|
+
*/
|
|
2404
|
+
mediaId: number;
|
|
2405
|
+
/**
|
|
2406
|
+
* Episode number
|
|
2407
|
+
*/
|
|
2408
|
+
episodeNumber: number;
|
|
2409
|
+
};
|
|
2410
|
+
query?: never;
|
|
2411
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}';
|
|
2412
|
+
};
|
|
2413
|
+
export type EpisodeDestroyErrors = {
|
|
2414
|
+
/**
|
|
2415
|
+
* Bad Request
|
|
2416
|
+
*/
|
|
2417
|
+
400: Error400;
|
|
2418
|
+
/**
|
|
2419
|
+
* Unauthorized
|
|
2420
|
+
*/
|
|
2421
|
+
401: Error401;
|
|
2422
|
+
/**
|
|
2423
|
+
* Forbidden
|
|
2424
|
+
*/
|
|
2425
|
+
403: Error403;
|
|
2426
|
+
/**
|
|
2427
|
+
* Not Found
|
|
2428
|
+
*/
|
|
2429
|
+
404: Error404;
|
|
2430
|
+
/**
|
|
2431
|
+
* Too Many Requests
|
|
2432
|
+
*/
|
|
2433
|
+
429: Error429;
|
|
2434
|
+
/**
|
|
2435
|
+
* Internal Server Error
|
|
2436
|
+
*/
|
|
2437
|
+
500: Error500;
|
|
2438
|
+
};
|
|
2439
|
+
export type EpisodeDestroyError = EpisodeDestroyErrors[keyof EpisodeDestroyErrors];
|
|
2440
|
+
export type EpisodeDestroyResponses = {
|
|
2441
|
+
/**
|
|
2442
|
+
* Episode successfully deleted
|
|
2443
|
+
*/
|
|
2444
|
+
204: void;
|
|
2445
|
+
};
|
|
2446
|
+
export type EpisodeDestroyResponse = EpisodeDestroyResponses[keyof EpisodeDestroyResponses];
|
|
2447
|
+
export type EpisodeShowData = {
|
|
2448
|
+
body?: never;
|
|
2449
|
+
path: {
|
|
2450
|
+
/**
|
|
2451
|
+
* ID of the media
|
|
2452
|
+
*/
|
|
2453
|
+
mediaId: number;
|
|
2454
|
+
/**
|
|
2455
|
+
* Episode number
|
|
2456
|
+
*/
|
|
2457
|
+
episodeNumber: number;
|
|
2458
|
+
};
|
|
2459
|
+
query?: never;
|
|
2460
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}';
|
|
2461
|
+
};
|
|
2462
|
+
export type EpisodeShowErrors = {
|
|
2463
|
+
/**
|
|
2464
|
+
* Bad Request
|
|
2465
|
+
*/
|
|
2466
|
+
400: Error400;
|
|
2467
|
+
/**
|
|
2468
|
+
* Unauthorized
|
|
2469
|
+
*/
|
|
2470
|
+
401: Error401;
|
|
2471
|
+
/**
|
|
2472
|
+
* Forbidden
|
|
2473
|
+
*/
|
|
2474
|
+
403: Error403;
|
|
2475
|
+
/**
|
|
2476
|
+
* Not Found
|
|
2477
|
+
*/
|
|
2478
|
+
404: Error404;
|
|
2479
|
+
/**
|
|
2480
|
+
* Too Many Requests
|
|
2481
|
+
*/
|
|
2482
|
+
429: Error429;
|
|
2483
|
+
/**
|
|
2484
|
+
* Internal Server Error
|
|
2485
|
+
*/
|
|
2486
|
+
500: Error500;
|
|
2487
|
+
};
|
|
2488
|
+
export type EpisodeShowError = EpisodeShowErrors[keyof EpisodeShowErrors];
|
|
2489
|
+
export type EpisodeShowResponses = {
|
|
2490
|
+
/**
|
|
2491
|
+
* Single episode response
|
|
2492
|
+
*/
|
|
2493
|
+
200: Episode;
|
|
2494
|
+
};
|
|
2495
|
+
export type EpisodeShowResponse = EpisodeShowResponses[keyof EpisodeShowResponses];
|
|
2496
|
+
export type EpisodeUpdateData = {
|
|
2497
|
+
body: EpisodeUpdateRequest;
|
|
2498
|
+
path: {
|
|
2499
|
+
/**
|
|
2500
|
+
* ID of the media
|
|
2501
|
+
*/
|
|
2502
|
+
mediaId: number;
|
|
2503
|
+
/**
|
|
2504
|
+
* Episode number
|
|
2505
|
+
*/
|
|
2506
|
+
episodeNumber: number;
|
|
2507
|
+
};
|
|
2508
|
+
query?: never;
|
|
2509
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}';
|
|
2510
|
+
};
|
|
2511
|
+
export type EpisodeUpdateErrors = {
|
|
2512
|
+
/**
|
|
2513
|
+
* Bad Request
|
|
2514
|
+
*/
|
|
2515
|
+
400: Error400;
|
|
2516
|
+
/**
|
|
2517
|
+
* Unauthorized
|
|
2518
|
+
*/
|
|
2519
|
+
401: Error401;
|
|
2520
|
+
/**
|
|
2521
|
+
* Forbidden
|
|
2522
|
+
*/
|
|
2523
|
+
403: Error403;
|
|
2524
|
+
/**
|
|
2525
|
+
* Not Found
|
|
2526
|
+
*/
|
|
2527
|
+
404: Error404;
|
|
2528
|
+
/**
|
|
2529
|
+
* Too Many Requests
|
|
2530
|
+
*/
|
|
2531
|
+
429: Error429;
|
|
2532
|
+
/**
|
|
2533
|
+
* Internal Server Error
|
|
2534
|
+
*/
|
|
2535
|
+
500: Error500;
|
|
2536
|
+
};
|
|
2537
|
+
export type EpisodeUpdateError = EpisodeUpdateErrors[keyof EpisodeUpdateErrors];
|
|
2538
|
+
export type EpisodeUpdateResponses = {
|
|
2539
|
+
/**
|
|
2540
|
+
* Single episode response
|
|
2541
|
+
*/
|
|
2542
|
+
200: Episode;
|
|
2543
|
+
};
|
|
2544
|
+
export type EpisodeUpdateResponse = EpisodeUpdateResponses[keyof EpisodeUpdateResponses];
|
|
2545
|
+
export type SegmentIndexData = {
|
|
2546
|
+
body?: never;
|
|
2547
|
+
path: {
|
|
2548
|
+
/**
|
|
2549
|
+
* ID of the media
|
|
2550
|
+
*/
|
|
2551
|
+
mediaId: number;
|
|
2552
|
+
/**
|
|
2553
|
+
* Episode number
|
|
2554
|
+
*/
|
|
2555
|
+
episodeNumber: number;
|
|
2556
|
+
};
|
|
2557
|
+
query?: {
|
|
2558
|
+
/**
|
|
2559
|
+
* Maximum number of segments to return
|
|
2560
|
+
*/
|
|
2561
|
+
limit?: number;
|
|
2562
|
+
/**
|
|
2563
|
+
* Segment ID to start from (for pagination)
|
|
2564
|
+
*/
|
|
2565
|
+
cursor?: number;
|
|
2566
|
+
};
|
|
2567
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments';
|
|
2568
|
+
};
|
|
2569
|
+
export type SegmentIndexErrors = {
|
|
2570
|
+
/**
|
|
2571
|
+
* Bad Request
|
|
2572
|
+
*/
|
|
2573
|
+
400: Error400;
|
|
2574
|
+
/**
|
|
2575
|
+
* Unauthorized
|
|
2576
|
+
*/
|
|
2577
|
+
401: Error401;
|
|
2578
|
+
/**
|
|
2579
|
+
* Forbidden
|
|
2580
|
+
*/
|
|
2581
|
+
403: Error403;
|
|
2582
|
+
/**
|
|
2583
|
+
* Not Found
|
|
2584
|
+
*/
|
|
2585
|
+
404: Error404;
|
|
2586
|
+
/**
|
|
2587
|
+
* Too Many Requests
|
|
2588
|
+
*/
|
|
2589
|
+
429: Error429;
|
|
2590
|
+
/**
|
|
2591
|
+
* Internal Server Error
|
|
2592
|
+
*/
|
|
2593
|
+
500: Error500;
|
|
2594
|
+
};
|
|
2595
|
+
export type SegmentIndexError = SegmentIndexErrors[keyof SegmentIndexErrors];
|
|
2596
|
+
export type SegmentIndexResponses = {
|
|
2597
|
+
/**
|
|
2598
|
+
* Paginated segment list response
|
|
2599
|
+
*/
|
|
2600
|
+
200: {
|
|
2601
|
+
/**
|
|
2602
|
+
* Array of segment objects
|
|
2603
|
+
*/
|
|
2604
|
+
segments: Array<Segment>;
|
|
2605
|
+
pagination: CursorPagination;
|
|
2606
|
+
};
|
|
2607
|
+
};
|
|
2608
|
+
export type SegmentIndexResponse = SegmentIndexResponses[keyof SegmentIndexResponses];
|
|
2609
|
+
export type SegmentCreateData = {
|
|
2610
|
+
body: SegmentCreateRequest;
|
|
2611
|
+
path: {
|
|
2612
|
+
/**
|
|
2613
|
+
* ID of the media
|
|
2614
|
+
*/
|
|
2615
|
+
mediaId: number;
|
|
2616
|
+
/**
|
|
2617
|
+
* Episode number
|
|
2618
|
+
*/
|
|
2619
|
+
episodeNumber: number;
|
|
2620
|
+
};
|
|
2621
|
+
query?: never;
|
|
2622
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments';
|
|
2623
|
+
};
|
|
2624
|
+
export type SegmentCreateErrors = {
|
|
2625
|
+
/**
|
|
2626
|
+
* Bad Request
|
|
2627
|
+
*/
|
|
2628
|
+
400: Error400;
|
|
2629
|
+
/**
|
|
2630
|
+
* Unauthorized
|
|
2631
|
+
*/
|
|
2632
|
+
401: Error401;
|
|
2633
|
+
/**
|
|
2634
|
+
* Forbidden
|
|
2635
|
+
*/
|
|
2636
|
+
403: Error403;
|
|
2637
|
+
/**
|
|
2638
|
+
* Not Found
|
|
2639
|
+
*/
|
|
2640
|
+
404: Error404;
|
|
2641
|
+
/**
|
|
2642
|
+
* Conflict
|
|
2643
|
+
*/
|
|
2644
|
+
409: Error409;
|
|
2645
|
+
/**
|
|
2646
|
+
* Too Many Requests
|
|
2647
|
+
*/
|
|
2648
|
+
429: Error429;
|
|
2649
|
+
/**
|
|
2650
|
+
* Internal Server Error
|
|
2651
|
+
*/
|
|
2652
|
+
500: Error500;
|
|
2653
|
+
};
|
|
2654
|
+
export type SegmentCreateError = SegmentCreateErrors[keyof SegmentCreateErrors];
|
|
2655
|
+
export type SegmentCreateResponses = {
|
|
2656
|
+
/**
|
|
2657
|
+
* Single segment response with internal fields
|
|
2658
|
+
*/
|
|
2659
|
+
201: SegmentInternal;
|
|
2660
|
+
};
|
|
2661
|
+
export type SegmentCreateResponse = SegmentCreateResponses[keyof SegmentCreateResponses];
|
|
2662
|
+
export type SegmentDestroyData = {
|
|
2663
|
+
body?: never;
|
|
2664
|
+
path: {
|
|
2665
|
+
/**
|
|
2666
|
+
* ID of the media
|
|
2667
|
+
*/
|
|
2668
|
+
mediaId: number;
|
|
2669
|
+
/**
|
|
2670
|
+
* Episode number
|
|
2671
|
+
*/
|
|
2672
|
+
episodeNumber: number;
|
|
2673
|
+
/**
|
|
2674
|
+
* Segment ID
|
|
2675
|
+
*/
|
|
2676
|
+
id: number;
|
|
2677
|
+
};
|
|
2678
|
+
query?: never;
|
|
2679
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}';
|
|
2680
|
+
};
|
|
2681
|
+
export type SegmentDestroyErrors = {
|
|
2682
|
+
/**
|
|
2683
|
+
* Bad Request
|
|
2684
|
+
*/
|
|
2685
|
+
400: Error400;
|
|
2686
|
+
/**
|
|
2687
|
+
* Unauthorized
|
|
2688
|
+
*/
|
|
2689
|
+
401: Error401;
|
|
2690
|
+
/**
|
|
2691
|
+
* Forbidden
|
|
2692
|
+
*/
|
|
2693
|
+
403: Error403;
|
|
2694
|
+
/**
|
|
2695
|
+
* Not Found
|
|
2696
|
+
*/
|
|
2697
|
+
404: Error404;
|
|
2698
|
+
/**
|
|
2699
|
+
* Too Many Requests
|
|
2700
|
+
*/
|
|
2701
|
+
429: Error429;
|
|
2702
|
+
/**
|
|
2703
|
+
* Internal Server Error
|
|
2704
|
+
*/
|
|
2705
|
+
500: Error500;
|
|
2706
|
+
};
|
|
2707
|
+
export type SegmentDestroyError = SegmentDestroyErrors[keyof SegmentDestroyErrors];
|
|
2708
|
+
export type SegmentDestroyResponses = {
|
|
2709
|
+
/**
|
|
2710
|
+
* Segment successfully deleted
|
|
2711
|
+
*/
|
|
2712
|
+
204: void;
|
|
2713
|
+
};
|
|
2714
|
+
export type SegmentDestroyResponse = SegmentDestroyResponses[keyof SegmentDestroyResponses];
|
|
2715
|
+
export type SegmentShowData = {
|
|
2716
|
+
body?: never;
|
|
2717
|
+
path: {
|
|
2718
|
+
/**
|
|
2719
|
+
* ID of the media
|
|
2720
|
+
*/
|
|
2721
|
+
mediaId: number;
|
|
2722
|
+
/**
|
|
2723
|
+
* Episode number
|
|
2724
|
+
*/
|
|
2725
|
+
episodeNumber: number;
|
|
2726
|
+
/**
|
|
2727
|
+
* Segment ID
|
|
2728
|
+
*/
|
|
2729
|
+
id: number;
|
|
2730
|
+
};
|
|
2731
|
+
query?: never;
|
|
2732
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}';
|
|
2733
|
+
};
|
|
2734
|
+
export type SegmentShowErrors = {
|
|
2735
|
+
/**
|
|
2736
|
+
* Bad Request
|
|
2737
|
+
*/
|
|
2738
|
+
400: Error400;
|
|
2739
|
+
/**
|
|
2740
|
+
* Unauthorized
|
|
2741
|
+
*/
|
|
2742
|
+
401: Error401;
|
|
2743
|
+
/**
|
|
2744
|
+
* Forbidden
|
|
2745
|
+
*/
|
|
2746
|
+
403: Error403;
|
|
2747
|
+
/**
|
|
2748
|
+
* Not Found
|
|
2749
|
+
*/
|
|
2750
|
+
404: Error404;
|
|
2751
|
+
/**
|
|
2752
|
+
* Too Many Requests
|
|
2753
|
+
*/
|
|
2754
|
+
429: Error429;
|
|
2755
|
+
/**
|
|
2756
|
+
* Internal Server Error
|
|
2757
|
+
*/
|
|
2758
|
+
500: Error500;
|
|
2759
|
+
};
|
|
2760
|
+
export type SegmentShowError = SegmentShowErrors[keyof SegmentShowErrors];
|
|
2761
|
+
export type SegmentShowResponses = {
|
|
2762
|
+
/**
|
|
2763
|
+
* Single segment response
|
|
2764
|
+
*/
|
|
2765
|
+
200: Segment;
|
|
2766
|
+
};
|
|
2767
|
+
export type SegmentShowResponse = SegmentShowResponses[keyof SegmentShowResponses];
|
|
2768
|
+
export type SegmentUpdateData = {
|
|
2769
|
+
body: SegmentUpdateRequest;
|
|
2770
|
+
path: {
|
|
2771
|
+
/**
|
|
2772
|
+
* ID of the media
|
|
2773
|
+
*/
|
|
2774
|
+
mediaId: number;
|
|
2775
|
+
/**
|
|
2776
|
+
* Episode number
|
|
2777
|
+
*/
|
|
2778
|
+
episodeNumber: number;
|
|
2779
|
+
/**
|
|
2780
|
+
* Segment ID
|
|
2781
|
+
*/
|
|
2782
|
+
id: number;
|
|
2783
|
+
};
|
|
2784
|
+
query?: never;
|
|
2785
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}';
|
|
2786
|
+
};
|
|
2787
|
+
export type SegmentUpdateErrors = {
|
|
2788
|
+
/**
|
|
2789
|
+
* Bad Request
|
|
2790
|
+
*/
|
|
2791
|
+
400: Error400;
|
|
2792
|
+
/**
|
|
2793
|
+
* Unauthorized
|
|
2794
|
+
*/
|
|
2795
|
+
401: Error401;
|
|
2796
|
+
/**
|
|
2797
|
+
* Forbidden
|
|
2798
|
+
*/
|
|
2799
|
+
403: Error403;
|
|
2800
|
+
/**
|
|
2801
|
+
* Not Found
|
|
2802
|
+
*/
|
|
2803
|
+
404: Error404;
|
|
2804
|
+
/**
|
|
2805
|
+
* Too Many Requests
|
|
2806
|
+
*/
|
|
2807
|
+
429: Error429;
|
|
2808
|
+
/**
|
|
2809
|
+
* Internal Server Error
|
|
2810
|
+
*/
|
|
2811
|
+
500: Error500;
|
|
2812
|
+
};
|
|
2813
|
+
export type SegmentUpdateError = SegmentUpdateErrors[keyof SegmentUpdateErrors];
|
|
2814
|
+
export type SegmentUpdateResponses = {
|
|
2815
|
+
/**
|
|
2816
|
+
* Single segment response with internal fields
|
|
2817
|
+
*/
|
|
2818
|
+
200: SegmentInternal;
|
|
2819
|
+
};
|
|
2820
|
+
export type SegmentUpdateResponse = SegmentUpdateResponses[keyof SegmentUpdateResponses];
|
|
2821
|
+
export type SegmentShowByUuidData = {
|
|
2822
|
+
body?: never;
|
|
2823
|
+
path: {
|
|
2824
|
+
/**
|
|
2825
|
+
* Segment UUID
|
|
2826
|
+
*/
|
|
2827
|
+
uuid: string;
|
|
2828
|
+
};
|
|
2829
|
+
query?: never;
|
|
2830
|
+
url: '/v1/media/segments/{uuid}';
|
|
2831
|
+
};
|
|
2832
|
+
export type SegmentShowByUuidErrors = {
|
|
2833
|
+
/**
|
|
2834
|
+
* Bad Request
|
|
2835
|
+
*/
|
|
2836
|
+
400: Error400;
|
|
2837
|
+
/**
|
|
2838
|
+
* Unauthorized
|
|
2839
|
+
*/
|
|
2840
|
+
401: Error401;
|
|
2841
|
+
/**
|
|
2842
|
+
* Forbidden
|
|
2843
|
+
*/
|
|
2844
|
+
403: Error403;
|
|
2845
|
+
/**
|
|
2846
|
+
* Not Found
|
|
2847
|
+
*/
|
|
2848
|
+
404: Error404;
|
|
2849
|
+
/**
|
|
2850
|
+
* Too Many Requests
|
|
2851
|
+
*/
|
|
2852
|
+
429: Error429;
|
|
2853
|
+
/**
|
|
2854
|
+
* Internal Server Error
|
|
2855
|
+
*/
|
|
2856
|
+
500: Error500;
|
|
2857
|
+
};
|
|
2858
|
+
export type SegmentShowByUuidError = SegmentShowByUuidErrors[keyof SegmentShowByUuidErrors];
|
|
2859
|
+
export type SegmentShowByUuidResponses = {
|
|
2860
|
+
200: Segment;
|
|
2861
|
+
};
|
|
2862
|
+
export type SegmentShowByUuidResponse = SegmentShowByUuidResponses[keyof SegmentShowByUuidResponses];
|
|
2863
|
+
export type SegmentContextShowData = {
|
|
2864
|
+
body?: never;
|
|
2865
|
+
path: {
|
|
2866
|
+
/**
|
|
2867
|
+
* Segment UUID
|
|
2868
|
+
*/
|
|
2869
|
+
uuid: string;
|
|
2870
|
+
};
|
|
2871
|
+
query?: {
|
|
2872
|
+
/**
|
|
2873
|
+
* Number of segments to return before and after the target
|
|
2874
|
+
*/
|
|
2875
|
+
limit?: number;
|
|
2876
|
+
/**
|
|
2877
|
+
* Content ratings to include (omit for all ratings)
|
|
2878
|
+
*/
|
|
2879
|
+
contentRating?: Array<ContentRating>;
|
|
2880
|
+
/**
|
|
2881
|
+
* Resources to expand in the response includes block
|
|
2882
|
+
*/
|
|
2883
|
+
include?: Array<IncludeExpansion>;
|
|
2884
|
+
};
|
|
2885
|
+
url: '/v1/media/segments/{uuid}/context';
|
|
2886
|
+
};
|
|
2887
|
+
export type SegmentContextShowErrors = {
|
|
2888
|
+
/**
|
|
2889
|
+
* Bad Request
|
|
2890
|
+
*/
|
|
2891
|
+
400: Error400;
|
|
2892
|
+
/**
|
|
2893
|
+
* Unauthorized
|
|
2894
|
+
*/
|
|
2895
|
+
401: Error401;
|
|
2896
|
+
/**
|
|
2897
|
+
* Forbidden
|
|
2898
|
+
*/
|
|
2899
|
+
403: Error403;
|
|
2900
|
+
/**
|
|
2901
|
+
* Not Found
|
|
2902
|
+
*/
|
|
2903
|
+
404: Error404;
|
|
2904
|
+
/**
|
|
2905
|
+
* Too Many Requests
|
|
2906
|
+
*/
|
|
2907
|
+
429: Error429;
|
|
2908
|
+
/**
|
|
2909
|
+
* Internal Server Error
|
|
2910
|
+
*/
|
|
2911
|
+
500: Error500;
|
|
2912
|
+
};
|
|
2913
|
+
export type SegmentContextShowError = SegmentContextShowErrors[keyof SegmentContextShowErrors];
|
|
2914
|
+
export type SegmentContextShowResponses = {
|
|
2915
|
+
/**
|
|
2916
|
+
* OK
|
|
2917
|
+
*/
|
|
2918
|
+
200: SegmentContextResponse;
|
|
2919
|
+
};
|
|
2920
|
+
export type SegmentContextShowResponse = SegmentContextShowResponses[keyof SegmentContextShowResponses];
|
|
2921
|
+
export type SeriesIndexData = {
|
|
2922
|
+
body?: never;
|
|
2923
|
+
path?: never;
|
|
2924
|
+
query?: {
|
|
2925
|
+
/**
|
|
2926
|
+
* Number of results per page
|
|
2927
|
+
*/
|
|
2928
|
+
limit?: number;
|
|
2929
|
+
/**
|
|
2930
|
+
* Pagination cursor offset
|
|
2931
|
+
*/
|
|
2932
|
+
cursor?: number;
|
|
2933
|
+
/**
|
|
2934
|
+
* Case-insensitive search across English, Japanese, and Romaji names
|
|
2935
|
+
*/
|
|
2936
|
+
query?: string;
|
|
2937
|
+
};
|
|
2938
|
+
url: '/v1/media/series';
|
|
2939
|
+
};
|
|
2940
|
+
export type SeriesIndexErrors = {
|
|
2941
|
+
/**
|
|
2942
|
+
* Bad Request
|
|
2943
|
+
*/
|
|
2944
|
+
400: Error400;
|
|
2945
|
+
/**
|
|
2946
|
+
* Unauthorized
|
|
2947
|
+
*/
|
|
2948
|
+
401: Error401;
|
|
2949
|
+
/**
|
|
2950
|
+
* Forbidden
|
|
2951
|
+
*/
|
|
2952
|
+
403: Error403;
|
|
2953
|
+
/**
|
|
2954
|
+
* Too Many Requests
|
|
2955
|
+
*/
|
|
2956
|
+
429: Error429;
|
|
2957
|
+
/**
|
|
2958
|
+
* Internal Server Error
|
|
2959
|
+
*/
|
|
2960
|
+
500: Error500;
|
|
2961
|
+
};
|
|
2962
|
+
export type SeriesIndexError = SeriesIndexErrors[keyof SeriesIndexErrors];
|
|
2963
|
+
export type SeriesIndexResponses = {
|
|
2964
|
+
/**
|
|
2965
|
+
* OK
|
|
2966
|
+
*/
|
|
2967
|
+
200: SeriesListResponse;
|
|
2968
|
+
};
|
|
2969
|
+
export type SeriesIndexResponse = SeriesIndexResponses[keyof SeriesIndexResponses];
|
|
2970
|
+
export type SeriesCreateData = {
|
|
2971
|
+
body: {
|
|
2972
|
+
/**
|
|
2973
|
+
* Japanese name of the series
|
|
2974
|
+
*/
|
|
2975
|
+
nameJa: string;
|
|
2976
|
+
/**
|
|
2977
|
+
* Romaji name of the series
|
|
2978
|
+
*/
|
|
2979
|
+
nameRomaji: string;
|
|
2980
|
+
/**
|
|
2981
|
+
* English name of the series
|
|
2982
|
+
*/
|
|
2983
|
+
nameEn: string;
|
|
2984
|
+
};
|
|
2985
|
+
path?: never;
|
|
2986
|
+
query?: never;
|
|
2987
|
+
url: '/v1/media/series';
|
|
2988
|
+
};
|
|
2989
|
+
export type SeriesCreateErrors = {
|
|
2990
|
+
/**
|
|
2991
|
+
* Bad Request
|
|
2992
|
+
*/
|
|
2993
|
+
400: Error400;
|
|
2994
|
+
/**
|
|
2995
|
+
* Unauthorized
|
|
2996
|
+
*/
|
|
2997
|
+
401: Error401;
|
|
2998
|
+
/**
|
|
2999
|
+
* Forbidden
|
|
3000
|
+
*/
|
|
3001
|
+
403: Error403;
|
|
3002
|
+
/**
|
|
3003
|
+
* Too Many Requests
|
|
3004
|
+
*/
|
|
3005
|
+
429: Error429;
|
|
3006
|
+
/**
|
|
3007
|
+
* Internal Server Error
|
|
3008
|
+
*/
|
|
3009
|
+
500: Error500;
|
|
3010
|
+
};
|
|
3011
|
+
export type SeriesCreateError = SeriesCreateErrors[keyof SeriesCreateErrors];
|
|
3012
|
+
export type SeriesCreateResponses = {
|
|
3013
|
+
/**
|
|
3014
|
+
* Created
|
|
3015
|
+
*/
|
|
3016
|
+
201: Series;
|
|
3017
|
+
};
|
|
3018
|
+
export type SeriesCreateResponse = SeriesCreateResponses[keyof SeriesCreateResponses];
|
|
3019
|
+
export type SeriesDestroyData = {
|
|
3020
|
+
body?: never;
|
|
3021
|
+
path: {
|
|
3022
|
+
/**
|
|
3023
|
+
* Series ID
|
|
3024
|
+
*/
|
|
3025
|
+
id: number;
|
|
3026
|
+
};
|
|
3027
|
+
query?: never;
|
|
3028
|
+
url: '/v1/media/series/{id}';
|
|
3029
|
+
};
|
|
3030
|
+
export type SeriesDestroyErrors = {
|
|
3031
|
+
/**
|
|
3032
|
+
* Bad Request
|
|
3033
|
+
*/
|
|
3034
|
+
400: Error400;
|
|
3035
|
+
/**
|
|
3036
|
+
* Unauthorized
|
|
3037
|
+
*/
|
|
3038
|
+
401: Error401;
|
|
3039
|
+
/**
|
|
3040
|
+
* Forbidden
|
|
3041
|
+
*/
|
|
3042
|
+
403: Error403;
|
|
3043
|
+
/**
|
|
3044
|
+
* Not Found
|
|
3045
|
+
*/
|
|
3046
|
+
404: Error404;
|
|
3047
|
+
/**
|
|
3048
|
+
* Too Many Requests
|
|
3049
|
+
*/
|
|
3050
|
+
429: Error429;
|
|
3051
|
+
/**
|
|
3052
|
+
* Internal Server Error
|
|
3053
|
+
*/
|
|
3054
|
+
500: Error500;
|
|
3055
|
+
};
|
|
3056
|
+
export type SeriesDestroyError = SeriesDestroyErrors[keyof SeriesDestroyErrors];
|
|
3057
|
+
export type SeriesDestroyResponses = {
|
|
3058
|
+
/**
|
|
3059
|
+
* No Content
|
|
3060
|
+
*/
|
|
3061
|
+
204: void;
|
|
3062
|
+
};
|
|
3063
|
+
export type SeriesDestroyResponse = SeriesDestroyResponses[keyof SeriesDestroyResponses];
|
|
3064
|
+
export type SeriesShowData = {
|
|
3065
|
+
body?: never;
|
|
3066
|
+
path: {
|
|
3067
|
+
/**
|
|
3068
|
+
* Series ID
|
|
3069
|
+
*/
|
|
3070
|
+
id: number;
|
|
3071
|
+
};
|
|
3072
|
+
query?: {
|
|
3073
|
+
/**
|
|
3074
|
+
* Resources to expand in the series response (`media.characters` implies `media`)
|
|
3075
|
+
*/
|
|
3076
|
+
include?: Array<MediaIncludeExpansion>;
|
|
3077
|
+
};
|
|
3078
|
+
url: '/v1/media/series/{id}';
|
|
3079
|
+
};
|
|
3080
|
+
export type SeriesShowErrors = {
|
|
3081
|
+
/**
|
|
3082
|
+
* Bad Request
|
|
3083
|
+
*/
|
|
3084
|
+
400: Error400;
|
|
3085
|
+
/**
|
|
3086
|
+
* Unauthorized
|
|
3087
|
+
*/
|
|
3088
|
+
401: Error401;
|
|
3089
|
+
/**
|
|
3090
|
+
* Forbidden
|
|
3091
|
+
*/
|
|
3092
|
+
403: Error403;
|
|
3093
|
+
/**
|
|
3094
|
+
* Not Found
|
|
3095
|
+
*/
|
|
3096
|
+
404: Error404;
|
|
3097
|
+
/**
|
|
3098
|
+
* Too Many Requests
|
|
3099
|
+
*/
|
|
3100
|
+
429: Error429;
|
|
3101
|
+
/**
|
|
3102
|
+
* Internal Server Error
|
|
3103
|
+
*/
|
|
3104
|
+
500: Error500;
|
|
3105
|
+
};
|
|
3106
|
+
export type SeriesShowError = SeriesShowErrors[keyof SeriesShowErrors];
|
|
3107
|
+
export type SeriesShowResponses = {
|
|
3108
|
+
/**
|
|
3109
|
+
* OK
|
|
3110
|
+
*/
|
|
3111
|
+
200: SeriesWithMedia;
|
|
3112
|
+
};
|
|
3113
|
+
export type SeriesShowResponse = SeriesShowResponses[keyof SeriesShowResponses];
|
|
3114
|
+
export type SeriesUpdateData = {
|
|
3115
|
+
body: {
|
|
3116
|
+
/**
|
|
3117
|
+
* Updated Japanese name
|
|
3118
|
+
*/
|
|
3119
|
+
nameJa?: string;
|
|
3120
|
+
/**
|
|
3121
|
+
* Updated Romaji name
|
|
3122
|
+
*/
|
|
3123
|
+
nameRomaji?: string;
|
|
3124
|
+
/**
|
|
3125
|
+
* Updated English name
|
|
3126
|
+
*/
|
|
3127
|
+
nameEn?: string;
|
|
3128
|
+
};
|
|
3129
|
+
path: {
|
|
3130
|
+
/**
|
|
3131
|
+
* Series ID
|
|
3132
|
+
*/
|
|
3133
|
+
id: number;
|
|
3134
|
+
};
|
|
3135
|
+
query?: never;
|
|
3136
|
+
url: '/v1/media/series/{id}';
|
|
3137
|
+
};
|
|
3138
|
+
export type SeriesUpdateErrors = {
|
|
3139
|
+
/**
|
|
3140
|
+
* Bad Request
|
|
3141
|
+
*/
|
|
3142
|
+
400: Error400;
|
|
3143
|
+
/**
|
|
3144
|
+
* Unauthorized
|
|
3145
|
+
*/
|
|
3146
|
+
401: Error401;
|
|
3147
|
+
/**
|
|
3148
|
+
* Forbidden
|
|
3149
|
+
*/
|
|
3150
|
+
403: Error403;
|
|
3151
|
+
/**
|
|
3152
|
+
* Not Found
|
|
3153
|
+
*/
|
|
3154
|
+
404: Error404;
|
|
3155
|
+
/**
|
|
3156
|
+
* Too Many Requests
|
|
3157
|
+
*/
|
|
3158
|
+
429: Error429;
|
|
3159
|
+
/**
|
|
3160
|
+
* Internal Server Error
|
|
3161
|
+
*/
|
|
3162
|
+
500: Error500;
|
|
3163
|
+
};
|
|
3164
|
+
export type SeriesUpdateError = SeriesUpdateErrors[keyof SeriesUpdateErrors];
|
|
3165
|
+
export type SeriesUpdateResponses = {
|
|
3166
|
+
/**
|
|
3167
|
+
* OK
|
|
3168
|
+
*/
|
|
3169
|
+
200: Series;
|
|
3170
|
+
};
|
|
3171
|
+
export type SeriesUpdateResponse = SeriesUpdateResponses[keyof SeriesUpdateResponses];
|
|
3172
|
+
export type SeriesAddMediaData = {
|
|
3173
|
+
body: {
|
|
3174
|
+
/**
|
|
3175
|
+
* Media ID to add
|
|
3176
|
+
*/
|
|
3177
|
+
mediaId: number;
|
|
3178
|
+
/**
|
|
3179
|
+
* Position in the series (1-indexed)
|
|
3180
|
+
*/
|
|
3181
|
+
position: number;
|
|
3182
|
+
};
|
|
3183
|
+
path: {
|
|
3184
|
+
/**
|
|
3185
|
+
* Series ID
|
|
3186
|
+
*/
|
|
3187
|
+
id: number;
|
|
3188
|
+
};
|
|
3189
|
+
query?: never;
|
|
3190
|
+
url: '/v1/media/series/{id}/media';
|
|
3191
|
+
};
|
|
3192
|
+
export type SeriesAddMediaErrors = {
|
|
3193
|
+
/**
|
|
3194
|
+
* Bad Request
|
|
3195
|
+
*/
|
|
3196
|
+
400: Error400;
|
|
3197
|
+
/**
|
|
3198
|
+
* Unauthorized
|
|
3199
|
+
*/
|
|
3200
|
+
401: Error401;
|
|
3201
|
+
/**
|
|
3202
|
+
* Forbidden
|
|
3203
|
+
*/
|
|
3204
|
+
403: Error403;
|
|
3205
|
+
/**
|
|
3206
|
+
* Not Found
|
|
3207
|
+
*/
|
|
3208
|
+
404: Error404;
|
|
3209
|
+
/**
|
|
3210
|
+
* Too Many Requests
|
|
3211
|
+
*/
|
|
3212
|
+
429: Error429;
|
|
3213
|
+
/**
|
|
3214
|
+
* Internal Server Error
|
|
3215
|
+
*/
|
|
3216
|
+
500: Error500;
|
|
3217
|
+
};
|
|
3218
|
+
export type SeriesAddMediaError = SeriesAddMediaErrors[keyof SeriesAddMediaErrors];
|
|
3219
|
+
export type SeriesAddMediaResponses = {
|
|
3220
|
+
/**
|
|
3221
|
+
* No Content
|
|
3222
|
+
*/
|
|
3223
|
+
204: void;
|
|
3224
|
+
};
|
|
3225
|
+
export type SeriesAddMediaResponse = SeriesAddMediaResponses[keyof SeriesAddMediaResponses];
|
|
3226
|
+
export type SeriesRemoveMediaData = {
|
|
3227
|
+
body?: never;
|
|
3228
|
+
path: {
|
|
3229
|
+
/**
|
|
3230
|
+
* Series ID
|
|
3231
|
+
*/
|
|
3232
|
+
id: number;
|
|
3233
|
+
/**
|
|
3234
|
+
* Media ID
|
|
3235
|
+
*/
|
|
3236
|
+
mediaId: number;
|
|
3237
|
+
};
|
|
3238
|
+
query?: never;
|
|
3239
|
+
url: '/v1/media/series/{id}/media/{mediaId}';
|
|
3240
|
+
};
|
|
3241
|
+
export type SeriesRemoveMediaErrors = {
|
|
3242
|
+
/**
|
|
3243
|
+
* Bad Request
|
|
3244
|
+
*/
|
|
3245
|
+
400: Error400;
|
|
3246
|
+
/**
|
|
3247
|
+
* Unauthorized
|
|
3248
|
+
*/
|
|
3249
|
+
401: Error401;
|
|
3250
|
+
/**
|
|
3251
|
+
* Forbidden
|
|
3252
|
+
*/
|
|
3253
|
+
403: Error403;
|
|
3254
|
+
/**
|
|
3255
|
+
* Not Found
|
|
3256
|
+
*/
|
|
3257
|
+
404: Error404;
|
|
3258
|
+
/**
|
|
3259
|
+
* Too Many Requests
|
|
3260
|
+
*/
|
|
3261
|
+
429: Error429;
|
|
3262
|
+
/**
|
|
3263
|
+
* Internal Server Error
|
|
3264
|
+
*/
|
|
3265
|
+
500: Error500;
|
|
3266
|
+
};
|
|
3267
|
+
export type SeriesRemoveMediaError = SeriesRemoveMediaErrors[keyof SeriesRemoveMediaErrors];
|
|
3268
|
+
export type SeriesRemoveMediaResponses = {
|
|
3269
|
+
/**
|
|
3270
|
+
* No Content
|
|
3271
|
+
*/
|
|
3272
|
+
204: void;
|
|
3273
|
+
};
|
|
3274
|
+
export type SeriesRemoveMediaResponse = SeriesRemoveMediaResponses[keyof SeriesRemoveMediaResponses];
|
|
3275
|
+
export type SeriesUpdateMediaData = {
|
|
3276
|
+
body: {
|
|
3277
|
+
/**
|
|
3278
|
+
* New position in the series (1-indexed)
|
|
3279
|
+
*/
|
|
3280
|
+
position: number;
|
|
3281
|
+
};
|
|
3282
|
+
path: {
|
|
3283
|
+
/**
|
|
3284
|
+
* Series ID
|
|
3285
|
+
*/
|
|
3286
|
+
id: number;
|
|
3287
|
+
/**
|
|
3288
|
+
* Media ID
|
|
3289
|
+
*/
|
|
3290
|
+
mediaId: number;
|
|
3291
|
+
};
|
|
3292
|
+
query?: never;
|
|
3293
|
+
url: '/v1/media/series/{id}/media/{mediaId}';
|
|
3294
|
+
};
|
|
3295
|
+
export type SeriesUpdateMediaErrors = {
|
|
3296
|
+
/**
|
|
3297
|
+
* Bad Request
|
|
3298
|
+
*/
|
|
3299
|
+
400: Error400;
|
|
3300
|
+
/**
|
|
3301
|
+
* Unauthorized
|
|
3302
|
+
*/
|
|
3303
|
+
401: Error401;
|
|
3304
|
+
/**
|
|
3305
|
+
* Forbidden
|
|
3306
|
+
*/
|
|
3307
|
+
403: Error403;
|
|
3308
|
+
/**
|
|
3309
|
+
* Not Found
|
|
3310
|
+
*/
|
|
3311
|
+
404: Error404;
|
|
3312
|
+
/**
|
|
3313
|
+
* Too Many Requests
|
|
3314
|
+
*/
|
|
3315
|
+
429: Error429;
|
|
3316
|
+
/**
|
|
3317
|
+
* Internal Server Error
|
|
3318
|
+
*/
|
|
3319
|
+
500: Error500;
|
|
3320
|
+
};
|
|
3321
|
+
export type SeriesUpdateMediaError = SeriesUpdateMediaErrors[keyof SeriesUpdateMediaErrors];
|
|
3322
|
+
export type SeriesUpdateMediaResponses = {
|
|
3323
|
+
/**
|
|
3324
|
+
* No Content
|
|
3325
|
+
*/
|
|
3326
|
+
204: void;
|
|
3327
|
+
};
|
|
3328
|
+
export type SeriesUpdateMediaResponse = SeriesUpdateMediaResponses[keyof SeriesUpdateMediaResponses];
|
|
3329
|
+
export type CharacterShowData = {
|
|
3330
|
+
body?: never;
|
|
3331
|
+
path: {
|
|
3332
|
+
/**
|
|
3333
|
+
* AniList character ID
|
|
3334
|
+
*/
|
|
3335
|
+
id: number;
|
|
3336
|
+
};
|
|
3337
|
+
query?: never;
|
|
3338
|
+
url: '/v1/media/characters/{id}';
|
|
3339
|
+
};
|
|
3340
|
+
export type CharacterShowErrors = {
|
|
3341
|
+
/**
|
|
3342
|
+
* Bad Request
|
|
3343
|
+
*/
|
|
3344
|
+
400: Error400;
|
|
3345
|
+
/**
|
|
3346
|
+
* Unauthorized
|
|
3347
|
+
*/
|
|
3348
|
+
401: Error401;
|
|
3349
|
+
/**
|
|
3350
|
+
* Forbidden
|
|
3351
|
+
*/
|
|
3352
|
+
403: Error403;
|
|
3353
|
+
/**
|
|
3354
|
+
* Not Found
|
|
3355
|
+
*/
|
|
3356
|
+
404: Error404;
|
|
3357
|
+
/**
|
|
3358
|
+
* Too Many Requests
|
|
3359
|
+
*/
|
|
3360
|
+
429: Error429;
|
|
3361
|
+
/**
|
|
3362
|
+
* Internal Server Error
|
|
3363
|
+
*/
|
|
3364
|
+
500: Error500;
|
|
3365
|
+
};
|
|
3366
|
+
export type CharacterShowError = CharacterShowErrors[keyof CharacterShowErrors];
|
|
3367
|
+
export type CharacterShowResponses = {
|
|
3368
|
+
/**
|
|
3369
|
+
* OK
|
|
3370
|
+
*/
|
|
3371
|
+
200: CharacterWithMedia;
|
|
3372
|
+
};
|
|
3373
|
+
export type CharacterShowResponse = CharacterShowResponses[keyof CharacterShowResponses];
|
|
3374
|
+
export type SeiyuuShowData = {
|
|
3375
|
+
body?: never;
|
|
3376
|
+
path: {
|
|
3377
|
+
/**
|
|
3378
|
+
* AniList staff ID
|
|
3379
|
+
*/
|
|
3380
|
+
id: number;
|
|
3381
|
+
};
|
|
3382
|
+
query?: {
|
|
3383
|
+
/**
|
|
3384
|
+
* Resources to expand in the response (`character` is included by default)
|
|
3385
|
+
*/
|
|
3386
|
+
include?: Array<'character'>;
|
|
3387
|
+
};
|
|
3388
|
+
url: '/v1/media/seiyuu/{id}';
|
|
3389
|
+
};
|
|
3390
|
+
export type SeiyuuShowErrors = {
|
|
3391
|
+
/**
|
|
3392
|
+
* Bad Request
|
|
3393
|
+
*/
|
|
3394
|
+
400: Error400;
|
|
3395
|
+
/**
|
|
3396
|
+
* Unauthorized
|
|
3397
|
+
*/
|
|
3398
|
+
401: Error401;
|
|
3399
|
+
/**
|
|
3400
|
+
* Forbidden
|
|
3401
|
+
*/
|
|
3402
|
+
403: Error403;
|
|
3403
|
+
/**
|
|
3404
|
+
* Not Found
|
|
3405
|
+
*/
|
|
3406
|
+
404: Error404;
|
|
3407
|
+
/**
|
|
3408
|
+
* Too Many Requests
|
|
3409
|
+
*/
|
|
3410
|
+
429: Error429;
|
|
3411
|
+
/**
|
|
3412
|
+
* Internal Server Error
|
|
3413
|
+
*/
|
|
3414
|
+
500: Error500;
|
|
3415
|
+
};
|
|
3416
|
+
export type SeiyuuShowError = SeiyuuShowErrors[keyof SeiyuuShowErrors];
|
|
3417
|
+
export type SeiyuuShowResponses = {
|
|
3418
|
+
/**
|
|
3419
|
+
* OK
|
|
3420
|
+
*/
|
|
3421
|
+
200: SeiyuuWithRoles;
|
|
3422
|
+
};
|
|
3423
|
+
export type SeiyuuShowResponse = SeiyuuShowResponses[keyof SeiyuuShowResponses];
|
|
3424
|
+
export type UserQuotaShowData = {
|
|
3425
|
+
body?: never;
|
|
3426
|
+
path?: never;
|
|
3427
|
+
query?: never;
|
|
3428
|
+
url: '/v1/user/quota';
|
|
3429
|
+
};
|
|
3430
|
+
export type UserQuotaShowErrors = {
|
|
3431
|
+
/**
|
|
3432
|
+
* Unauthorized
|
|
3433
|
+
*/
|
|
3434
|
+
401: Error401;
|
|
3435
|
+
/**
|
|
3436
|
+
* Too Many Requests
|
|
3437
|
+
*/
|
|
3438
|
+
429: Error429;
|
|
3439
|
+
/**
|
|
3440
|
+
* Internal Server Error
|
|
3441
|
+
*/
|
|
3442
|
+
500: Error500;
|
|
3443
|
+
};
|
|
3444
|
+
export type UserQuotaShowError = UserQuotaShowErrors[keyof UserQuotaShowErrors];
|
|
3445
|
+
export type UserQuotaShowResponses = {
|
|
3446
|
+
/**
|
|
3447
|
+
* OK
|
|
3448
|
+
*/
|
|
3449
|
+
200: UserQuotaResponse;
|
|
3450
|
+
};
|
|
3451
|
+
export type UserQuotaShowResponse = UserQuotaShowResponses[keyof UserQuotaShowResponses];
|
|
3452
|
+
export type UserReportIndexData = {
|
|
3453
|
+
body?: never;
|
|
3454
|
+
path?: never;
|
|
3455
|
+
query?: {
|
|
3456
|
+
/**
|
|
3457
|
+
* Cursor for pagination (report ID to start after)
|
|
3458
|
+
*/
|
|
3459
|
+
cursor?: number;
|
|
3460
|
+
/**
|
|
3461
|
+
* Number of results per page
|
|
3462
|
+
*/
|
|
3463
|
+
limit?: number;
|
|
3464
|
+
/**
|
|
3465
|
+
* Filter by report status
|
|
3466
|
+
*/
|
|
3467
|
+
status?: 'PENDING' | 'CONCERN' | 'ACCEPTED' | 'REJECTED' | 'RESOLVED' | 'IGNORED';
|
|
3468
|
+
};
|
|
3469
|
+
url: '/v1/user/reports';
|
|
3470
|
+
};
|
|
3471
|
+
export type UserReportIndexErrors = {
|
|
3472
|
+
/**
|
|
3473
|
+
* Unauthorized
|
|
3474
|
+
*/
|
|
3475
|
+
401: Error401;
|
|
3476
|
+
/**
|
|
3477
|
+
* Internal Server Error
|
|
3478
|
+
*/
|
|
3479
|
+
500: Error500;
|
|
3480
|
+
};
|
|
3481
|
+
export type UserReportIndexError = UserReportIndexErrors[keyof UserReportIndexErrors];
|
|
3482
|
+
export type UserReportIndexResponses = {
|
|
3483
|
+
/**
|
|
3484
|
+
* OK
|
|
3485
|
+
*/
|
|
3486
|
+
200: ReportListResponse;
|
|
3487
|
+
};
|
|
3488
|
+
export type UserReportIndexResponse = UserReportIndexResponses[keyof UserReportIndexResponses];
|
|
3489
|
+
export type UserReportCreateData = {
|
|
3490
|
+
body: CreateReportRequest;
|
|
3491
|
+
path?: never;
|
|
3492
|
+
query?: never;
|
|
3493
|
+
url: '/v1/user/reports';
|
|
3494
|
+
};
|
|
3495
|
+
export type UserReportCreateErrors = {
|
|
3496
|
+
/**
|
|
3497
|
+
* Bad Request
|
|
3498
|
+
*/
|
|
3499
|
+
400: Error400;
|
|
3500
|
+
/**
|
|
3501
|
+
* Unauthorized
|
|
3502
|
+
*/
|
|
3503
|
+
401: Error401;
|
|
3504
|
+
/**
|
|
3505
|
+
* Not Found
|
|
3506
|
+
*/
|
|
3507
|
+
404: Error404;
|
|
3508
|
+
/**
|
|
3509
|
+
* Internal Server Error
|
|
3510
|
+
*/
|
|
3511
|
+
500: Error500;
|
|
3512
|
+
};
|
|
3513
|
+
export type UserReportCreateError = UserReportCreateErrors[keyof UserReportCreateErrors];
|
|
3514
|
+
export type UserReportCreateResponses = {
|
|
3515
|
+
/**
|
|
3516
|
+
* Report created successfully
|
|
3517
|
+
*/
|
|
3518
|
+
201: Report;
|
|
3519
|
+
};
|
|
3520
|
+
export type UserReportCreateResponse = UserReportCreateResponses[keyof UserReportCreateResponses];
|
|
3521
|
+
export type UserPreferencesShowData = {
|
|
3522
|
+
body?: never;
|
|
3523
|
+
path?: never;
|
|
3524
|
+
query?: never;
|
|
3525
|
+
url: '/v1/user/preferences';
|
|
3526
|
+
};
|
|
3527
|
+
export type UserPreferencesShowErrors = {
|
|
3528
|
+
/**
|
|
3529
|
+
* Unauthorized
|
|
3530
|
+
*/
|
|
3531
|
+
401: Error401;
|
|
3532
|
+
/**
|
|
3533
|
+
* Internal Server Error
|
|
3534
|
+
*/
|
|
3535
|
+
500: Error500;
|
|
3536
|
+
};
|
|
3537
|
+
export type UserPreferencesShowError = UserPreferencesShowErrors[keyof UserPreferencesShowErrors];
|
|
3538
|
+
export type UserPreferencesShowResponses = {
|
|
3539
|
+
/**
|
|
3540
|
+
* OK
|
|
3541
|
+
*/
|
|
3542
|
+
200: UserPreferences;
|
|
3543
|
+
};
|
|
3544
|
+
export type UserPreferencesShowResponse = UserPreferencesShowResponses[keyof UserPreferencesShowResponses];
|
|
3545
|
+
export type UserPreferencesUpdateData = {
|
|
3546
|
+
body: UserPreferences;
|
|
3547
|
+
path?: never;
|
|
3548
|
+
query?: never;
|
|
3549
|
+
url: '/v1/user/preferences';
|
|
3550
|
+
};
|
|
3551
|
+
export type UserPreferencesUpdateErrors = {
|
|
3552
|
+
/**
|
|
3553
|
+
* Unauthorized
|
|
3554
|
+
*/
|
|
3555
|
+
401: Error401;
|
|
3556
|
+
/**
|
|
3557
|
+
* Internal Server Error
|
|
3558
|
+
*/
|
|
3559
|
+
500: Error500;
|
|
3560
|
+
};
|
|
3561
|
+
export type UserPreferencesUpdateError = UserPreferencesUpdateErrors[keyof UserPreferencesUpdateErrors];
|
|
3562
|
+
export type UserPreferencesUpdateResponses = {
|
|
3563
|
+
/**
|
|
3564
|
+
* OK
|
|
3565
|
+
*/
|
|
3566
|
+
200: UserPreferences;
|
|
3567
|
+
};
|
|
3568
|
+
export type UserPreferencesUpdateResponse = UserPreferencesUpdateResponses[keyof UserPreferencesUpdateResponses];
|
|
3569
|
+
export type UserActivityDestroyData = {
|
|
3570
|
+
body?: never;
|
|
3571
|
+
path?: never;
|
|
3572
|
+
query?: {
|
|
3573
|
+
/**
|
|
3574
|
+
* Only clear activities of this type
|
|
3575
|
+
*/
|
|
3576
|
+
activityType?: ActivityType;
|
|
3577
|
+
};
|
|
3578
|
+
url: '/v1/user/activity';
|
|
3579
|
+
};
|
|
3580
|
+
export type UserActivityDestroyErrors = {
|
|
3581
|
+
/**
|
|
3582
|
+
* Unauthorized
|
|
3583
|
+
*/
|
|
3584
|
+
401: Error401;
|
|
3585
|
+
/**
|
|
3586
|
+
* Internal Server Error
|
|
3587
|
+
*/
|
|
3588
|
+
500: Error500;
|
|
3589
|
+
};
|
|
3590
|
+
export type UserActivityDestroyError = UserActivityDestroyErrors[keyof UserActivityDestroyErrors];
|
|
3591
|
+
export type UserActivityDestroyResponses = {
|
|
3592
|
+
/**
|
|
3593
|
+
* OK
|
|
3594
|
+
*/
|
|
3595
|
+
200: {
|
|
3596
|
+
message: string;
|
|
3597
|
+
deletedCount: number;
|
|
3598
|
+
};
|
|
3599
|
+
};
|
|
3600
|
+
export type UserActivityDestroyResponse = UserActivityDestroyResponses[keyof UserActivityDestroyResponses];
|
|
3601
|
+
export type UserActivityIndexData = {
|
|
3602
|
+
body?: never;
|
|
3603
|
+
path?: never;
|
|
3604
|
+
query?: {
|
|
3605
|
+
/**
|
|
3606
|
+
* Cursor for pagination (activity ID to start after)
|
|
3607
|
+
*/
|
|
3608
|
+
cursor?: number;
|
|
3609
|
+
/**
|
|
3610
|
+
* Number of results per page
|
|
3611
|
+
*/
|
|
3612
|
+
limit?: number;
|
|
3613
|
+
/**
|
|
3614
|
+
* Filter by activity type
|
|
3615
|
+
*/
|
|
3616
|
+
activityType?: ActivityType;
|
|
3617
|
+
/**
|
|
3618
|
+
* Filter activities to a specific date (YYYY-MM-DD)
|
|
3619
|
+
*/
|
|
3620
|
+
date?: string;
|
|
3621
|
+
};
|
|
3622
|
+
url: '/v1/user/activity';
|
|
3623
|
+
};
|
|
3624
|
+
export type UserActivityIndexErrors = {
|
|
3625
|
+
/**
|
|
3626
|
+
* Unauthorized
|
|
3627
|
+
*/
|
|
3628
|
+
401: Error401;
|
|
3629
|
+
/**
|
|
3630
|
+
* Internal Server Error
|
|
3631
|
+
*/
|
|
3632
|
+
500: Error500;
|
|
3633
|
+
};
|
|
3634
|
+
export type UserActivityIndexError = UserActivityIndexErrors[keyof UserActivityIndexErrors];
|
|
3635
|
+
export type UserActivityIndexResponses = {
|
|
3636
|
+
/**
|
|
3637
|
+
* OK
|
|
3638
|
+
*/
|
|
3639
|
+
200: {
|
|
3640
|
+
activities: Array<UserActivity>;
|
|
3641
|
+
pagination: CursorPagination;
|
|
3642
|
+
};
|
|
3643
|
+
};
|
|
3644
|
+
export type UserActivityIndexResponse = UserActivityIndexResponses[keyof UserActivityIndexResponses];
|
|
3645
|
+
export type UserActivityHeatmapShowData = {
|
|
3646
|
+
body?: never;
|
|
3647
|
+
path?: never;
|
|
3648
|
+
query?: {
|
|
3649
|
+
/**
|
|
3650
|
+
* Number of days to include in the heatmap
|
|
3651
|
+
*/
|
|
3652
|
+
days?: number;
|
|
3653
|
+
/**
|
|
3654
|
+
* Filter by activity type
|
|
3655
|
+
*/
|
|
3656
|
+
activityType?: ActivityType;
|
|
3657
|
+
};
|
|
3658
|
+
url: '/v1/user/activity/heatmap';
|
|
3659
|
+
};
|
|
3660
|
+
export type UserActivityHeatmapShowErrors = {
|
|
3661
|
+
/**
|
|
3662
|
+
* Unauthorized
|
|
3663
|
+
*/
|
|
3664
|
+
401: Error401;
|
|
3665
|
+
/**
|
|
3666
|
+
* Internal Server Error
|
|
3667
|
+
*/
|
|
3668
|
+
500: Error500;
|
|
3669
|
+
};
|
|
3670
|
+
export type UserActivityHeatmapShowError = UserActivityHeatmapShowErrors[keyof UserActivityHeatmapShowErrors];
|
|
3671
|
+
export type UserActivityHeatmapShowResponses = {
|
|
3672
|
+
/**
|
|
3673
|
+
* OK
|
|
3674
|
+
*/
|
|
3675
|
+
200: {
|
|
3676
|
+
/**
|
|
3677
|
+
* Map of YYYY-MM-DD date strings to activity counts
|
|
3678
|
+
*/
|
|
3679
|
+
counts: {
|
|
3680
|
+
[key: string]: number;
|
|
3681
|
+
};
|
|
3682
|
+
};
|
|
3683
|
+
};
|
|
3684
|
+
export type UserActivityHeatmapShowResponse = UserActivityHeatmapShowResponses[keyof UserActivityHeatmapShowResponses];
|
|
3685
|
+
export type UserActivityStatsShowData = {
|
|
3686
|
+
body?: never;
|
|
3687
|
+
path?: never;
|
|
3688
|
+
query?: {
|
|
3689
|
+
/**
|
|
3690
|
+
* Only count activities from this date onward (YYYY-MM-DD)
|
|
3691
|
+
*/
|
|
3692
|
+
since?: string;
|
|
3693
|
+
};
|
|
3694
|
+
url: '/v1/user/activity/stats';
|
|
3695
|
+
};
|
|
3696
|
+
export type UserActivityStatsShowErrors = {
|
|
3697
|
+
/**
|
|
3698
|
+
* Unauthorized
|
|
3699
|
+
*/
|
|
3700
|
+
401: Error401;
|
|
3701
|
+
/**
|
|
3702
|
+
* Internal Server Error
|
|
3703
|
+
*/
|
|
3704
|
+
500: Error500;
|
|
3705
|
+
};
|
|
3706
|
+
export type UserActivityStatsShowError = UserActivityStatsShowErrors[keyof UserActivityStatsShowErrors];
|
|
3707
|
+
export type UserActivityStatsShowResponses = {
|
|
3708
|
+
/**
|
|
3709
|
+
* OK
|
|
3710
|
+
*/
|
|
3711
|
+
200: {
|
|
3712
|
+
totalSearches: number;
|
|
3713
|
+
totalExports: number;
|
|
3714
|
+
totalPlays: number;
|
|
3715
|
+
totalListAdds: number;
|
|
3716
|
+
/**
|
|
3717
|
+
* Consecutive days with at least one activity
|
|
3718
|
+
*/
|
|
3719
|
+
streakDays: number;
|
|
3720
|
+
topMedia: Array<{
|
|
3721
|
+
mediaId: number;
|
|
3722
|
+
count: number;
|
|
3723
|
+
}>;
|
|
3724
|
+
};
|
|
3725
|
+
};
|
|
3726
|
+
export type UserActivityStatsShowResponse = UserActivityStatsShowResponses[keyof UserActivityStatsShowResponses];
|
|
3727
|
+
export type UserExportShowData = {
|
|
3728
|
+
body?: never;
|
|
3729
|
+
path?: never;
|
|
3730
|
+
query?: never;
|
|
3731
|
+
url: '/v1/user/export';
|
|
3732
|
+
};
|
|
3733
|
+
export type UserExportShowErrors = {
|
|
3734
|
+
/**
|
|
3735
|
+
* Unauthorized
|
|
3736
|
+
*/
|
|
3737
|
+
401: Error401;
|
|
3738
|
+
/**
|
|
3739
|
+
* Internal Server Error
|
|
3740
|
+
*/
|
|
3741
|
+
500: Error500;
|
|
3742
|
+
};
|
|
3743
|
+
export type UserExportShowError = UserExportShowErrors[keyof UserExportShowErrors];
|
|
3744
|
+
export type UserExportShowResponses = {
|
|
3745
|
+
/**
|
|
3746
|
+
* OK
|
|
3747
|
+
*/
|
|
3748
|
+
200: UserExportResponse;
|
|
3749
|
+
};
|
|
3750
|
+
export type UserExportShowResponse = UserExportShowResponses[keyof UserExportShowResponses];
|
|
3751
|
+
export type UserLabsIndexData = {
|
|
3752
|
+
body?: never;
|
|
3753
|
+
path?: never;
|
|
3754
|
+
query?: never;
|
|
3755
|
+
url: '/v1/user/labs';
|
|
3756
|
+
};
|
|
3757
|
+
export type UserLabsIndexErrors = {
|
|
3758
|
+
/**
|
|
3759
|
+
* Unauthorized
|
|
3760
|
+
*/
|
|
3761
|
+
401: Error401;
|
|
3762
|
+
/**
|
|
3763
|
+
* Internal Server Error
|
|
3764
|
+
*/
|
|
3765
|
+
500: Error500;
|
|
3766
|
+
};
|
|
3767
|
+
export type UserLabsIndexError = UserLabsIndexErrors[keyof UserLabsIndexErrors];
|
|
3768
|
+
export type UserLabsIndexResponses = {
|
|
3769
|
+
/**
|
|
3770
|
+
* OK
|
|
3771
|
+
*/
|
|
3772
|
+
200: Array<UserLabFeature>;
|
|
3773
|
+
};
|
|
3774
|
+
export type UserLabsIndexResponse = UserLabsIndexResponses[keyof UserLabsIndexResponses];
|
|
3775
|
+
export type CollectionIndexData = {
|
|
3776
|
+
body?: never;
|
|
3777
|
+
path?: never;
|
|
3778
|
+
query?: {
|
|
3779
|
+
/**
|
|
3780
|
+
* Filter by visibility
|
|
3781
|
+
*/
|
|
3782
|
+
visibility?: 'public' | 'private';
|
|
3783
|
+
/**
|
|
3784
|
+
* Cursor offset for pagination
|
|
3785
|
+
*/
|
|
3786
|
+
cursor?: number;
|
|
3787
|
+
/**
|
|
3788
|
+
* Page number (1-indexed)
|
|
3789
|
+
*
|
|
3790
|
+
* @deprecated
|
|
3791
|
+
*/
|
|
3792
|
+
page?: number;
|
|
3793
|
+
/**
|
|
3794
|
+
* Items per page
|
|
3795
|
+
*/
|
|
3796
|
+
limit?: number;
|
|
3797
|
+
};
|
|
3798
|
+
url: '/v1/collections';
|
|
3799
|
+
};
|
|
3800
|
+
export type CollectionIndexErrors = {
|
|
3801
|
+
/**
|
|
3802
|
+
* Bad Request
|
|
3803
|
+
*/
|
|
3804
|
+
400: Error400;
|
|
3805
|
+
/**
|
|
3806
|
+
* Unauthorized
|
|
3807
|
+
*/
|
|
3808
|
+
401: Error401;
|
|
3809
|
+
/**
|
|
3810
|
+
* Forbidden
|
|
3811
|
+
*/
|
|
3812
|
+
403: Error403;
|
|
3813
|
+
/**
|
|
3814
|
+
* Too Many Requests
|
|
3815
|
+
*/
|
|
3816
|
+
429: Error429;
|
|
3817
|
+
/**
|
|
3818
|
+
* Internal Server Error
|
|
3819
|
+
*/
|
|
3820
|
+
500: Error500;
|
|
3821
|
+
};
|
|
3822
|
+
export type CollectionIndexError = CollectionIndexErrors[keyof CollectionIndexErrors];
|
|
3823
|
+
export type CollectionIndexResponses = {
|
|
3824
|
+
/**
|
|
3825
|
+
* OK
|
|
3826
|
+
*/
|
|
3827
|
+
200: CollectionListResponse;
|
|
3828
|
+
};
|
|
3829
|
+
export type CollectionIndexResponse = CollectionIndexResponses[keyof CollectionIndexResponses];
|
|
3830
|
+
export type CollectionCreateData = {
|
|
3831
|
+
body: CollectionRequests;
|
|
3832
|
+
path?: never;
|
|
3833
|
+
query?: never;
|
|
3834
|
+
url: '/v1/collections';
|
|
3835
|
+
};
|
|
3836
|
+
export type CollectionCreateErrors = {
|
|
3837
|
+
/**
|
|
3838
|
+
* Bad Request
|
|
3839
|
+
*/
|
|
3840
|
+
400: Error400;
|
|
3841
|
+
/**
|
|
3842
|
+
* Unauthorized
|
|
3843
|
+
*/
|
|
3844
|
+
401: Error401;
|
|
3845
|
+
/**
|
|
3846
|
+
* Forbidden
|
|
3847
|
+
*/
|
|
3848
|
+
403: Error403;
|
|
3849
|
+
/**
|
|
3850
|
+
* Too Many Requests
|
|
3851
|
+
*/
|
|
3852
|
+
429: Error429;
|
|
3853
|
+
/**
|
|
3854
|
+
* Internal Server Error
|
|
3855
|
+
*/
|
|
3856
|
+
500: Error500;
|
|
3857
|
+
};
|
|
3858
|
+
export type CollectionCreateError = CollectionCreateErrors[keyof CollectionCreateErrors];
|
|
3859
|
+
export type CollectionCreateResponses = {
|
|
3860
|
+
/**
|
|
3861
|
+
* Created
|
|
3862
|
+
*/
|
|
3863
|
+
201: Collection;
|
|
3864
|
+
};
|
|
3865
|
+
export type CollectionCreateResponse = CollectionCreateResponses[keyof CollectionCreateResponses];
|
|
3866
|
+
export type CollectionDestroyData = {
|
|
3867
|
+
body?: never;
|
|
3868
|
+
path: {
|
|
3869
|
+
/**
|
|
3870
|
+
* Collection ID
|
|
3871
|
+
*/
|
|
3872
|
+
id: number;
|
|
3873
|
+
};
|
|
3874
|
+
query?: never;
|
|
3875
|
+
url: '/v1/collections/{id}';
|
|
3876
|
+
};
|
|
3877
|
+
export type CollectionDestroyErrors = {
|
|
3878
|
+
/**
|
|
3879
|
+
* Bad Request
|
|
3880
|
+
*/
|
|
3881
|
+
400: Error400;
|
|
3882
|
+
/**
|
|
3883
|
+
* Unauthorized
|
|
3884
|
+
*/
|
|
3885
|
+
401: Error401;
|
|
3886
|
+
/**
|
|
3887
|
+
* Forbidden
|
|
3888
|
+
*/
|
|
3889
|
+
403: Error403;
|
|
3890
|
+
/**
|
|
3891
|
+
* Not Found
|
|
3892
|
+
*/
|
|
3893
|
+
404: Error404;
|
|
3894
|
+
/**
|
|
3895
|
+
* Too Many Requests
|
|
3896
|
+
*/
|
|
3897
|
+
429: Error429;
|
|
3898
|
+
/**
|
|
3899
|
+
* Internal Server Error
|
|
3900
|
+
*/
|
|
3901
|
+
500: Error500;
|
|
3902
|
+
};
|
|
3903
|
+
export type CollectionDestroyError = CollectionDestroyErrors[keyof CollectionDestroyErrors];
|
|
3904
|
+
export type CollectionDestroyResponses = {
|
|
3905
|
+
/**
|
|
3906
|
+
* No Content
|
|
3907
|
+
*/
|
|
3908
|
+
204: void;
|
|
3909
|
+
};
|
|
3910
|
+
export type CollectionDestroyResponse = CollectionDestroyResponses[keyof CollectionDestroyResponses];
|
|
3911
|
+
export type CollectionShowData = {
|
|
3912
|
+
body?: never;
|
|
3913
|
+
path: {
|
|
3914
|
+
/**
|
|
3915
|
+
* Collection ID
|
|
3916
|
+
*/
|
|
3917
|
+
id: number;
|
|
3918
|
+
};
|
|
3919
|
+
query?: {
|
|
3920
|
+
/**
|
|
3921
|
+
* Cursor offset for paginated segments
|
|
3922
|
+
*/
|
|
3923
|
+
cursor?: number;
|
|
3924
|
+
/**
|
|
3925
|
+
* Page number (1-indexed)
|
|
3926
|
+
*
|
|
3927
|
+
* @deprecated
|
|
3928
|
+
*/
|
|
3929
|
+
page?: number;
|
|
3930
|
+
/**
|
|
3931
|
+
* Items per page
|
|
3932
|
+
*/
|
|
3933
|
+
limit?: number;
|
|
3934
|
+
};
|
|
3935
|
+
url: '/v1/collections/{id}';
|
|
3936
|
+
};
|
|
3937
|
+
export type CollectionShowErrors = {
|
|
3938
|
+
/**
|
|
3939
|
+
* Bad Request
|
|
3940
|
+
*/
|
|
3941
|
+
400: Error400;
|
|
3942
|
+
/**
|
|
3943
|
+
* Unauthorized
|
|
3944
|
+
*/
|
|
3945
|
+
401: Error401;
|
|
3946
|
+
/**
|
|
3947
|
+
* Forbidden
|
|
3948
|
+
*/
|
|
3949
|
+
403: Error403;
|
|
3950
|
+
/**
|
|
3951
|
+
* Not Found
|
|
3952
|
+
*/
|
|
3953
|
+
404: Error404;
|
|
3954
|
+
/**
|
|
3955
|
+
* Too Many Requests
|
|
3956
|
+
*/
|
|
3957
|
+
429: Error429;
|
|
3958
|
+
/**
|
|
3959
|
+
* Internal Server Error
|
|
3960
|
+
*/
|
|
3961
|
+
500: Error500;
|
|
3962
|
+
};
|
|
3963
|
+
export type CollectionShowError = CollectionShowErrors[keyof CollectionShowErrors];
|
|
3964
|
+
export type CollectionShowResponses = {
|
|
3965
|
+
/**
|
|
3966
|
+
* OK
|
|
3967
|
+
*/
|
|
3968
|
+
200: CollectionWithSegments;
|
|
3969
|
+
};
|
|
3970
|
+
export type CollectionShowResponse = CollectionShowResponses[keyof CollectionShowResponses];
|
|
3971
|
+
export type CollectionUpdateData = {
|
|
3972
|
+
body: {
|
|
3973
|
+
name?: string;
|
|
3974
|
+
visibility?: 'PUBLIC' | 'PRIVATE';
|
|
3975
|
+
};
|
|
3976
|
+
path: {
|
|
3977
|
+
/**
|
|
3978
|
+
* Collection ID
|
|
3979
|
+
*/
|
|
3980
|
+
id: number;
|
|
3981
|
+
};
|
|
3982
|
+
query?: never;
|
|
3983
|
+
url: '/v1/collections/{id}';
|
|
3984
|
+
};
|
|
3985
|
+
export type CollectionUpdateErrors = {
|
|
3986
|
+
/**
|
|
3987
|
+
* Bad Request
|
|
3988
|
+
*/
|
|
3989
|
+
400: Error400;
|
|
3990
|
+
/**
|
|
3991
|
+
* Unauthorized
|
|
3992
|
+
*/
|
|
3993
|
+
401: Error401;
|
|
3994
|
+
/**
|
|
3995
|
+
* Forbidden
|
|
3996
|
+
*/
|
|
3997
|
+
403: Error403;
|
|
3998
|
+
/**
|
|
3999
|
+
* Not Found
|
|
4000
|
+
*/
|
|
4001
|
+
404: Error404;
|
|
4002
|
+
/**
|
|
4003
|
+
* Too Many Requests
|
|
4004
|
+
*/
|
|
4005
|
+
429: Error429;
|
|
4006
|
+
/**
|
|
4007
|
+
* Internal Server Error
|
|
4008
|
+
*/
|
|
4009
|
+
500: Error500;
|
|
4010
|
+
};
|
|
4011
|
+
export type CollectionUpdateError = CollectionUpdateErrors[keyof CollectionUpdateErrors];
|
|
4012
|
+
export type CollectionUpdateResponses = {
|
|
4013
|
+
/**
|
|
4014
|
+
* OK
|
|
4015
|
+
*/
|
|
4016
|
+
200: Collection;
|
|
4017
|
+
};
|
|
4018
|
+
export type CollectionUpdateResponse = CollectionUpdateResponses[keyof CollectionUpdateResponses];
|
|
4019
|
+
export type CollectionAddSegmentData = {
|
|
4020
|
+
body: {
|
|
4021
|
+
/**
|
|
4022
|
+
* UUID of the segment to add
|
|
4023
|
+
*/
|
|
4024
|
+
segmentUuid: string;
|
|
4025
|
+
/**
|
|
4026
|
+
* Optional annotation
|
|
4027
|
+
*/
|
|
4028
|
+
note?: string;
|
|
4029
|
+
};
|
|
4030
|
+
path: {
|
|
4031
|
+
/**
|
|
4032
|
+
* Collection ID
|
|
4033
|
+
*/
|
|
4034
|
+
id: number;
|
|
4035
|
+
};
|
|
4036
|
+
query?: never;
|
|
4037
|
+
url: '/v1/collections/{id}/segments';
|
|
4038
|
+
};
|
|
4039
|
+
export type CollectionAddSegmentErrors = {
|
|
4040
|
+
/**
|
|
4041
|
+
* Bad Request
|
|
4042
|
+
*/
|
|
4043
|
+
400: Error400;
|
|
4044
|
+
/**
|
|
4045
|
+
* Unauthorized
|
|
4046
|
+
*/
|
|
4047
|
+
401: Error401;
|
|
4048
|
+
/**
|
|
4049
|
+
* Forbidden
|
|
4050
|
+
*/
|
|
4051
|
+
403: Error403;
|
|
4052
|
+
/**
|
|
4053
|
+
* Not Found
|
|
4054
|
+
*/
|
|
4055
|
+
404: Error404;
|
|
4056
|
+
/**
|
|
4057
|
+
* Too Many Requests
|
|
4058
|
+
*/
|
|
4059
|
+
429: Error429;
|
|
4060
|
+
/**
|
|
4061
|
+
* Internal Server Error
|
|
4062
|
+
*/
|
|
4063
|
+
500: Error500;
|
|
4064
|
+
};
|
|
4065
|
+
export type CollectionAddSegmentError = CollectionAddSegmentErrors[keyof CollectionAddSegmentErrors];
|
|
4066
|
+
export type CollectionAddSegmentResponses = {
|
|
4067
|
+
/**
|
|
4068
|
+
* No Content
|
|
4069
|
+
*/
|
|
4070
|
+
204: void;
|
|
4071
|
+
};
|
|
4072
|
+
export type CollectionAddSegmentResponse = CollectionAddSegmentResponses[keyof CollectionAddSegmentResponses];
|
|
4073
|
+
export type CollectionRemoveSegmentData = {
|
|
4074
|
+
body?: never;
|
|
4075
|
+
path: {
|
|
4076
|
+
/**
|
|
4077
|
+
* Collection ID
|
|
4078
|
+
*/
|
|
4079
|
+
id: number;
|
|
4080
|
+
/**
|
|
4081
|
+
* Segment UUID
|
|
4082
|
+
*/
|
|
4083
|
+
uuid: string;
|
|
4084
|
+
};
|
|
4085
|
+
query?: never;
|
|
4086
|
+
url: '/v1/collections/{id}/segments/{uuid}';
|
|
4087
|
+
};
|
|
4088
|
+
export type CollectionRemoveSegmentErrors = {
|
|
4089
|
+
/**
|
|
4090
|
+
* Bad Request
|
|
4091
|
+
*/
|
|
4092
|
+
400: Error400;
|
|
4093
|
+
/**
|
|
4094
|
+
* Unauthorized
|
|
4095
|
+
*/
|
|
4096
|
+
401: Error401;
|
|
4097
|
+
/**
|
|
4098
|
+
* Forbidden
|
|
4099
|
+
*/
|
|
4100
|
+
403: Error403;
|
|
4101
|
+
/**
|
|
4102
|
+
* Not Found
|
|
4103
|
+
*/
|
|
4104
|
+
404: Error404;
|
|
4105
|
+
/**
|
|
4106
|
+
* Too Many Requests
|
|
4107
|
+
*/
|
|
4108
|
+
429: Error429;
|
|
4109
|
+
/**
|
|
4110
|
+
* Internal Server Error
|
|
4111
|
+
*/
|
|
4112
|
+
500: Error500;
|
|
4113
|
+
};
|
|
4114
|
+
export type CollectionRemoveSegmentError = CollectionRemoveSegmentErrors[keyof CollectionRemoveSegmentErrors];
|
|
4115
|
+
export type CollectionRemoveSegmentResponses = {
|
|
4116
|
+
/**
|
|
4117
|
+
* No Content
|
|
4118
|
+
*/
|
|
4119
|
+
204: void;
|
|
4120
|
+
};
|
|
4121
|
+
export type CollectionRemoveSegmentResponse = CollectionRemoveSegmentResponses[keyof CollectionRemoveSegmentResponses];
|
|
4122
|
+
export type CollectionUpdateSegmentData = {
|
|
4123
|
+
body: {
|
|
4124
|
+
/**
|
|
4125
|
+
* New position in the collection
|
|
4126
|
+
*/
|
|
4127
|
+
position?: number;
|
|
4128
|
+
/**
|
|
4129
|
+
* Updated annotation
|
|
4130
|
+
*/
|
|
4131
|
+
note?: string;
|
|
4132
|
+
};
|
|
4133
|
+
path: {
|
|
4134
|
+
/**
|
|
4135
|
+
* Collection ID
|
|
4136
|
+
*/
|
|
4137
|
+
id: number;
|
|
4138
|
+
/**
|
|
4139
|
+
* Segment UUID
|
|
4140
|
+
*/
|
|
4141
|
+
uuid: string;
|
|
4142
|
+
};
|
|
4143
|
+
query?: never;
|
|
4144
|
+
url: '/v1/collections/{id}/segments/{uuid}';
|
|
4145
|
+
};
|
|
4146
|
+
export type CollectionUpdateSegmentErrors = {
|
|
4147
|
+
/**
|
|
4148
|
+
* Bad Request
|
|
4149
|
+
*/
|
|
4150
|
+
400: Error400;
|
|
4151
|
+
/**
|
|
4152
|
+
* Unauthorized
|
|
4153
|
+
*/
|
|
4154
|
+
401: Error401;
|
|
4155
|
+
/**
|
|
4156
|
+
* Forbidden
|
|
4157
|
+
*/
|
|
4158
|
+
403: Error403;
|
|
4159
|
+
/**
|
|
4160
|
+
* Not Found
|
|
4161
|
+
*/
|
|
4162
|
+
404: Error404;
|
|
4163
|
+
/**
|
|
4164
|
+
* Too Many Requests
|
|
4165
|
+
*/
|
|
4166
|
+
429: Error429;
|
|
4167
|
+
/**
|
|
4168
|
+
* Internal Server Error
|
|
4169
|
+
*/
|
|
4170
|
+
500: Error500;
|
|
4171
|
+
};
|
|
4172
|
+
export type CollectionUpdateSegmentError = CollectionUpdateSegmentErrors[keyof CollectionUpdateSegmentErrors];
|
|
4173
|
+
export type CollectionUpdateSegmentResponses = {
|
|
4174
|
+
/**
|
|
4175
|
+
* No Content
|
|
4176
|
+
*/
|
|
4177
|
+
204: void;
|
|
4178
|
+
};
|
|
4179
|
+
export type CollectionUpdateSegmentResponse = CollectionUpdateSegmentResponses[keyof CollectionUpdateSegmentResponses];
|
|
4180
|
+
export type AdminDashboardShowData = {
|
|
4181
|
+
body?: never;
|
|
4182
|
+
path?: never;
|
|
4183
|
+
query?: never;
|
|
4184
|
+
url: '/v1/admin/dashboard';
|
|
4185
|
+
};
|
|
4186
|
+
export type AdminDashboardShowErrors = {
|
|
4187
|
+
/**
|
|
4188
|
+
* Unauthorized
|
|
4189
|
+
*/
|
|
4190
|
+
401: Error401;
|
|
4191
|
+
/**
|
|
4192
|
+
* Forbidden
|
|
4193
|
+
*/
|
|
4194
|
+
403: Error403;
|
|
4195
|
+
/**
|
|
4196
|
+
* Too Many Requests
|
|
4197
|
+
*/
|
|
4198
|
+
429: Error429;
|
|
4199
|
+
/**
|
|
4200
|
+
* Internal Server Error
|
|
4201
|
+
*/
|
|
4202
|
+
500: Error500;
|
|
4203
|
+
};
|
|
4204
|
+
export type AdminDashboardShowError = AdminDashboardShowErrors[keyof AdminDashboardShowErrors];
|
|
4205
|
+
export type AdminDashboardShowResponses = {
|
|
4206
|
+
/**
|
|
4207
|
+
* OK
|
|
4208
|
+
*/
|
|
4209
|
+
200: {
|
|
4210
|
+
media: {
|
|
4211
|
+
totalMedia: number;
|
|
4212
|
+
totalEpisodes: number;
|
|
4213
|
+
totalSegments: number;
|
|
4214
|
+
totalCharacters: number;
|
|
4215
|
+
totalSeiyuu: number;
|
|
4216
|
+
};
|
|
4217
|
+
users: {
|
|
4218
|
+
totalUsers: number;
|
|
4219
|
+
/**
|
|
4220
|
+
* Users registered in the last 30 days
|
|
4221
|
+
*/
|
|
4222
|
+
recentlyRegisteredCount: number;
|
|
4223
|
+
/**
|
|
4224
|
+
* Users active in the last 30 days
|
|
4225
|
+
*/
|
|
4226
|
+
recentlyActiveCount: number;
|
|
4227
|
+
};
|
|
4228
|
+
activity: {
|
|
4229
|
+
totalSearches: number;
|
|
4230
|
+
totalExports: number;
|
|
4231
|
+
totalPlays: number;
|
|
4232
|
+
totalCollectionAdds: number;
|
|
4233
|
+
/**
|
|
4234
|
+
* Unique users who searched in the last 7 days
|
|
4235
|
+
*/
|
|
4236
|
+
activeSearchers7d: number;
|
|
4237
|
+
topQueries7d: Array<{
|
|
4238
|
+
query: string;
|
|
4239
|
+
count: number;
|
|
4240
|
+
}>;
|
|
4241
|
+
dailyActivity30d: Array<{
|
|
4242
|
+
date: string;
|
|
4243
|
+
count: number;
|
|
4244
|
+
}>;
|
|
4245
|
+
};
|
|
4246
|
+
system: {
|
|
4247
|
+
status: 'healthy' | 'degraded';
|
|
4248
|
+
app: {
|
|
4249
|
+
version: string;
|
|
4250
|
+
};
|
|
4251
|
+
elasticsearch: {
|
|
4252
|
+
status: 'connected' | 'disconnected';
|
|
4253
|
+
version?: string;
|
|
4254
|
+
clusterName?: string;
|
|
4255
|
+
clusterStatus?: string;
|
|
4256
|
+
indexName?: string;
|
|
4257
|
+
documentCount?: number;
|
|
4258
|
+
};
|
|
4259
|
+
database: {
|
|
4260
|
+
status: 'connected' | 'disconnected';
|
|
4261
|
+
version?: string;
|
|
4262
|
+
};
|
|
4263
|
+
queues: Array<{
|
|
4264
|
+
queue: string;
|
|
4265
|
+
stuckCount: number;
|
|
4266
|
+
failedCount: number;
|
|
4267
|
+
}>;
|
|
4268
|
+
};
|
|
4269
|
+
};
|
|
4270
|
+
};
|
|
4271
|
+
export type AdminDashboardShowResponse = AdminDashboardShowResponses[keyof AdminDashboardShowResponses];
|
|
4272
|
+
export type AdminHealthShowData = {
|
|
4273
|
+
body?: never;
|
|
4274
|
+
path?: never;
|
|
4275
|
+
query?: never;
|
|
4276
|
+
url: '/v1/admin/health';
|
|
4277
|
+
};
|
|
4278
|
+
export type AdminHealthShowErrors = {
|
|
4279
|
+
/**
|
|
4280
|
+
* Unauthorized
|
|
4281
|
+
*/
|
|
4282
|
+
401: Error401;
|
|
4283
|
+
/**
|
|
4284
|
+
* Forbidden
|
|
4285
|
+
*/
|
|
4286
|
+
403: Error403;
|
|
4287
|
+
/**
|
|
4288
|
+
* Too Many Requests
|
|
4289
|
+
*/
|
|
4290
|
+
429: Error429;
|
|
4291
|
+
/**
|
|
4292
|
+
* Internal Server Error
|
|
4293
|
+
*/
|
|
4294
|
+
500: Error500;
|
|
4295
|
+
};
|
|
4296
|
+
export type AdminHealthShowError = AdminHealthShowErrors[keyof AdminHealthShowErrors];
|
|
4297
|
+
export type AdminHealthShowResponses = {
|
|
4298
|
+
/**
|
|
4299
|
+
* OK
|
|
4300
|
+
*/
|
|
4301
|
+
200: {
|
|
4302
|
+
/**
|
|
4303
|
+
* Overall system status
|
|
4304
|
+
*/
|
|
4305
|
+
status: 'healthy' | 'degraded';
|
|
4306
|
+
app: {
|
|
4307
|
+
/**
|
|
4308
|
+
* API version from OpenAPI spec
|
|
4309
|
+
*/
|
|
4310
|
+
version: string;
|
|
4311
|
+
};
|
|
4312
|
+
elasticsearch: {
|
|
4313
|
+
status: 'connected' | 'disconnected';
|
|
4314
|
+
version?: string;
|
|
4315
|
+
clusterName?: string;
|
|
4316
|
+
/**
|
|
4317
|
+
* ES cluster health (green, yellow, red)
|
|
4318
|
+
*/
|
|
4319
|
+
clusterStatus?: string;
|
|
4320
|
+
indexName?: string;
|
|
4321
|
+
documentCount?: number;
|
|
4322
|
+
};
|
|
4323
|
+
database: {
|
|
4324
|
+
status: 'connected' | 'disconnected';
|
|
4325
|
+
version?: string;
|
|
4326
|
+
};
|
|
4327
|
+
};
|
|
4328
|
+
};
|
|
4329
|
+
export type AdminHealthShowResponse = AdminHealthShowResponses[keyof AdminHealthShowResponses];
|
|
4330
|
+
export type AdminReindexCreateData = {
|
|
4331
|
+
body?: ReindexRequest;
|
|
4332
|
+
path?: never;
|
|
4333
|
+
query?: never;
|
|
4334
|
+
url: '/v1/admin/reindex';
|
|
4335
|
+
};
|
|
4336
|
+
export type AdminReindexCreateErrors = {
|
|
4337
|
+
/**
|
|
4338
|
+
* Bad Request
|
|
4339
|
+
*/
|
|
4340
|
+
400: Error400;
|
|
4341
|
+
/**
|
|
4342
|
+
* Unauthorized
|
|
4343
|
+
*/
|
|
4344
|
+
401: Error401;
|
|
4345
|
+
/**
|
|
4346
|
+
* Forbidden
|
|
4347
|
+
*/
|
|
4348
|
+
403: Error403;
|
|
4349
|
+
/**
|
|
4350
|
+
* Too Many Requests
|
|
4351
|
+
*/
|
|
4352
|
+
429: Error429;
|
|
4353
|
+
/**
|
|
4354
|
+
* Internal Server Error
|
|
4355
|
+
*/
|
|
4356
|
+
500: Error500;
|
|
4357
|
+
};
|
|
4358
|
+
export type AdminReindexCreateError = AdminReindexCreateErrors[keyof AdminReindexCreateErrors];
|
|
4359
|
+
export type AdminReindexCreateResponses = {
|
|
4360
|
+
/**
|
|
4361
|
+
* Reindex operation completed
|
|
4362
|
+
*/
|
|
4363
|
+
200: ReindexResponse;
|
|
4364
|
+
};
|
|
4365
|
+
export type AdminReindexCreateResponse = AdminReindexCreateResponses[keyof AdminReindexCreateResponses];
|
|
4366
|
+
export type AdminQueueStatsIndexData = {
|
|
4367
|
+
body?: never;
|
|
4368
|
+
path?: never;
|
|
4369
|
+
query?: never;
|
|
4370
|
+
url: '/v1/admin/queues/stats';
|
|
4371
|
+
};
|
|
4372
|
+
export type AdminQueueStatsIndexErrors = {
|
|
4373
|
+
/**
|
|
4374
|
+
* Bad Request
|
|
4375
|
+
*/
|
|
4376
|
+
400: Error400;
|
|
4377
|
+
/**
|
|
4378
|
+
* Unauthorized
|
|
4379
|
+
*/
|
|
4380
|
+
401: Error401;
|
|
4381
|
+
/**
|
|
4382
|
+
* Forbidden
|
|
4383
|
+
*/
|
|
4384
|
+
403: Error403;
|
|
4385
|
+
/**
|
|
4386
|
+
* Too Many Requests
|
|
4387
|
+
*/
|
|
4388
|
+
429: Error429;
|
|
4389
|
+
/**
|
|
4390
|
+
* Internal Server Error
|
|
4391
|
+
*/
|
|
4392
|
+
500: Error500;
|
|
4393
|
+
};
|
|
4394
|
+
export type AdminQueueStatsIndexError = AdminQueueStatsIndexErrors[keyof AdminQueueStatsIndexErrors];
|
|
4395
|
+
export type AdminQueueStatsIndexResponses = {
|
|
4396
|
+
/**
|
|
4397
|
+
* Queue statistics retrieved successfully
|
|
4398
|
+
*/
|
|
4399
|
+
200: Array<{
|
|
4400
|
+
queue?: string;
|
|
4401
|
+
/**
|
|
4402
|
+
* Number of jobs currently pending/active
|
|
4403
|
+
*/
|
|
4404
|
+
stuckCount?: number;
|
|
4405
|
+
/**
|
|
4406
|
+
* Number of failed jobs
|
|
4407
|
+
*/
|
|
4408
|
+
failedCount?: number;
|
|
4409
|
+
}>;
|
|
4410
|
+
};
|
|
4411
|
+
export type AdminQueueStatsIndexResponse = AdminQueueStatsIndexResponses[keyof AdminQueueStatsIndexResponses];
|
|
4412
|
+
export type AdminQueueShowData = {
|
|
4413
|
+
body?: never;
|
|
4414
|
+
path: {
|
|
4415
|
+
/**
|
|
4416
|
+
* The name of the queue
|
|
4417
|
+
*/
|
|
4418
|
+
queueName: 'es-sync-create' | 'es-sync-update' | 'es-sync-delete';
|
|
4419
|
+
};
|
|
4420
|
+
query?: never;
|
|
4421
|
+
url: '/v1/admin/queues/{queueName}';
|
|
4422
|
+
};
|
|
4423
|
+
export type AdminQueueShowErrors = {
|
|
4424
|
+
/**
|
|
4425
|
+
* Bad Request
|
|
4426
|
+
*/
|
|
4427
|
+
400: Error400;
|
|
4428
|
+
/**
|
|
4429
|
+
* Unauthorized
|
|
4430
|
+
*/
|
|
4431
|
+
401: Error401;
|
|
4432
|
+
/**
|
|
4433
|
+
* Forbidden
|
|
4434
|
+
*/
|
|
4435
|
+
403: Error403;
|
|
4436
|
+
/**
|
|
4437
|
+
* Not Found
|
|
4438
|
+
*/
|
|
4439
|
+
404: Error404;
|
|
4440
|
+
/**
|
|
4441
|
+
* Too Many Requests
|
|
4442
|
+
*/
|
|
4443
|
+
429: Error429;
|
|
4444
|
+
/**
|
|
4445
|
+
* Internal Server Error
|
|
4446
|
+
*/
|
|
4447
|
+
500: Error500;
|
|
4448
|
+
};
|
|
4449
|
+
export type AdminQueueShowError = AdminQueueShowErrors[keyof AdminQueueShowErrors];
|
|
4450
|
+
export type AdminQueueShowResponses = {
|
|
4451
|
+
/**
|
|
4452
|
+
* Queue details retrieved successfully
|
|
4453
|
+
*/
|
|
4454
|
+
200: {
|
|
4455
|
+
queue: string;
|
|
4456
|
+
stats: {
|
|
4457
|
+
/**
|
|
4458
|
+
* Jobs scheduled for future execution (`start_after > now()`)
|
|
4459
|
+
*/
|
|
4460
|
+
deferred: number;
|
|
4461
|
+
/**
|
|
4462
|
+
* Jobs currently queued and waiting to be processed
|
|
4463
|
+
*/
|
|
4464
|
+
queued: number;
|
|
4465
|
+
/**
|
|
4466
|
+
* Jobs currently being processed
|
|
4467
|
+
*/
|
|
4468
|
+
active: number;
|
|
4469
|
+
/**
|
|
4470
|
+
* Total jobs currently stored in the queue table
|
|
4471
|
+
*/
|
|
4472
|
+
total: number;
|
|
4473
|
+
};
|
|
4474
|
+
metadata: {
|
|
4475
|
+
policy: string;
|
|
4476
|
+
partition: boolean;
|
|
4477
|
+
deadLetter?: string;
|
|
4478
|
+
warningQueueSize?: number;
|
|
4479
|
+
retryLimit?: number;
|
|
4480
|
+
/**
|
|
4481
|
+
* Initial retry delay in seconds
|
|
4482
|
+
*/
|
|
4483
|
+
retryDelay?: number;
|
|
4484
|
+
retryBackoff?: boolean;
|
|
4485
|
+
retryDelayMax?: number;
|
|
4486
|
+
expireInSeconds?: number;
|
|
4487
|
+
retentionSeconds?: number;
|
|
4488
|
+
deleteAfterSeconds?: number;
|
|
4489
|
+
createdOn: string;
|
|
4490
|
+
updatedOn: string;
|
|
4491
|
+
singletonsActive: Array<string>;
|
|
4492
|
+
table: string;
|
|
4493
|
+
};
|
|
4494
|
+
};
|
|
4495
|
+
};
|
|
4496
|
+
export type AdminQueueShowResponse = AdminQueueShowResponses[keyof AdminQueueShowResponses];
|
|
4497
|
+
export type AdminQueueFailedIndexData = {
|
|
4498
|
+
body?: never;
|
|
4499
|
+
path: {
|
|
4500
|
+
/**
|
|
4501
|
+
* The name of the queue
|
|
4502
|
+
*/
|
|
4503
|
+
queueName: 'es-sync-create' | 'es-sync-update' | 'es-sync-delete';
|
|
4504
|
+
};
|
|
4505
|
+
query?: never;
|
|
4506
|
+
url: '/v1/admin/queues/{queueName}/failed';
|
|
4507
|
+
};
|
|
4508
|
+
export type AdminQueueFailedIndexErrors = {
|
|
4509
|
+
/**
|
|
4510
|
+
* Bad Request
|
|
4511
|
+
*/
|
|
4512
|
+
400: Error400;
|
|
4513
|
+
/**
|
|
4514
|
+
* Unauthorized
|
|
4515
|
+
*/
|
|
4516
|
+
401: Error401;
|
|
4517
|
+
/**
|
|
4518
|
+
* Forbidden
|
|
4519
|
+
*/
|
|
4520
|
+
403: Error403;
|
|
4521
|
+
/**
|
|
4522
|
+
* Too Many Requests
|
|
4523
|
+
*/
|
|
4524
|
+
429: Error429;
|
|
4525
|
+
/**
|
|
4526
|
+
* Internal Server Error
|
|
4527
|
+
*/
|
|
4528
|
+
500: Error500;
|
|
4529
|
+
};
|
|
4530
|
+
export type AdminQueueFailedIndexError = AdminQueueFailedIndexErrors[keyof AdminQueueFailedIndexErrors];
|
|
4531
|
+
export type AdminQueueFailedIndexResponses = {
|
|
4532
|
+
/**
|
|
4533
|
+
* Failed jobs retrieved successfully
|
|
4534
|
+
*/
|
|
4535
|
+
200: Array<{
|
|
4536
|
+
/**
|
|
4537
|
+
* Job ID
|
|
4538
|
+
*/
|
|
4539
|
+
id?: string;
|
|
4540
|
+
/**
|
|
4541
|
+
* The segment ID that failed to sync
|
|
4542
|
+
*/
|
|
4543
|
+
segmentId?: number;
|
|
4544
|
+
/**
|
|
4545
|
+
* Error message from the last attempt
|
|
4546
|
+
*/
|
|
4547
|
+
error?: string;
|
|
4548
|
+
/**
|
|
4549
|
+
* When the job was created
|
|
4550
|
+
*/
|
|
4551
|
+
createdOn?: string;
|
|
4552
|
+
}>;
|
|
4553
|
+
};
|
|
4554
|
+
export type AdminQueueFailedIndexResponse = AdminQueueFailedIndexResponses[keyof AdminQueueFailedIndexResponses];
|
|
4555
|
+
export type AdminQueueRetryCreateData = {
|
|
4556
|
+
body?: never;
|
|
4557
|
+
path: {
|
|
4558
|
+
/**
|
|
4559
|
+
* The name of the queue
|
|
4560
|
+
*/
|
|
4561
|
+
queueName: 'es-sync-create' | 'es-sync-update' | 'es-sync-delete';
|
|
4562
|
+
};
|
|
4563
|
+
query?: never;
|
|
4564
|
+
url: '/v1/admin/queues/{queueName}/retry';
|
|
4565
|
+
};
|
|
4566
|
+
export type AdminQueueRetryCreateErrors = {
|
|
4567
|
+
/**
|
|
4568
|
+
* Bad Request
|
|
4569
|
+
*/
|
|
4570
|
+
400: Error400;
|
|
4571
|
+
/**
|
|
4572
|
+
* Unauthorized
|
|
4573
|
+
*/
|
|
4574
|
+
401: Error401;
|
|
4575
|
+
/**
|
|
4576
|
+
* Forbidden
|
|
4577
|
+
*/
|
|
4578
|
+
403: Error403;
|
|
4579
|
+
/**
|
|
4580
|
+
* Too Many Requests
|
|
4581
|
+
*/
|
|
4582
|
+
429: Error429;
|
|
4583
|
+
/**
|
|
4584
|
+
* Internal Server Error
|
|
4585
|
+
*/
|
|
4586
|
+
500: Error500;
|
|
4587
|
+
};
|
|
4588
|
+
export type AdminQueueRetryCreateError = AdminQueueRetryCreateErrors[keyof AdminQueueRetryCreateErrors];
|
|
4589
|
+
export type AdminQueueRetryCreateResponses = {
|
|
4590
|
+
/**
|
|
4591
|
+
* Jobs queued for retry
|
|
4592
|
+
*/
|
|
4593
|
+
200: {
|
|
4594
|
+
success?: boolean;
|
|
4595
|
+
/**
|
|
4596
|
+
* Number of jobs queued for retry
|
|
4597
|
+
*/
|
|
4598
|
+
retriedCount?: number;
|
|
4599
|
+
message?: string;
|
|
4600
|
+
};
|
|
4601
|
+
};
|
|
4602
|
+
export type AdminQueueRetryCreateResponse = AdminQueueRetryCreateResponses[keyof AdminQueueRetryCreateResponses];
|
|
4603
|
+
export type AdminQueueFailedDestroyData = {
|
|
4604
|
+
body?: never;
|
|
4605
|
+
path: {
|
|
4606
|
+
/**
|
|
4607
|
+
* The name of the queue
|
|
4608
|
+
*/
|
|
4609
|
+
queueName: 'es-sync-create' | 'es-sync-update' | 'es-sync-delete';
|
|
4610
|
+
};
|
|
4611
|
+
query?: never;
|
|
4612
|
+
url: '/v1/admin/queues/{queueName}/purge';
|
|
4613
|
+
};
|
|
4614
|
+
export type AdminQueueFailedDestroyErrors = {
|
|
4615
|
+
/**
|
|
4616
|
+
* Bad Request
|
|
4617
|
+
*/
|
|
4618
|
+
400: Error400;
|
|
4619
|
+
/**
|
|
4620
|
+
* Unauthorized
|
|
4621
|
+
*/
|
|
4622
|
+
401: Error401;
|
|
4623
|
+
/**
|
|
4624
|
+
* Forbidden
|
|
4625
|
+
*/
|
|
4626
|
+
403: Error403;
|
|
4627
|
+
/**
|
|
4628
|
+
* Too Many Requests
|
|
4629
|
+
*/
|
|
4630
|
+
429: Error429;
|
|
4631
|
+
/**
|
|
4632
|
+
* Internal Server Error
|
|
4633
|
+
*/
|
|
4634
|
+
500: Error500;
|
|
4635
|
+
};
|
|
4636
|
+
export type AdminQueueFailedDestroyError = AdminQueueFailedDestroyErrors[keyof AdminQueueFailedDestroyErrors];
|
|
4637
|
+
export type AdminQueueFailedDestroyResponses = {
|
|
4638
|
+
/**
|
|
4639
|
+
* Failed jobs purged successfully
|
|
4640
|
+
*/
|
|
4641
|
+
200: {
|
|
4642
|
+
success?: boolean;
|
|
4643
|
+
/**
|
|
4644
|
+
* Number of failed jobs deleted
|
|
4645
|
+
*/
|
|
4646
|
+
purgedCount?: number;
|
|
4647
|
+
message?: string;
|
|
4648
|
+
};
|
|
4649
|
+
};
|
|
4650
|
+
export type AdminQueueFailedDestroyResponse = AdminQueueFailedDestroyResponses[keyof AdminQueueFailedDestroyResponses];
|
|
4651
|
+
export type AdminReportIndexData = {
|
|
4652
|
+
body?: never;
|
|
4653
|
+
path?: never;
|
|
4654
|
+
query?: {
|
|
4655
|
+
/**
|
|
4656
|
+
* Cursor for pagination (report ID to start after)
|
|
4657
|
+
*/
|
|
4658
|
+
cursor?: number;
|
|
4659
|
+
/**
|
|
4660
|
+
* Number of results per page
|
|
4661
|
+
*/
|
|
4662
|
+
limit?: number;
|
|
4663
|
+
/**
|
|
4664
|
+
* Filter by report status
|
|
4665
|
+
*/
|
|
4666
|
+
status?: 'PENDING' | 'CONCERN' | 'ACCEPTED' | 'REJECTED' | 'RESOLVED' | 'IGNORED';
|
|
4667
|
+
/**
|
|
4668
|
+
* Filter by report source
|
|
4669
|
+
*/
|
|
4670
|
+
source?: 'USER' | 'AUTO';
|
|
4671
|
+
/**
|
|
4672
|
+
* Filter by target type
|
|
4673
|
+
*/
|
|
4674
|
+
'target.type'?: 'SEGMENT' | 'EPISODE' | 'MEDIA';
|
|
4675
|
+
/**
|
|
4676
|
+
* Filter by target media ID
|
|
4677
|
+
*/
|
|
4678
|
+
'target.mediaId'?: number;
|
|
4679
|
+
/**
|
|
4680
|
+
* Filter by target episode number
|
|
4681
|
+
*/
|
|
4682
|
+
'target.episodeNumber'?: number;
|
|
4683
|
+
/**
|
|
4684
|
+
* Filter by target segment UUID
|
|
4685
|
+
*/
|
|
4686
|
+
'target.segmentUuid'?: string;
|
|
4687
|
+
/**
|
|
4688
|
+
* Filter by review check run ID
|
|
4689
|
+
*/
|
|
4690
|
+
reviewCheckRunId?: number;
|
|
4691
|
+
};
|
|
4692
|
+
url: '/v1/admin/reports';
|
|
4693
|
+
};
|
|
4694
|
+
export type AdminReportIndexErrors = {
|
|
4695
|
+
/**
|
|
4696
|
+
* Unauthorized
|
|
4697
|
+
*/
|
|
4698
|
+
401: Error401;
|
|
4699
|
+
/**
|
|
4700
|
+
* Forbidden
|
|
4701
|
+
*/
|
|
4702
|
+
403: Error403;
|
|
4703
|
+
/**
|
|
4704
|
+
* Too Many Requests
|
|
4705
|
+
*/
|
|
4706
|
+
429: Error429;
|
|
4707
|
+
/**
|
|
4708
|
+
* Internal Server Error
|
|
4709
|
+
*/
|
|
4710
|
+
500: Error500;
|
|
4711
|
+
};
|
|
4712
|
+
export type AdminReportIndexError = AdminReportIndexErrors[keyof AdminReportIndexErrors];
|
|
4713
|
+
export type AdminReportIndexResponses = {
|
|
4714
|
+
/**
|
|
4715
|
+
* OK
|
|
4716
|
+
*/
|
|
4717
|
+
200: AdminReportListResponse;
|
|
4718
|
+
};
|
|
4719
|
+
export type AdminReportIndexResponse = AdminReportIndexResponses[keyof AdminReportIndexResponses];
|
|
4720
|
+
export type AdminReportUpdateData = {
|
|
4721
|
+
body: UpdateReportRequest;
|
|
4722
|
+
path: {
|
|
4723
|
+
/**
|
|
4724
|
+
* Report ID
|
|
4725
|
+
*/
|
|
4726
|
+
id: number;
|
|
4727
|
+
};
|
|
4728
|
+
query?: never;
|
|
4729
|
+
url: '/v1/admin/reports/{id}';
|
|
4730
|
+
};
|
|
4731
|
+
export type AdminReportUpdateErrors = {
|
|
4732
|
+
/**
|
|
4733
|
+
* Bad Request
|
|
4734
|
+
*/
|
|
4735
|
+
400: Error400;
|
|
4736
|
+
/**
|
|
4737
|
+
* Unauthorized
|
|
4738
|
+
*/
|
|
4739
|
+
401: Error401;
|
|
4740
|
+
/**
|
|
4741
|
+
* Forbidden
|
|
4742
|
+
*/
|
|
4743
|
+
403: Error403;
|
|
4744
|
+
/**
|
|
4745
|
+
* Not Found
|
|
4746
|
+
*/
|
|
4747
|
+
404: Error404;
|
|
4748
|
+
/**
|
|
4749
|
+
* Too Many Requests
|
|
4750
|
+
*/
|
|
4751
|
+
429: Error429;
|
|
4752
|
+
/**
|
|
4753
|
+
* Internal Server Error
|
|
4754
|
+
*/
|
|
4755
|
+
500: Error500;
|
|
4756
|
+
};
|
|
4757
|
+
export type AdminReportUpdateError = AdminReportUpdateErrors[keyof AdminReportUpdateErrors];
|
|
4758
|
+
export type AdminReportUpdateResponses = {
|
|
4759
|
+
/**
|
|
4760
|
+
* Report updated successfully
|
|
4761
|
+
*/
|
|
4762
|
+
200: Report;
|
|
4763
|
+
};
|
|
4764
|
+
export type AdminReportUpdateResponse = AdminReportUpdateResponses[keyof AdminReportUpdateResponses];
|
|
4765
|
+
export type AdminReviewRunCreateData = {
|
|
4766
|
+
body?: never;
|
|
4767
|
+
path?: never;
|
|
4768
|
+
query?: {
|
|
4769
|
+
/**
|
|
4770
|
+
* Optional category filter
|
|
4771
|
+
*/
|
|
4772
|
+
category?: 'ANIME' | 'JDRAMA';
|
|
4773
|
+
/**
|
|
4774
|
+
* Optional check name to run a single check instead of all
|
|
4775
|
+
*/
|
|
4776
|
+
checkName?: string;
|
|
4777
|
+
};
|
|
4778
|
+
url: '/v1/admin/review/run';
|
|
4779
|
+
};
|
|
4780
|
+
export type AdminReviewRunCreateErrors = {
|
|
4781
|
+
/**
|
|
4782
|
+
* Unauthorized
|
|
4783
|
+
*/
|
|
4784
|
+
401: Error401;
|
|
4785
|
+
/**
|
|
4786
|
+
* Forbidden
|
|
4787
|
+
*/
|
|
4788
|
+
403: Error403;
|
|
4789
|
+
/**
|
|
4790
|
+
* Too Many Requests
|
|
4791
|
+
*/
|
|
4792
|
+
429: Error429;
|
|
4793
|
+
/**
|
|
4794
|
+
* Internal Server Error
|
|
4795
|
+
*/
|
|
4796
|
+
500: Error500;
|
|
4797
|
+
};
|
|
4798
|
+
export type AdminReviewRunCreateError = AdminReviewRunCreateErrors[keyof AdminReviewRunCreateErrors];
|
|
4799
|
+
export type AdminReviewRunCreateResponses = {
|
|
4800
|
+
/**
|
|
4801
|
+
* Check run completed
|
|
4802
|
+
*/
|
|
4803
|
+
200: RunReviewResponse;
|
|
4804
|
+
};
|
|
4805
|
+
export type AdminReviewRunCreateResponse = AdminReviewRunCreateResponses[keyof AdminReviewRunCreateResponses];
|
|
4806
|
+
export type AdminReviewCheckIndexData = {
|
|
4807
|
+
body?: never;
|
|
4808
|
+
path?: never;
|
|
4809
|
+
query?: never;
|
|
4810
|
+
url: '/v1/admin/review/checks';
|
|
4811
|
+
};
|
|
4812
|
+
export type AdminReviewCheckIndexErrors = {
|
|
4813
|
+
/**
|
|
4814
|
+
* Unauthorized
|
|
4815
|
+
*/
|
|
4816
|
+
401: Error401;
|
|
4817
|
+
/**
|
|
4818
|
+
* Forbidden
|
|
4819
|
+
*/
|
|
4820
|
+
403: Error403;
|
|
4821
|
+
/**
|
|
4822
|
+
* Too Many Requests
|
|
4823
|
+
*/
|
|
4824
|
+
429: Error429;
|
|
4825
|
+
/**
|
|
4826
|
+
* Internal Server Error
|
|
4827
|
+
*/
|
|
4828
|
+
500: Error500;
|
|
4829
|
+
};
|
|
4830
|
+
export type AdminReviewCheckIndexError = AdminReviewCheckIndexErrors[keyof AdminReviewCheckIndexErrors];
|
|
4831
|
+
export type AdminReviewCheckIndexResponses = {
|
|
4832
|
+
/**
|
|
4833
|
+
* OK
|
|
4834
|
+
*/
|
|
4835
|
+
200: Array<ReviewCheck>;
|
|
4836
|
+
};
|
|
4837
|
+
export type AdminReviewCheckIndexResponse = AdminReviewCheckIndexResponses[keyof AdminReviewCheckIndexResponses];
|
|
4838
|
+
export type AdminReviewCheckUpdateData = {
|
|
4839
|
+
body: {
|
|
4840
|
+
/**
|
|
4841
|
+
* New threshold values
|
|
4842
|
+
*/
|
|
4843
|
+
threshold?: {
|
|
4844
|
+
[key: string]: unknown;
|
|
4845
|
+
};
|
|
4846
|
+
/**
|
|
4847
|
+
* Enable or disable this check
|
|
4848
|
+
*/
|
|
4849
|
+
enabled?: boolean;
|
|
4850
|
+
};
|
|
4851
|
+
path: {
|
|
4852
|
+
/**
|
|
4853
|
+
* Check name identifier
|
|
4854
|
+
*/
|
|
4855
|
+
name: string;
|
|
4856
|
+
};
|
|
4857
|
+
query?: never;
|
|
4858
|
+
url: '/v1/admin/review/checks/{name}';
|
|
4859
|
+
};
|
|
4860
|
+
export type AdminReviewCheckUpdateErrors = {
|
|
4861
|
+
/**
|
|
4862
|
+
* Bad Request
|
|
4863
|
+
*/
|
|
4864
|
+
400: Error400;
|
|
4865
|
+
/**
|
|
4866
|
+
* Unauthorized
|
|
4867
|
+
*/
|
|
4868
|
+
401: Error401;
|
|
4869
|
+
/**
|
|
4870
|
+
* Forbidden
|
|
4871
|
+
*/
|
|
4872
|
+
403: Error403;
|
|
4873
|
+
/**
|
|
4874
|
+
* Not Found
|
|
4875
|
+
*/
|
|
4876
|
+
404: Error404;
|
|
4877
|
+
/**
|
|
4878
|
+
* Too Many Requests
|
|
4879
|
+
*/
|
|
4880
|
+
429: Error429;
|
|
4881
|
+
/**
|
|
4882
|
+
* Internal Server Error
|
|
4883
|
+
*/
|
|
4884
|
+
500: Error500;
|
|
4885
|
+
};
|
|
4886
|
+
export type AdminReviewCheckUpdateError = AdminReviewCheckUpdateErrors[keyof AdminReviewCheckUpdateErrors];
|
|
4887
|
+
export type AdminReviewCheckUpdateResponses = {
|
|
4888
|
+
/**
|
|
4889
|
+
* Check updated successfully
|
|
4890
|
+
*/
|
|
4891
|
+
200: ReviewCheck;
|
|
4892
|
+
};
|
|
4893
|
+
export type AdminReviewCheckUpdateResponse = AdminReviewCheckUpdateResponses[keyof AdminReviewCheckUpdateResponses];
|
|
4894
|
+
export type AdminReviewRunIndexData = {
|
|
4895
|
+
body?: never;
|
|
4896
|
+
path?: never;
|
|
4897
|
+
query?: {
|
|
4898
|
+
/**
|
|
4899
|
+
* Filter by check name
|
|
4900
|
+
*/
|
|
4901
|
+
checkName?: string;
|
|
4902
|
+
/**
|
|
4903
|
+
* Cursor for pagination
|
|
4904
|
+
*/
|
|
4905
|
+
cursor?: number;
|
|
4906
|
+
/**
|
|
4907
|
+
* Number of results per page
|
|
4908
|
+
*/
|
|
4909
|
+
limit?: number;
|
|
4910
|
+
};
|
|
4911
|
+
url: '/v1/admin/review/runs';
|
|
4912
|
+
};
|
|
4913
|
+
export type AdminReviewRunIndexErrors = {
|
|
4914
|
+
/**
|
|
4915
|
+
* Unauthorized
|
|
4916
|
+
*/
|
|
4917
|
+
401: Error401;
|
|
4918
|
+
/**
|
|
4919
|
+
* Forbidden
|
|
4920
|
+
*/
|
|
4921
|
+
403: Error403;
|
|
4922
|
+
/**
|
|
4923
|
+
* Too Many Requests
|
|
4924
|
+
*/
|
|
4925
|
+
429: Error429;
|
|
4926
|
+
/**
|
|
4927
|
+
* Internal Server Error
|
|
4928
|
+
*/
|
|
4929
|
+
500: Error500;
|
|
4930
|
+
};
|
|
4931
|
+
export type AdminReviewRunIndexError = AdminReviewRunIndexErrors[keyof AdminReviewRunIndexErrors];
|
|
4932
|
+
export type AdminReviewRunIndexResponses = {
|
|
4933
|
+
/**
|
|
4934
|
+
* OK
|
|
4935
|
+
*/
|
|
4936
|
+
200: {
|
|
4937
|
+
runs: Array<ReviewCheckRun>;
|
|
4938
|
+
pagination: CursorPagination;
|
|
4939
|
+
};
|
|
4940
|
+
};
|
|
4941
|
+
export type AdminReviewRunIndexResponse = AdminReviewRunIndexResponses[keyof AdminReviewRunIndexResponses];
|
|
4942
|
+
export type AdminReviewRunShowData = {
|
|
4943
|
+
body?: never;
|
|
4944
|
+
path: {
|
|
4945
|
+
/**
|
|
4946
|
+
* Run ID
|
|
4947
|
+
*/
|
|
4948
|
+
id: number;
|
|
4949
|
+
};
|
|
4950
|
+
query?: never;
|
|
4951
|
+
url: '/v1/admin/review/runs/{id}';
|
|
4952
|
+
};
|
|
4953
|
+
export type AdminReviewRunShowErrors = {
|
|
4954
|
+
/**
|
|
4955
|
+
* Unauthorized
|
|
4956
|
+
*/
|
|
4957
|
+
401: Error401;
|
|
4958
|
+
/**
|
|
4959
|
+
* Forbidden
|
|
4960
|
+
*/
|
|
4961
|
+
403: Error403;
|
|
4962
|
+
/**
|
|
4963
|
+
* Not Found
|
|
4964
|
+
*/
|
|
4965
|
+
404: Error404;
|
|
4966
|
+
/**
|
|
4967
|
+
* Too Many Requests
|
|
4968
|
+
*/
|
|
4969
|
+
429: Error429;
|
|
4970
|
+
/**
|
|
4971
|
+
* Internal Server Error
|
|
4972
|
+
*/
|
|
4973
|
+
500: Error500;
|
|
4974
|
+
};
|
|
4975
|
+
export type AdminReviewRunShowError = AdminReviewRunShowErrors[keyof AdminReviewRunShowErrors];
|
|
4976
|
+
export type AdminReviewRunShowResponses = {
|
|
4977
|
+
/**
|
|
4978
|
+
* OK
|
|
4979
|
+
*/
|
|
4980
|
+
200: {
|
|
4981
|
+
run: ReviewCheckRun;
|
|
4982
|
+
reports: Array<Report>;
|
|
4983
|
+
};
|
|
4984
|
+
};
|
|
4985
|
+
export type AdminReviewRunShowResponse = AdminReviewRunShowResponses[keyof AdminReviewRunShowResponses];
|
|
4986
|
+
export type AdminReviewAllowlistIndexData = {
|
|
4987
|
+
body?: never;
|
|
4988
|
+
path?: never;
|
|
4989
|
+
query?: {
|
|
4990
|
+
/**
|
|
4991
|
+
* Filter by check name
|
|
4992
|
+
*/
|
|
4993
|
+
checkName?: string;
|
|
4994
|
+
};
|
|
4995
|
+
url: '/v1/admin/review/allowlist';
|
|
4996
|
+
};
|
|
4997
|
+
export type AdminReviewAllowlistIndexErrors = {
|
|
4998
|
+
/**
|
|
4999
|
+
* Unauthorized
|
|
5000
|
+
*/
|
|
5001
|
+
401: Error401;
|
|
5002
|
+
/**
|
|
5003
|
+
* Forbidden
|
|
5004
|
+
*/
|
|
5005
|
+
403: Error403;
|
|
5006
|
+
/**
|
|
5007
|
+
* Too Many Requests
|
|
5008
|
+
*/
|
|
5009
|
+
429: Error429;
|
|
5010
|
+
/**
|
|
5011
|
+
* Internal Server Error
|
|
5012
|
+
*/
|
|
5013
|
+
500: Error500;
|
|
5014
|
+
};
|
|
5015
|
+
export type AdminReviewAllowlistIndexError = AdminReviewAllowlistIndexErrors[keyof AdminReviewAllowlistIndexErrors];
|
|
5016
|
+
export type AdminReviewAllowlistIndexResponses = {
|
|
5017
|
+
/**
|
|
5018
|
+
* OK
|
|
5019
|
+
*/
|
|
5020
|
+
200: Array<ReviewAllowlist>;
|
|
5021
|
+
};
|
|
5022
|
+
export type AdminReviewAllowlistIndexResponse = AdminReviewAllowlistIndexResponses[keyof AdminReviewAllowlistIndexResponses];
|
|
5023
|
+
export type AdminReviewAllowlistCreateData = {
|
|
5024
|
+
body: {
|
|
5025
|
+
/**
|
|
5026
|
+
* Check name to allowlist for
|
|
5027
|
+
*/
|
|
5028
|
+
checkName: string;
|
|
5029
|
+
/**
|
|
5030
|
+
* Media ID to allowlist
|
|
5031
|
+
*/
|
|
5032
|
+
mediaId: number;
|
|
5033
|
+
/**
|
|
5034
|
+
* Episode number (for episode-level checks)
|
|
5035
|
+
*/
|
|
5036
|
+
episodeNumber?: number;
|
|
5037
|
+
/**
|
|
5038
|
+
* Reason for allowlisting
|
|
5039
|
+
*/
|
|
5040
|
+
reason?: string;
|
|
5041
|
+
};
|
|
5042
|
+
path?: never;
|
|
5043
|
+
query?: never;
|
|
5044
|
+
url: '/v1/admin/review/allowlist';
|
|
5045
|
+
};
|
|
5046
|
+
export type AdminReviewAllowlistCreateErrors = {
|
|
5047
|
+
/**
|
|
5048
|
+
* Bad Request
|
|
5049
|
+
*/
|
|
5050
|
+
400: Error400;
|
|
5051
|
+
/**
|
|
5052
|
+
* Unauthorized
|
|
5053
|
+
*/
|
|
5054
|
+
401: Error401;
|
|
5055
|
+
/**
|
|
5056
|
+
* Forbidden
|
|
5057
|
+
*/
|
|
5058
|
+
403: Error403;
|
|
5059
|
+
/**
|
|
5060
|
+
* Conflict
|
|
5061
|
+
*/
|
|
5062
|
+
409: Error409;
|
|
5063
|
+
/**
|
|
5064
|
+
* Too Many Requests
|
|
5065
|
+
*/
|
|
5066
|
+
429: Error429;
|
|
5067
|
+
/**
|
|
5068
|
+
* Internal Server Error
|
|
5069
|
+
*/
|
|
5070
|
+
500: Error500;
|
|
5071
|
+
};
|
|
5072
|
+
export type AdminReviewAllowlistCreateError = AdminReviewAllowlistCreateErrors[keyof AdminReviewAllowlistCreateErrors];
|
|
5073
|
+
export type AdminReviewAllowlistCreateResponses = {
|
|
5074
|
+
/**
|
|
5075
|
+
* Added to allowlist
|
|
5076
|
+
*/
|
|
5077
|
+
201: ReviewAllowlist;
|
|
5078
|
+
};
|
|
5079
|
+
export type AdminReviewAllowlistCreateResponse = AdminReviewAllowlistCreateResponses[keyof AdminReviewAllowlistCreateResponses];
|
|
5080
|
+
export type AdminReviewAllowlistDestroyData = {
|
|
5081
|
+
body?: never;
|
|
5082
|
+
path: {
|
|
5083
|
+
/**
|
|
5084
|
+
* Allowlist entry ID
|
|
5085
|
+
*/
|
|
5086
|
+
id: number;
|
|
5087
|
+
};
|
|
5088
|
+
query?: never;
|
|
5089
|
+
url: '/v1/admin/review/allowlist/{id}';
|
|
5090
|
+
};
|
|
5091
|
+
export type AdminReviewAllowlistDestroyErrors = {
|
|
5092
|
+
/**
|
|
5093
|
+
* Unauthorized
|
|
5094
|
+
*/
|
|
5095
|
+
401: Error401;
|
|
5096
|
+
/**
|
|
5097
|
+
* Forbidden
|
|
5098
|
+
*/
|
|
5099
|
+
403: Error403;
|
|
5100
|
+
/**
|
|
5101
|
+
* Not Found
|
|
5102
|
+
*/
|
|
5103
|
+
404: Error404;
|
|
5104
|
+
/**
|
|
5105
|
+
* Too Many Requests
|
|
5106
|
+
*/
|
|
5107
|
+
429: Error429;
|
|
5108
|
+
/**
|
|
5109
|
+
* Internal Server Error
|
|
5110
|
+
*/
|
|
5111
|
+
500: Error500;
|
|
5112
|
+
};
|
|
5113
|
+
export type AdminReviewAllowlistDestroyError = AdminReviewAllowlistDestroyErrors[keyof AdminReviewAllowlistDestroyErrors];
|
|
5114
|
+
export type AdminReviewAllowlistDestroyResponses = {
|
|
5115
|
+
/**
|
|
5116
|
+
* Removed from allowlist
|
|
5117
|
+
*/
|
|
5118
|
+
204: void;
|
|
5119
|
+
};
|
|
5120
|
+
export type AdminReviewAllowlistDestroyResponse = AdminReviewAllowlistDestroyResponses[keyof AdminReviewAllowlistDestroyResponses];
|
|
5121
|
+
//# sourceMappingURL=types.gen.d.ts.map
|