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