@brigadasos/nadeshiko-sdk 1.0.0 → 1.4.0-dev.6f733b8
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/LICENSE +21 -0
- package/README.md +22 -125
- 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 +1356 -0
- package/dist/index.cjs.map +20 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1335 -6
- package/dist/index.js.map +20 -1
- 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 +60 -0
- package/dist/nadeshiko.gen.d.ts.map +1 -0
- package/dist/sdk.gen.d.ts +471 -0
- package/dist/sdk.gen.d.ts.map +1 -0
- package/dist/types.gen.d.ts +3976 -0
- package/dist/types.gen.d.ts.map +1 -0
- package/package.json +13 -20
- package/dist/generated/client/client.gen.d.ts.map +0 -1
- package/dist/generated/client/client.gen.js +0 -236
- package/dist/generated/client/client.gen.js.map +0 -1
- package/dist/generated/client/index.d.ts.map +0 -1
- package/dist/generated/client/index.js +0 -7
- package/dist/generated/client/index.js.map +0 -1
- package/dist/generated/client/types.gen.d.ts.map +0 -1
- package/dist/generated/client/types.gen.js +0 -3
- package/dist/generated/client/types.gen.js.map +0 -1
- package/dist/generated/client/utils.gen.d.ts.map +0 -1
- package/dist/generated/client/utils.gen.js +0 -234
- package/dist/generated/client/utils.gen.js.map +0 -1
- package/dist/generated/client.gen.d.ts.map +0 -1
- package/dist/generated/client.gen.js +0 -4
- package/dist/generated/client.gen.js.map +0 -1
- package/dist/generated/core/auth.gen.d.ts.map +0 -1
- package/dist/generated/core/auth.gen.js +0 -15
- package/dist/generated/core/auth.gen.js.map +0 -1
- package/dist/generated/core/bodySerializer.gen.d.ts.map +0 -1
- package/dist/generated/core/bodySerializer.gen.js +0 -58
- package/dist/generated/core/bodySerializer.gen.js.map +0 -1
- package/dist/generated/core/params.gen.d.ts.map +0 -1
- package/dist/generated/core/params.gen.js +0 -101
- package/dist/generated/core/params.gen.js.map +0 -1
- package/dist/generated/core/pathSerializer.gen.d.ts.map +0 -1
- package/dist/generated/core/pathSerializer.gen.js +0 -115
- package/dist/generated/core/pathSerializer.gen.js.map +0 -1
- package/dist/generated/core/queryKeySerializer.gen.d.ts.map +0 -1
- package/dist/generated/core/queryKeySerializer.gen.js +0 -100
- package/dist/generated/core/queryKeySerializer.gen.js.map +0 -1
- package/dist/generated/core/serverSentEvents.gen.d.ts.map +0 -1
- package/dist/generated/core/serverSentEvents.gen.js +0 -138
- package/dist/generated/core/serverSentEvents.gen.js.map +0 -1
- package/dist/generated/core/types.gen.d.ts.map +0 -1
- package/dist/generated/core/types.gen.js +0 -3
- package/dist/generated/core/types.gen.js.map +0 -1
- package/dist/generated/core/utils.gen.d.ts.map +0 -1
- package/dist/generated/core/utils.gen.js +0 -88
- package/dist/generated/core/utils.gen.js.map +0 -1
- package/dist/generated/index.d.ts +0 -3
- package/dist/generated/index.d.ts.map +0 -1
- package/dist/generated/index.js +0 -3
- package/dist/generated/index.js.map +0 -1
- package/dist/generated/sdk.gen.d.ts +0 -97
- package/dist/generated/sdk.gen.d.ts.map +0 -1
- package/dist/generated/sdk.gen.js +0 -132
- package/dist/generated/sdk.gen.js.map +0 -1
- package/dist/generated/types.gen.d.ts +0 -726
- package/dist/generated/types.gen.d.ts.map +0 -1
- package/dist/generated/types.gen.js +0 -3
- package/dist/generated/types.gen.js.map +0 -1
- package/dist/nadeshiko.d.ts +0 -70
- package/dist/nadeshiko.d.ts.map +0 -1
- package/dist/nadeshiko.js +0 -84
- package/dist/nadeshiko.js.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,3976 @@
|
|
|
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
|
+
* Error Response schema for all cases
|
|
225
|
+
*/
|
|
226
|
+
export type Error = {
|
|
227
|
+
/**
|
|
228
|
+
* Specific error code for programmatic handling
|
|
229
|
+
*/
|
|
230
|
+
code: string;
|
|
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: number;
|
|
251
|
+
/**
|
|
252
|
+
* Optional map of field names to their error messages (for validation errors)
|
|
253
|
+
*/
|
|
254
|
+
errors?: {
|
|
255
|
+
[key: string]: string;
|
|
256
|
+
};
|
|
257
|
+
};
|
|
258
|
+
export type SearchRequest = {
|
|
259
|
+
/**
|
|
260
|
+
* Text or sentence to search (null to search without query)
|
|
261
|
+
*/
|
|
262
|
+
query?: string;
|
|
263
|
+
/**
|
|
264
|
+
* Max amount of entries by response
|
|
265
|
+
*/
|
|
266
|
+
limit?: number;
|
|
267
|
+
/**
|
|
268
|
+
* Unique ID from segment (Useful to get a specific segment)
|
|
269
|
+
*/
|
|
270
|
+
uuid?: string;
|
|
271
|
+
/**
|
|
272
|
+
* Media category filter
|
|
273
|
+
*/
|
|
274
|
+
category?: Array<Category>;
|
|
275
|
+
/**
|
|
276
|
+
* Unique ID from media
|
|
277
|
+
*/
|
|
278
|
+
mediaId?: number;
|
|
279
|
+
/**
|
|
280
|
+
* Array of episodes to get
|
|
281
|
+
*/
|
|
282
|
+
episode?: Array<number>;
|
|
283
|
+
/**
|
|
284
|
+
* Non-negative integer seed for deterministic random sorting
|
|
285
|
+
*/
|
|
286
|
+
randomSeed?: number;
|
|
287
|
+
/**
|
|
288
|
+
* Order by amount of characters
|
|
289
|
+
*/
|
|
290
|
+
contentSort?: 'ASC' | 'DESC' | 'NONE' | 'TIME_ASC' | 'TIME_DESC' | 'RANDOM';
|
|
291
|
+
/**
|
|
292
|
+
* Current page of search
|
|
293
|
+
*/
|
|
294
|
+
cursor?: Array<number>;
|
|
295
|
+
/**
|
|
296
|
+
* Whether to use exact phrase matching
|
|
297
|
+
*/
|
|
298
|
+
exactMatch?: boolean;
|
|
299
|
+
/**
|
|
300
|
+
* Minimum content length
|
|
301
|
+
*/
|
|
302
|
+
minLength?: number;
|
|
303
|
+
/**
|
|
304
|
+
* Maximum content length
|
|
305
|
+
*/
|
|
306
|
+
maxLength?: number;
|
|
307
|
+
/**
|
|
308
|
+
* Media IDs to exclude from results
|
|
309
|
+
*/
|
|
310
|
+
excludedMediaIds?: Array<number>;
|
|
311
|
+
/**
|
|
312
|
+
* Segment status filter
|
|
313
|
+
*/
|
|
314
|
+
status?: Array<'DELETED' | 'ACTIVE' | 'SUSPENDED' | 'VERIFIED' | 'INVALID' | 'TOO_LONG'>;
|
|
315
|
+
/**
|
|
316
|
+
* Media filter with episodes
|
|
317
|
+
*/
|
|
318
|
+
media?: Array<{
|
|
319
|
+
mediaId: number;
|
|
320
|
+
/**
|
|
321
|
+
* Array of episode numbers
|
|
322
|
+
*/
|
|
323
|
+
episodes: Array<number>;
|
|
324
|
+
}>;
|
|
325
|
+
};
|
|
326
|
+
export type SearchResponse = {
|
|
327
|
+
results?: Array<SearchResult>;
|
|
328
|
+
pagination?: PaginationInfo;
|
|
329
|
+
/**
|
|
330
|
+
* Cursor for pagination
|
|
331
|
+
*/
|
|
332
|
+
cursor?: Array<number>;
|
|
333
|
+
};
|
|
334
|
+
export type SearchStatsRequest = {
|
|
335
|
+
/**
|
|
336
|
+
* Text or sentence to search
|
|
337
|
+
*/
|
|
338
|
+
query?: string;
|
|
339
|
+
/**
|
|
340
|
+
* Media category filter
|
|
341
|
+
*/
|
|
342
|
+
category?: Array<Category>;
|
|
343
|
+
/**
|
|
344
|
+
* Whether to use exact phrase matching
|
|
345
|
+
*/
|
|
346
|
+
exactMatch?: boolean;
|
|
347
|
+
/**
|
|
348
|
+
* Minimum content length
|
|
349
|
+
*/
|
|
350
|
+
minLength?: number;
|
|
351
|
+
/**
|
|
352
|
+
* Maximum content length
|
|
353
|
+
*/
|
|
354
|
+
maxLength?: number;
|
|
355
|
+
/**
|
|
356
|
+
* Media IDs to exclude from results
|
|
357
|
+
*/
|
|
358
|
+
excludedMediaIds?: Array<number>;
|
|
359
|
+
/**
|
|
360
|
+
* Restrict stats to these media IDs (for list-scoped stats)
|
|
361
|
+
*/
|
|
362
|
+
mediaIds?: Array<number>;
|
|
363
|
+
/**
|
|
364
|
+
* Segment status filter
|
|
365
|
+
*/
|
|
366
|
+
status?: Array<'DELETED' | 'ACTIVE' | 'SUSPENDED' | 'VERIFIED' | 'INVALID' | 'TOO_LONG'>;
|
|
367
|
+
};
|
|
368
|
+
/**
|
|
369
|
+
* Search result statistics grouped by media
|
|
370
|
+
*/
|
|
371
|
+
export type MediaSearchStats = {
|
|
372
|
+
/**
|
|
373
|
+
* Unique identifier for the media
|
|
374
|
+
*/
|
|
375
|
+
mediaId?: number;
|
|
376
|
+
category?: Category;
|
|
377
|
+
/**
|
|
378
|
+
* Romaji transliteration of the media name
|
|
379
|
+
*/
|
|
380
|
+
nameRomaji?: string;
|
|
381
|
+
/**
|
|
382
|
+
* English name of the media
|
|
383
|
+
*/
|
|
384
|
+
nameEn?: string;
|
|
385
|
+
/**
|
|
386
|
+
* Original Japanese name of the media
|
|
387
|
+
*/
|
|
388
|
+
nameJa?: string;
|
|
389
|
+
/**
|
|
390
|
+
* Total number of segments found for this media
|
|
391
|
+
*/
|
|
392
|
+
segmentCount?: number;
|
|
393
|
+
/**
|
|
394
|
+
* Mapping of episode numbers to segment hit counts
|
|
395
|
+
*/
|
|
396
|
+
episodeHits?: {
|
|
397
|
+
[key: string]: number;
|
|
398
|
+
};
|
|
399
|
+
};
|
|
400
|
+
/**
|
|
401
|
+
* Count of entries grouped by media category
|
|
402
|
+
*/
|
|
403
|
+
export type CategoryCount = {
|
|
404
|
+
category?: Category;
|
|
405
|
+
/**
|
|
406
|
+
* Number of entries in this category
|
|
407
|
+
*/
|
|
408
|
+
count?: number;
|
|
409
|
+
};
|
|
410
|
+
export type SearchStatsResponse = {
|
|
411
|
+
media?: Array<MediaSearchStats>;
|
|
412
|
+
categories?: Array<CategoryCount>;
|
|
413
|
+
};
|
|
414
|
+
export type SearchMultipleRequest = {
|
|
415
|
+
/**
|
|
416
|
+
* List of words to search for
|
|
417
|
+
*/
|
|
418
|
+
words: Array<string>;
|
|
419
|
+
/**
|
|
420
|
+
* Whether to use exact matching
|
|
421
|
+
*/
|
|
422
|
+
exactMatch?: boolean;
|
|
423
|
+
};
|
|
424
|
+
/**
|
|
425
|
+
* Media entry containing word matches
|
|
426
|
+
*/
|
|
427
|
+
export type WordMatchMedia = {
|
|
428
|
+
/**
|
|
429
|
+
* Unique identifier for the media
|
|
430
|
+
*/
|
|
431
|
+
mediaId?: number;
|
|
432
|
+
/**
|
|
433
|
+
* English name of the media
|
|
434
|
+
*/
|
|
435
|
+
nameEn?: string;
|
|
436
|
+
/**
|
|
437
|
+
* Original Japanese name of the media
|
|
438
|
+
*/
|
|
439
|
+
nameJa?: string;
|
|
440
|
+
/**
|
|
441
|
+
* Romaji transliteration of the media name
|
|
442
|
+
*/
|
|
443
|
+
nameRomaji?: string;
|
|
444
|
+
/**
|
|
445
|
+
* Number of times the word appears in this media
|
|
446
|
+
*/
|
|
447
|
+
matchCount?: number;
|
|
448
|
+
};
|
|
449
|
+
/**
|
|
450
|
+
* Word matching result with occurrences across media
|
|
451
|
+
*/
|
|
452
|
+
export type WordMatch = {
|
|
453
|
+
/**
|
|
454
|
+
* The word that was searched for
|
|
455
|
+
*/
|
|
456
|
+
word?: string;
|
|
457
|
+
/**
|
|
458
|
+
* Indicates whether the word was found in any segment
|
|
459
|
+
*/
|
|
460
|
+
isMatch?: boolean;
|
|
461
|
+
/**
|
|
462
|
+
* Total number of times this word appears across all media
|
|
463
|
+
*/
|
|
464
|
+
matchCount?: number;
|
|
465
|
+
/**
|
|
466
|
+
* List of media containing this word
|
|
467
|
+
*/
|
|
468
|
+
media?: Array<WordMatchMedia>;
|
|
469
|
+
};
|
|
470
|
+
export type SearchMultipleResponse = {
|
|
471
|
+
results?: Array<WordMatch>;
|
|
472
|
+
};
|
|
473
|
+
export type SegmentContextRequest = {
|
|
474
|
+
/**
|
|
475
|
+
* Media ID
|
|
476
|
+
*/
|
|
477
|
+
mediaId: number;
|
|
478
|
+
/**
|
|
479
|
+
* Episode number
|
|
480
|
+
*/
|
|
481
|
+
episodeNumber: number;
|
|
482
|
+
/**
|
|
483
|
+
* Segment position in the episode
|
|
484
|
+
*/
|
|
485
|
+
segmentPosition: number;
|
|
486
|
+
/**
|
|
487
|
+
* Number of surrounding segments to retrieve
|
|
488
|
+
*/
|
|
489
|
+
limit?: number;
|
|
490
|
+
};
|
|
491
|
+
export type SegmentContextResponse = {
|
|
492
|
+
segments: Array<SearchResult>;
|
|
493
|
+
};
|
|
494
|
+
/**
|
|
495
|
+
* Statistics about media and segments for browse view
|
|
496
|
+
*/
|
|
497
|
+
export type MediaBrowseStats = {
|
|
498
|
+
/**
|
|
499
|
+
* Number of media entries matching current search/filter
|
|
500
|
+
*/
|
|
501
|
+
filteredMediaCount?: number;
|
|
502
|
+
/**
|
|
503
|
+
* Number of segments in the filtered media
|
|
504
|
+
*/
|
|
505
|
+
filteredSegmentCount?: number;
|
|
506
|
+
/**
|
|
507
|
+
* Total number of media entries in the entire database
|
|
508
|
+
*/
|
|
509
|
+
totalMediaCount?: number;
|
|
510
|
+
/**
|
|
511
|
+
* Total number of segments in the entire database
|
|
512
|
+
*/
|
|
513
|
+
totalSegmentCount?: number;
|
|
514
|
+
};
|
|
515
|
+
/**
|
|
516
|
+
* Summary information about a media entry for browse/list views
|
|
517
|
+
*/
|
|
518
|
+
export type MediaSummary = {
|
|
519
|
+
/**
|
|
520
|
+
* Unique identifier for the media
|
|
521
|
+
*/
|
|
522
|
+
id: number;
|
|
523
|
+
/**
|
|
524
|
+
* AniList database ID for the media
|
|
525
|
+
*/
|
|
526
|
+
anilistId?: number;
|
|
527
|
+
/**
|
|
528
|
+
* TMDB (The Movie Database) ID for the media
|
|
529
|
+
*/
|
|
530
|
+
tmdbId?: number;
|
|
531
|
+
category?: Category;
|
|
532
|
+
/**
|
|
533
|
+
* Timestamp when the media entry was created in the database
|
|
534
|
+
*/
|
|
535
|
+
createdAt?: string;
|
|
536
|
+
/**
|
|
537
|
+
* Timestamp when the media entry was last updated
|
|
538
|
+
*/
|
|
539
|
+
updatedAt?: number;
|
|
540
|
+
/**
|
|
541
|
+
* Romaji transliteration of the media name
|
|
542
|
+
*/
|
|
543
|
+
nameRomaji?: string;
|
|
544
|
+
/**
|
|
545
|
+
* English name of the media
|
|
546
|
+
*/
|
|
547
|
+
nameEn?: string;
|
|
548
|
+
/**
|
|
549
|
+
* Original Japanese name of the media
|
|
550
|
+
*/
|
|
551
|
+
nameJa?: string;
|
|
552
|
+
/**
|
|
553
|
+
* Format of the media release (e.g., TV, OVA, Movie)
|
|
554
|
+
*/
|
|
555
|
+
airingFormat?: string;
|
|
556
|
+
/**
|
|
557
|
+
* Current airing status (FINISHED, RELEASING)
|
|
558
|
+
*/
|
|
559
|
+
airingStatus?: string;
|
|
560
|
+
/**
|
|
561
|
+
* Start date of the media (YYYY-MM-DD)
|
|
562
|
+
*/
|
|
563
|
+
startDate?: string;
|
|
564
|
+
/**
|
|
565
|
+
* End date of the media (null if unknown) (YYYY-MM-DD)
|
|
566
|
+
*/
|
|
567
|
+
endDate?: string;
|
|
568
|
+
/**
|
|
569
|
+
* Folder name used for storing media files
|
|
570
|
+
*/
|
|
571
|
+
folderMediaName?: string;
|
|
572
|
+
/**
|
|
573
|
+
* List of genres associated with the media
|
|
574
|
+
*/
|
|
575
|
+
genres?: Array<string>;
|
|
576
|
+
/**
|
|
577
|
+
* URL to the cover image
|
|
578
|
+
*/
|
|
579
|
+
coverUrl?: string;
|
|
580
|
+
/**
|
|
581
|
+
* URL to the banner image
|
|
582
|
+
*/
|
|
583
|
+
bannerUrl?: string;
|
|
584
|
+
/**
|
|
585
|
+
* Version identifier for the media entry
|
|
586
|
+
*/
|
|
587
|
+
version?: string;
|
|
588
|
+
/**
|
|
589
|
+
* Total number of subtitle segments available
|
|
590
|
+
*/
|
|
591
|
+
segmentCount?: number;
|
|
592
|
+
/**
|
|
593
|
+
* Total number of episodes available
|
|
594
|
+
*/
|
|
595
|
+
episodeCount?: number;
|
|
596
|
+
};
|
|
597
|
+
export type MediaBrowseResponse = {
|
|
598
|
+
stats?: MediaBrowseStats;
|
|
599
|
+
results?: Array<MediaSummary>;
|
|
600
|
+
/**
|
|
601
|
+
* Next cursor for pagination
|
|
602
|
+
*/
|
|
603
|
+
cursor?: number;
|
|
604
|
+
/**
|
|
605
|
+
* Whether more results are available
|
|
606
|
+
*/
|
|
607
|
+
hasMore?: boolean;
|
|
608
|
+
};
|
|
609
|
+
/**
|
|
610
|
+
* Japanese voice actor (seiyuu)
|
|
611
|
+
*/
|
|
612
|
+
export type Seiyuu = {
|
|
613
|
+
/**
|
|
614
|
+
* AniList staff ID
|
|
615
|
+
*/
|
|
616
|
+
id: number;
|
|
617
|
+
/**
|
|
618
|
+
* Japanese name of the voice actor
|
|
619
|
+
*/
|
|
620
|
+
nameJa: string;
|
|
621
|
+
/**
|
|
622
|
+
* English name of the voice actor
|
|
623
|
+
*/
|
|
624
|
+
nameEn: string;
|
|
625
|
+
/**
|
|
626
|
+
* Profile image URL
|
|
627
|
+
*/
|
|
628
|
+
imageUrl: string;
|
|
629
|
+
};
|
|
630
|
+
/**
|
|
631
|
+
* Anime character
|
|
632
|
+
*/
|
|
633
|
+
export type Character = {
|
|
634
|
+
/**
|
|
635
|
+
* AniList character ID
|
|
636
|
+
*/
|
|
637
|
+
id: number;
|
|
638
|
+
/**
|
|
639
|
+
* Japanese name of the character
|
|
640
|
+
*/
|
|
641
|
+
nameJa: string;
|
|
642
|
+
/**
|
|
643
|
+
* English name of the character
|
|
644
|
+
*/
|
|
645
|
+
nameEn: string;
|
|
646
|
+
/**
|
|
647
|
+
* Character image URL
|
|
648
|
+
*/
|
|
649
|
+
imageUrl: string;
|
|
650
|
+
seiyuu: Seiyuu;
|
|
651
|
+
};
|
|
652
|
+
/**
|
|
653
|
+
* Character appearing in a media with their role
|
|
654
|
+
*/
|
|
655
|
+
export type MediaCharacter = {
|
|
656
|
+
character: Character;
|
|
657
|
+
/**
|
|
658
|
+
* Character's role in the media
|
|
659
|
+
*/
|
|
660
|
+
role: 'MAIN' | 'SUPPORTING' | 'BACKGROUND';
|
|
661
|
+
};
|
|
662
|
+
/**
|
|
663
|
+
* Media collection list
|
|
664
|
+
*/
|
|
665
|
+
export type List = {
|
|
666
|
+
/**
|
|
667
|
+
* List ID
|
|
668
|
+
*/
|
|
669
|
+
id: number;
|
|
670
|
+
/**
|
|
671
|
+
* Name of the list
|
|
672
|
+
*/
|
|
673
|
+
name: string;
|
|
674
|
+
/**
|
|
675
|
+
* Type of list
|
|
676
|
+
*/
|
|
677
|
+
type: 'SERIES' | 'CUSTOM' | 'SEGMENT';
|
|
678
|
+
/**
|
|
679
|
+
* User ID who owns the list (1 = admin)
|
|
680
|
+
*/
|
|
681
|
+
userId: number;
|
|
682
|
+
/**
|
|
683
|
+
* Visibility of the list
|
|
684
|
+
*/
|
|
685
|
+
visibility: 'PUBLIC' | 'PRIVATE';
|
|
686
|
+
};
|
|
687
|
+
/**
|
|
688
|
+
* Media entry with full metadata
|
|
689
|
+
*/
|
|
690
|
+
export type Media = {
|
|
691
|
+
/**
|
|
692
|
+
* Unique identifier for the media
|
|
693
|
+
*/
|
|
694
|
+
id: number;
|
|
695
|
+
/**
|
|
696
|
+
* AniList database ID for the media
|
|
697
|
+
*/
|
|
698
|
+
anilistId: number;
|
|
699
|
+
/**
|
|
700
|
+
* Original Japanese name of the media
|
|
701
|
+
*/
|
|
702
|
+
nameJa: string;
|
|
703
|
+
/**
|
|
704
|
+
* Romaji transliteration of the media name
|
|
705
|
+
*/
|
|
706
|
+
nameRomaji: string;
|
|
707
|
+
/**
|
|
708
|
+
* English name of the media
|
|
709
|
+
*/
|
|
710
|
+
nameEn: string;
|
|
711
|
+
/**
|
|
712
|
+
* Format of the media release (e.g., TV, OVA, Movie)
|
|
713
|
+
*/
|
|
714
|
+
airingFormat: string;
|
|
715
|
+
/**
|
|
716
|
+
* Current airing status (FINISHED, RELEASING, NOT_YET_RELEASED, CANCELLED)
|
|
717
|
+
*/
|
|
718
|
+
airingStatus: string;
|
|
719
|
+
/**
|
|
720
|
+
* List of genres associated with the media
|
|
721
|
+
*/
|
|
722
|
+
genres: Array<string>;
|
|
723
|
+
/**
|
|
724
|
+
* Full URL to the cover image
|
|
725
|
+
*/
|
|
726
|
+
coverUrl: string;
|
|
727
|
+
/**
|
|
728
|
+
* Full URL to the banner image
|
|
729
|
+
*/
|
|
730
|
+
bannerUrl: string;
|
|
731
|
+
/**
|
|
732
|
+
* Start date of the media (first airing/release)
|
|
733
|
+
*/
|
|
734
|
+
startDate: string;
|
|
735
|
+
/**
|
|
736
|
+
* End date of the media (last airing/release)
|
|
737
|
+
*/
|
|
738
|
+
endDate?: string;
|
|
739
|
+
category: Category;
|
|
740
|
+
/**
|
|
741
|
+
* Total number of subtitle segments available
|
|
742
|
+
*/
|
|
743
|
+
segmentCount?: number;
|
|
744
|
+
/**
|
|
745
|
+
* Total number of episodes available
|
|
746
|
+
*/
|
|
747
|
+
episodeCount?: number;
|
|
748
|
+
/**
|
|
749
|
+
* Version identifier for the media entry
|
|
750
|
+
*/
|
|
751
|
+
version: string;
|
|
752
|
+
/**
|
|
753
|
+
* Animation studio that produced the media
|
|
754
|
+
*/
|
|
755
|
+
studio: string;
|
|
756
|
+
/**
|
|
757
|
+
* Airing season label for the media
|
|
758
|
+
*/
|
|
759
|
+
seasonName: string;
|
|
760
|
+
/**
|
|
761
|
+
* Airing year for the media
|
|
762
|
+
*/
|
|
763
|
+
seasonYear: number;
|
|
764
|
+
/**
|
|
765
|
+
* Characters appearing in the media with their voice actors
|
|
766
|
+
*/
|
|
767
|
+
characters?: Array<MediaCharacter>;
|
|
768
|
+
/**
|
|
769
|
+
* Lists that contain this media
|
|
770
|
+
*/
|
|
771
|
+
lists?: Array<List>;
|
|
772
|
+
};
|
|
773
|
+
export type MediaListResponse = {
|
|
774
|
+
data: Array<Media>;
|
|
775
|
+
/**
|
|
776
|
+
* Next cursor for pagination (undefined if no more results)
|
|
777
|
+
*/
|
|
778
|
+
cursor?: number;
|
|
779
|
+
/**
|
|
780
|
+
* Whether more results are available
|
|
781
|
+
*/
|
|
782
|
+
hasMoreResults: boolean;
|
|
783
|
+
};
|
|
784
|
+
/**
|
|
785
|
+
* Character data for creating/updating media
|
|
786
|
+
*/
|
|
787
|
+
export type CharacterInput = {
|
|
788
|
+
/**
|
|
789
|
+
* AniList character ID
|
|
790
|
+
*/
|
|
791
|
+
id: number;
|
|
792
|
+
/**
|
|
793
|
+
* Japanese name of the character
|
|
794
|
+
*/
|
|
795
|
+
nameJa: string;
|
|
796
|
+
/**
|
|
797
|
+
* English name of the character
|
|
798
|
+
*/
|
|
799
|
+
nameEn: string;
|
|
800
|
+
/**
|
|
801
|
+
* Character image URL
|
|
802
|
+
*/
|
|
803
|
+
imageUrl: string;
|
|
804
|
+
/**
|
|
805
|
+
* Character's role in the media
|
|
806
|
+
*/
|
|
807
|
+
role: 'MAIN' | 'SUPPORTING' | 'BACKGROUND';
|
|
808
|
+
/**
|
|
809
|
+
* AniList staff ID for the Japanese voice actor
|
|
810
|
+
*/
|
|
811
|
+
seiyuuId: number;
|
|
812
|
+
/**
|
|
813
|
+
* Japanese name of the voice actor
|
|
814
|
+
*/
|
|
815
|
+
seiyuuNameJa: string;
|
|
816
|
+
/**
|
|
817
|
+
* English name of the voice actor
|
|
818
|
+
*/
|
|
819
|
+
seiyuuNameEn: string;
|
|
820
|
+
/**
|
|
821
|
+
* Voice actor profile image URL
|
|
822
|
+
*/
|
|
823
|
+
seiyuuImageUrl: string;
|
|
824
|
+
};
|
|
825
|
+
/**
|
|
826
|
+
* List data for adding media to a list
|
|
827
|
+
*/
|
|
828
|
+
export type ListInput = {
|
|
829
|
+
/**
|
|
830
|
+
* Existing list ID (if adding to existing list)
|
|
831
|
+
*/
|
|
832
|
+
listId?: number;
|
|
833
|
+
/**
|
|
834
|
+
* Name for new list (if creating new list)
|
|
835
|
+
*/
|
|
836
|
+
listName?: string;
|
|
837
|
+
/**
|
|
838
|
+
* Type of list (if creating new list)
|
|
839
|
+
*/
|
|
840
|
+
listType?: 'SERIES' | 'CUSTOM';
|
|
841
|
+
/**
|
|
842
|
+
* Visibility of list (if creating new list)
|
|
843
|
+
*/
|
|
844
|
+
listVisibility?: 'PUBLIC' | 'PRIVATE';
|
|
845
|
+
/**
|
|
846
|
+
* Position/order of media in the list (1-indexed)
|
|
847
|
+
*/
|
|
848
|
+
position: number;
|
|
849
|
+
};
|
|
850
|
+
/**
|
|
851
|
+
* Request body for creating a new media entry
|
|
852
|
+
*/
|
|
853
|
+
export type MediaCreateRequest = {
|
|
854
|
+
/**
|
|
855
|
+
* AniList database ID for the media
|
|
856
|
+
*/
|
|
857
|
+
anilistId: number;
|
|
858
|
+
/**
|
|
859
|
+
* Original Japanese name of the media
|
|
860
|
+
*/
|
|
861
|
+
nameJa: string;
|
|
862
|
+
/**
|
|
863
|
+
* Romaji transliteration of the media name
|
|
864
|
+
*/
|
|
865
|
+
nameRomaji: string;
|
|
866
|
+
/**
|
|
867
|
+
* English name of the media
|
|
868
|
+
*/
|
|
869
|
+
nameEn: string;
|
|
870
|
+
/**
|
|
871
|
+
* Format of the media release (e.g., TV, OVA, Movie)
|
|
872
|
+
*/
|
|
873
|
+
airingFormat: string;
|
|
874
|
+
/**
|
|
875
|
+
* Current airing status (FINISHED, RELEASING, NOT_YET_RELEASED, CANCELLED)
|
|
876
|
+
*/
|
|
877
|
+
airingStatus: string;
|
|
878
|
+
/**
|
|
879
|
+
* List of genres associated with the media
|
|
880
|
+
*/
|
|
881
|
+
genres: Array<string>;
|
|
882
|
+
/**
|
|
883
|
+
* Storage backend for media assets
|
|
884
|
+
*/
|
|
885
|
+
storage: 'LOCAL' | 'R2';
|
|
886
|
+
/**
|
|
887
|
+
* Start date of the media (first airing/release)
|
|
888
|
+
*/
|
|
889
|
+
startDate: string;
|
|
890
|
+
/**
|
|
891
|
+
* End date of the media (last airing/release)
|
|
892
|
+
*/
|
|
893
|
+
endDate?: string;
|
|
894
|
+
/**
|
|
895
|
+
* Media category
|
|
896
|
+
*/
|
|
897
|
+
category: 'ANIME' | 'JDRAMA';
|
|
898
|
+
/**
|
|
899
|
+
* Version of the media-sub-splitter used
|
|
900
|
+
*/
|
|
901
|
+
version: string;
|
|
902
|
+
/**
|
|
903
|
+
* Hash salt used when generating the hash for the related media assets
|
|
904
|
+
*/
|
|
905
|
+
hashSalt: string;
|
|
906
|
+
/**
|
|
907
|
+
* Animation studio that produced the media
|
|
908
|
+
*/
|
|
909
|
+
studio: string;
|
|
910
|
+
/**
|
|
911
|
+
* Airing season label for the media
|
|
912
|
+
*/
|
|
913
|
+
seasonName: string;
|
|
914
|
+
/**
|
|
915
|
+
* Airing year for the media
|
|
916
|
+
*/
|
|
917
|
+
seasonYear: number;
|
|
918
|
+
/**
|
|
919
|
+
* List of characters appearing in the media with their voice actors
|
|
920
|
+
*/
|
|
921
|
+
characters?: Array<CharacterInput>;
|
|
922
|
+
/**
|
|
923
|
+
* Lists to add this media to (e.g., series, franchise)
|
|
924
|
+
*/
|
|
925
|
+
lists?: Array<ListInput>;
|
|
926
|
+
};
|
|
927
|
+
/**
|
|
928
|
+
* Request body for updating an existing media entry (all fields optional)
|
|
929
|
+
*/
|
|
930
|
+
export type MediaUpdateRequest = {
|
|
931
|
+
/**
|
|
932
|
+
* AniList database ID for the media
|
|
933
|
+
*/
|
|
934
|
+
anilistId?: number;
|
|
935
|
+
/**
|
|
936
|
+
* Original Japanese name of the media
|
|
937
|
+
*/
|
|
938
|
+
nameJa?: string;
|
|
939
|
+
/**
|
|
940
|
+
* Romaji transliteration of the media name
|
|
941
|
+
*/
|
|
942
|
+
nameRomaji?: string;
|
|
943
|
+
/**
|
|
944
|
+
* English name of the media
|
|
945
|
+
*/
|
|
946
|
+
nameEn?: string;
|
|
947
|
+
/**
|
|
948
|
+
* Format of the media release (e.g., TV, OVA, Movie)
|
|
949
|
+
*/
|
|
950
|
+
airingFormat?: string;
|
|
951
|
+
/**
|
|
952
|
+
* Current airing status (FINISHED, RELEASING, NOT_YET_RELEASED, CANCELLED)
|
|
953
|
+
*/
|
|
954
|
+
airingStatus?: string;
|
|
955
|
+
/**
|
|
956
|
+
* List of genres associated with the media
|
|
957
|
+
*/
|
|
958
|
+
genres?: Array<string>;
|
|
959
|
+
/**
|
|
960
|
+
* Storage backend for media assets
|
|
961
|
+
*/
|
|
962
|
+
storage?: 'LOCAL' | 'R2';
|
|
963
|
+
/**
|
|
964
|
+
* Start date of the media (first airing/release)
|
|
965
|
+
*/
|
|
966
|
+
startDate?: string;
|
|
967
|
+
/**
|
|
968
|
+
* End date of the media (last airing/release)
|
|
969
|
+
*/
|
|
970
|
+
endDate?: string;
|
|
971
|
+
/**
|
|
972
|
+
* Media category
|
|
973
|
+
*/
|
|
974
|
+
category?: 'ANIME' | 'JDRAMA';
|
|
975
|
+
/**
|
|
976
|
+
* Version of the media-sub-splitter used
|
|
977
|
+
*/
|
|
978
|
+
version?: string;
|
|
979
|
+
/**
|
|
980
|
+
* Hash salt used when generating the hash for the related media assets
|
|
981
|
+
*/
|
|
982
|
+
hashSalt?: string;
|
|
983
|
+
/**
|
|
984
|
+
* Animation studio that produced the media
|
|
985
|
+
*/
|
|
986
|
+
studio?: string;
|
|
987
|
+
/**
|
|
988
|
+
* Airing season label for the media
|
|
989
|
+
*/
|
|
990
|
+
seasonName?: string;
|
|
991
|
+
/**
|
|
992
|
+
* Airing year for the media
|
|
993
|
+
*/
|
|
994
|
+
seasonYear?: number;
|
|
995
|
+
/**
|
|
996
|
+
* List of characters appearing in the media with their voice actors
|
|
997
|
+
*/
|
|
998
|
+
characters?: Array<CharacterInput>;
|
|
999
|
+
/**
|
|
1000
|
+
* Lists to add this media to (e.g., series, franchise)
|
|
1001
|
+
*/
|
|
1002
|
+
lists?: Array<ListInput>;
|
|
1003
|
+
/**
|
|
1004
|
+
* Total number of subtitle segments available
|
|
1005
|
+
*/
|
|
1006
|
+
segmentCount?: number;
|
|
1007
|
+
};
|
|
1008
|
+
export type Episode = {
|
|
1009
|
+
/**
|
|
1010
|
+
* ID of the media this episode belongs to
|
|
1011
|
+
*/
|
|
1012
|
+
mediaId: number;
|
|
1013
|
+
/**
|
|
1014
|
+
* Episode number within the media
|
|
1015
|
+
*/
|
|
1016
|
+
episodeNumber: number;
|
|
1017
|
+
/**
|
|
1018
|
+
* AniList episode ID for external reference
|
|
1019
|
+
*/
|
|
1020
|
+
anilistEpisodeId?: number;
|
|
1021
|
+
/**
|
|
1022
|
+
* English title of the episode
|
|
1023
|
+
*/
|
|
1024
|
+
titleEn?: string;
|
|
1025
|
+
/**
|
|
1026
|
+
* Romanized title of the episode
|
|
1027
|
+
*/
|
|
1028
|
+
titleRomaji?: string;
|
|
1029
|
+
/**
|
|
1030
|
+
* Japanese title of the episode
|
|
1031
|
+
*/
|
|
1032
|
+
titleJa?: string;
|
|
1033
|
+
/**
|
|
1034
|
+
* Episode description or synopsis
|
|
1035
|
+
*/
|
|
1036
|
+
description?: string;
|
|
1037
|
+
/**
|
|
1038
|
+
* When the episode originally aired
|
|
1039
|
+
*/
|
|
1040
|
+
airedAt?: string;
|
|
1041
|
+
/**
|
|
1042
|
+
* Episode duration in seconds
|
|
1043
|
+
*/
|
|
1044
|
+
lengthSeconds?: number;
|
|
1045
|
+
/**
|
|
1046
|
+
* URL to episode thumbnail image
|
|
1047
|
+
*/
|
|
1048
|
+
thumbnailUrl?: string;
|
|
1049
|
+
/**
|
|
1050
|
+
* Number of segments in this episode
|
|
1051
|
+
*/
|
|
1052
|
+
segmentCount: number;
|
|
1053
|
+
};
|
|
1054
|
+
export type EpisodeListResponse = {
|
|
1055
|
+
/**
|
|
1056
|
+
* Array of episode objects
|
|
1057
|
+
*/
|
|
1058
|
+
data: Array<Episode>;
|
|
1059
|
+
/**
|
|
1060
|
+
* Cursor for pagination (last episode number in current page)
|
|
1061
|
+
*/
|
|
1062
|
+
cursor?: number;
|
|
1063
|
+
/**
|
|
1064
|
+
* Whether more results are available
|
|
1065
|
+
*/
|
|
1066
|
+
hasMore: boolean;
|
|
1067
|
+
};
|
|
1068
|
+
export type EpisodeCreateRequest = {
|
|
1069
|
+
/**
|
|
1070
|
+
* AniList episode ID for external reference
|
|
1071
|
+
*/
|
|
1072
|
+
anilistEpisodeId?: number;
|
|
1073
|
+
/**
|
|
1074
|
+
* English title of the episode
|
|
1075
|
+
*/
|
|
1076
|
+
titleEn?: string;
|
|
1077
|
+
/**
|
|
1078
|
+
* Romanized title of the episode
|
|
1079
|
+
*/
|
|
1080
|
+
titleRomaji?: string;
|
|
1081
|
+
/**
|
|
1082
|
+
* Japanese title of the episode
|
|
1083
|
+
*/
|
|
1084
|
+
titleJa?: string;
|
|
1085
|
+
/**
|
|
1086
|
+
* Episode description or synopsis
|
|
1087
|
+
*/
|
|
1088
|
+
description?: string;
|
|
1089
|
+
/**
|
|
1090
|
+
* When the episode originally aired
|
|
1091
|
+
*/
|
|
1092
|
+
airedAt?: string;
|
|
1093
|
+
/**
|
|
1094
|
+
* Episode duration in seconds
|
|
1095
|
+
*/
|
|
1096
|
+
lengthSeconds?: number;
|
|
1097
|
+
/**
|
|
1098
|
+
* URL to episode thumbnail image
|
|
1099
|
+
*/
|
|
1100
|
+
thumbnailUrl?: string;
|
|
1101
|
+
/**
|
|
1102
|
+
* Episode number within the media (must be unique for this media)
|
|
1103
|
+
*/
|
|
1104
|
+
episodeNumber: number;
|
|
1105
|
+
};
|
|
1106
|
+
/**
|
|
1107
|
+
* All fields are optional for partial updates
|
|
1108
|
+
*/
|
|
1109
|
+
export type EpisodeUpdateRequest = {
|
|
1110
|
+
/**
|
|
1111
|
+
* AniList episode ID for external reference
|
|
1112
|
+
*/
|
|
1113
|
+
anilistEpisodeId?: number;
|
|
1114
|
+
/**
|
|
1115
|
+
* English title of the episode
|
|
1116
|
+
*/
|
|
1117
|
+
titleEn?: string;
|
|
1118
|
+
/**
|
|
1119
|
+
* Romanized title of the episode
|
|
1120
|
+
*/
|
|
1121
|
+
titleRomaji?: string;
|
|
1122
|
+
/**
|
|
1123
|
+
* Japanese title of the episode
|
|
1124
|
+
*/
|
|
1125
|
+
titleJa?: string;
|
|
1126
|
+
/**
|
|
1127
|
+
* Episode description or synopsis
|
|
1128
|
+
*/
|
|
1129
|
+
description?: string;
|
|
1130
|
+
/**
|
|
1131
|
+
* When the episode originally aired
|
|
1132
|
+
*/
|
|
1133
|
+
airedAt?: string;
|
|
1134
|
+
/**
|
|
1135
|
+
* Episode duration in seconds
|
|
1136
|
+
*/
|
|
1137
|
+
lengthSeconds?: number;
|
|
1138
|
+
/**
|
|
1139
|
+
* URL to episode thumbnail image
|
|
1140
|
+
*/
|
|
1141
|
+
thumbnailUrl?: string;
|
|
1142
|
+
};
|
|
1143
|
+
/**
|
|
1144
|
+
* Japanese content with optional character count
|
|
1145
|
+
*/
|
|
1146
|
+
export type JapaneseContent = {
|
|
1147
|
+
/**
|
|
1148
|
+
* Original Japanese content
|
|
1149
|
+
*/
|
|
1150
|
+
content: string;
|
|
1151
|
+
/**
|
|
1152
|
+
* Number of characters in the Japanese content
|
|
1153
|
+
*/
|
|
1154
|
+
characterCount?: number;
|
|
1155
|
+
};
|
|
1156
|
+
/**
|
|
1157
|
+
* Translation content for a language
|
|
1158
|
+
*/
|
|
1159
|
+
export type TranslationContent = {
|
|
1160
|
+
/**
|
|
1161
|
+
* Translated content
|
|
1162
|
+
*/
|
|
1163
|
+
content?: string;
|
|
1164
|
+
/**
|
|
1165
|
+
* Whether the translation was machine-translated
|
|
1166
|
+
*/
|
|
1167
|
+
isMachineTranslated: boolean;
|
|
1168
|
+
};
|
|
1169
|
+
export type Segment = {
|
|
1170
|
+
/**
|
|
1171
|
+
* Auto-generated segment ID
|
|
1172
|
+
*/
|
|
1173
|
+
id: number;
|
|
1174
|
+
/**
|
|
1175
|
+
* Unique identifier for the segment
|
|
1176
|
+
*/
|
|
1177
|
+
uuid: string;
|
|
1178
|
+
/**
|
|
1179
|
+
* Position of the segment within the episode
|
|
1180
|
+
*/
|
|
1181
|
+
position: number;
|
|
1182
|
+
/**
|
|
1183
|
+
* Segment status
|
|
1184
|
+
*/
|
|
1185
|
+
status: 'DELETED' | 'ACTIVE' | 'SUSPENDED' | 'VERIFIED' | 'INVALID' | 'TOO_LONG';
|
|
1186
|
+
/**
|
|
1187
|
+
* Timestamp in H:MM:SS.ffffff format indicating when the segment starts
|
|
1188
|
+
*/
|
|
1189
|
+
startTime: string;
|
|
1190
|
+
/**
|
|
1191
|
+
* Timestamp in H:MM:SS.ffffff format indicating when the segment ends
|
|
1192
|
+
*/
|
|
1193
|
+
endTime: string;
|
|
1194
|
+
ja: JapaneseContent;
|
|
1195
|
+
en: TranslationContent;
|
|
1196
|
+
es: TranslationContent;
|
|
1197
|
+
/**
|
|
1198
|
+
* Whether the segment contains NSFW content
|
|
1199
|
+
*/
|
|
1200
|
+
isNsfw: boolean;
|
|
1201
|
+
/**
|
|
1202
|
+
* URL to segment screenshot/image (generated from storage + hashedId)
|
|
1203
|
+
*/
|
|
1204
|
+
imageUrl?: string;
|
|
1205
|
+
/**
|
|
1206
|
+
* URL to segment audio file (generated from storage + hashedId)
|
|
1207
|
+
*/
|
|
1208
|
+
audioUrl?: string;
|
|
1209
|
+
/**
|
|
1210
|
+
* URL to segment video file (generated from storage + hashedId)
|
|
1211
|
+
*/
|
|
1212
|
+
videoUrl?: string;
|
|
1213
|
+
/**
|
|
1214
|
+
* Episode number this segment belongs to
|
|
1215
|
+
*/
|
|
1216
|
+
episode: number;
|
|
1217
|
+
/**
|
|
1218
|
+
* Media ID this segment belongs to
|
|
1219
|
+
*/
|
|
1220
|
+
mediaId: number;
|
|
1221
|
+
/**
|
|
1222
|
+
* Storage backend for segment assets
|
|
1223
|
+
*/
|
|
1224
|
+
storage: 'LOCAL' | 'R2';
|
|
1225
|
+
/**
|
|
1226
|
+
* Hash identifier for the segment
|
|
1227
|
+
*/
|
|
1228
|
+
hashedId: string;
|
|
1229
|
+
/**
|
|
1230
|
+
* Morphological analysis of the Japanese content
|
|
1231
|
+
*/
|
|
1232
|
+
morphemes?: Array<Morpheme>;
|
|
1233
|
+
};
|
|
1234
|
+
export type SegmentListResponse = {
|
|
1235
|
+
/**
|
|
1236
|
+
* Array of segment objects
|
|
1237
|
+
*/
|
|
1238
|
+
data: Array<Segment>;
|
|
1239
|
+
/**
|
|
1240
|
+
* Cursor for pagination (last segment ID in current page)
|
|
1241
|
+
*/
|
|
1242
|
+
cursor?: number;
|
|
1243
|
+
/**
|
|
1244
|
+
* Whether more results are available
|
|
1245
|
+
*/
|
|
1246
|
+
hasMore: boolean;
|
|
1247
|
+
};
|
|
1248
|
+
export type SegmentCreateRequest = {
|
|
1249
|
+
/**
|
|
1250
|
+
* Position of the segment within the episode
|
|
1251
|
+
*/
|
|
1252
|
+
position: number;
|
|
1253
|
+
/**
|
|
1254
|
+
* Segment status
|
|
1255
|
+
*/
|
|
1256
|
+
status?: 'DELETED' | 'ACTIVE' | 'SUSPENDED' | 'VERIFIED' | 'INVALID' | 'TOO_LONG';
|
|
1257
|
+
/**
|
|
1258
|
+
* Timestamp in H:MM:SS.ffffff format indicating when the segment starts
|
|
1259
|
+
*/
|
|
1260
|
+
startTime: string;
|
|
1261
|
+
/**
|
|
1262
|
+
* Timestamp in H:MM:SS.ffffff format indicating when the segment ends
|
|
1263
|
+
*/
|
|
1264
|
+
endTime: string;
|
|
1265
|
+
ja: {
|
|
1266
|
+
/**
|
|
1267
|
+
* Original Japanese content of the segment
|
|
1268
|
+
*/
|
|
1269
|
+
content?: string;
|
|
1270
|
+
};
|
|
1271
|
+
es?: {
|
|
1272
|
+
/**
|
|
1273
|
+
* Spanish translation of the segment content
|
|
1274
|
+
*/
|
|
1275
|
+
content?: string;
|
|
1276
|
+
/**
|
|
1277
|
+
* Whether the Spanish translation was machine-translated
|
|
1278
|
+
*/
|
|
1279
|
+
isMachineTranslated?: boolean;
|
|
1280
|
+
};
|
|
1281
|
+
en?: {
|
|
1282
|
+
/**
|
|
1283
|
+
* English translation of the segment content
|
|
1284
|
+
*/
|
|
1285
|
+
content?: string;
|
|
1286
|
+
/**
|
|
1287
|
+
* Whether the English translation was machine-translated
|
|
1288
|
+
*/
|
|
1289
|
+
isMachineTranslated?: boolean;
|
|
1290
|
+
};
|
|
1291
|
+
/**
|
|
1292
|
+
* Whether the segment contains NSFW content
|
|
1293
|
+
*/
|
|
1294
|
+
isNsfw?: boolean;
|
|
1295
|
+
/**
|
|
1296
|
+
* Storage backend for segment assets
|
|
1297
|
+
*/
|
|
1298
|
+
storage: 'LOCAL' | 'R2';
|
|
1299
|
+
/**
|
|
1300
|
+
* Hash identifier for the segment (from segment JSON)
|
|
1301
|
+
*/
|
|
1302
|
+
hashedId: string;
|
|
1303
|
+
};
|
|
1304
|
+
/**
|
|
1305
|
+
* All fields are optional for partial updates
|
|
1306
|
+
*/
|
|
1307
|
+
export type SegmentUpdateRequest = {
|
|
1308
|
+
/**
|
|
1309
|
+
* Position of the segment within the episode
|
|
1310
|
+
*/
|
|
1311
|
+
position?: number;
|
|
1312
|
+
/**
|
|
1313
|
+
* Segment status
|
|
1314
|
+
*/
|
|
1315
|
+
status?: 'DELETED' | 'ACTIVE' | 'SUSPENDED' | 'VERIFIED' | 'INVALID' | 'TOO_LONG';
|
|
1316
|
+
/**
|
|
1317
|
+
* Timestamp in H:MM:SS.ffffff format indicating when the segment starts
|
|
1318
|
+
*/
|
|
1319
|
+
startTime?: string;
|
|
1320
|
+
/**
|
|
1321
|
+
* Timestamp in H:MM:SS.ffffff format indicating when the segment ends
|
|
1322
|
+
*/
|
|
1323
|
+
endTime?: string;
|
|
1324
|
+
ja?: {
|
|
1325
|
+
/**
|
|
1326
|
+
* Original Japanese content of the segment
|
|
1327
|
+
*/
|
|
1328
|
+
content?: string;
|
|
1329
|
+
};
|
|
1330
|
+
es?: {
|
|
1331
|
+
/**
|
|
1332
|
+
* Spanish translation of the segment content
|
|
1333
|
+
*/
|
|
1334
|
+
content?: string;
|
|
1335
|
+
/**
|
|
1336
|
+
* Whether the Spanish translation was machine-translated
|
|
1337
|
+
*/
|
|
1338
|
+
isMachineTranslated?: boolean;
|
|
1339
|
+
};
|
|
1340
|
+
en?: {
|
|
1341
|
+
/**
|
|
1342
|
+
* English translation of the segment content
|
|
1343
|
+
*/
|
|
1344
|
+
content?: string;
|
|
1345
|
+
/**
|
|
1346
|
+
* Whether the English translation was machine-translated
|
|
1347
|
+
*/
|
|
1348
|
+
isMachineTranslated?: boolean;
|
|
1349
|
+
};
|
|
1350
|
+
/**
|
|
1351
|
+
* Whether the segment contains NSFW content
|
|
1352
|
+
*/
|
|
1353
|
+
isNsfw?: boolean;
|
|
1354
|
+
/**
|
|
1355
|
+
* Storage backend for segment assets
|
|
1356
|
+
*/
|
|
1357
|
+
storage?: 'LOCAL' | 'R2';
|
|
1358
|
+
/**
|
|
1359
|
+
* Hash identifier for the segment (from segment JSON)
|
|
1360
|
+
*/
|
|
1361
|
+
hashedId?: string;
|
|
1362
|
+
};
|
|
1363
|
+
/**
|
|
1364
|
+
* Character with all media appearances
|
|
1365
|
+
*/
|
|
1366
|
+
export type CharacterWithMedia = {
|
|
1367
|
+
/**
|
|
1368
|
+
* AniList character ID
|
|
1369
|
+
*/
|
|
1370
|
+
id: number;
|
|
1371
|
+
/**
|
|
1372
|
+
* Japanese name of the character
|
|
1373
|
+
*/
|
|
1374
|
+
nameJa: string;
|
|
1375
|
+
/**
|
|
1376
|
+
* English name of the character
|
|
1377
|
+
*/
|
|
1378
|
+
nameEn: string;
|
|
1379
|
+
/**
|
|
1380
|
+
* Character image URL
|
|
1381
|
+
*/
|
|
1382
|
+
imageUrl: string;
|
|
1383
|
+
seiyuu: Seiyuu;
|
|
1384
|
+
/**
|
|
1385
|
+
* All media this character appears in
|
|
1386
|
+
*/
|
|
1387
|
+
mediaAppearances: Array<{
|
|
1388
|
+
media?: Media;
|
|
1389
|
+
/**
|
|
1390
|
+
* Character role in this media
|
|
1391
|
+
*/
|
|
1392
|
+
role?: 'MAIN' | 'SUPPORTING' | 'BACKGROUND';
|
|
1393
|
+
}>;
|
|
1394
|
+
};
|
|
1395
|
+
/**
|
|
1396
|
+
* Seiyuu with all voice acting roles
|
|
1397
|
+
*/
|
|
1398
|
+
export type SeiyuuWithRoles = {
|
|
1399
|
+
/**
|
|
1400
|
+
* AniList staff ID
|
|
1401
|
+
*/
|
|
1402
|
+
id: number;
|
|
1403
|
+
/**
|
|
1404
|
+
* Japanese name of the voice actor
|
|
1405
|
+
*/
|
|
1406
|
+
nameJa: string;
|
|
1407
|
+
/**
|
|
1408
|
+
* English name of the voice actor
|
|
1409
|
+
*/
|
|
1410
|
+
nameEn: string;
|
|
1411
|
+
/**
|
|
1412
|
+
* Profile image URL
|
|
1413
|
+
*/
|
|
1414
|
+
imageUrl: string;
|
|
1415
|
+
/**
|
|
1416
|
+
* All characters voiced by this seiyuu with their media appearances
|
|
1417
|
+
*/
|
|
1418
|
+
roles: Array<{
|
|
1419
|
+
character?: Character;
|
|
1420
|
+
media?: Media;
|
|
1421
|
+
/**
|
|
1422
|
+
* Character role in this media
|
|
1423
|
+
*/
|
|
1424
|
+
role?: 'MAIN' | 'SUPPORTING' | 'BACKGROUND';
|
|
1425
|
+
}>;
|
|
1426
|
+
};
|
|
1427
|
+
export type UserQuotaResponse = {
|
|
1428
|
+
/**
|
|
1429
|
+
* Number of API requests used in the current billing period.
|
|
1430
|
+
*/
|
|
1431
|
+
quotaUsed: number;
|
|
1432
|
+
/**
|
|
1433
|
+
* Maximum number of API requests allowed in the current billing period.
|
|
1434
|
+
*/
|
|
1435
|
+
quotaLimit: number;
|
|
1436
|
+
/**
|
|
1437
|
+
* Number of API requests remaining in the current billing period.
|
|
1438
|
+
*/
|
|
1439
|
+
quotaRemaining: number;
|
|
1440
|
+
/**
|
|
1441
|
+
* Current billing period in YYYYMM format.
|
|
1442
|
+
*/
|
|
1443
|
+
periodYyyymm: number;
|
|
1444
|
+
/**
|
|
1445
|
+
* Start of the current billing period (UTC).
|
|
1446
|
+
*/
|
|
1447
|
+
periodStart: string;
|
|
1448
|
+
/**
|
|
1449
|
+
* End of the current billing period (UTC).
|
|
1450
|
+
*/
|
|
1451
|
+
periodEnd: string;
|
|
1452
|
+
};
|
|
1453
|
+
export type Report = {
|
|
1454
|
+
/**
|
|
1455
|
+
* Report ID
|
|
1456
|
+
*/
|
|
1457
|
+
id: number;
|
|
1458
|
+
/**
|
|
1459
|
+
* Type of the reported entity
|
|
1460
|
+
*/
|
|
1461
|
+
reportType: 'SEGMENT' | 'MEDIA';
|
|
1462
|
+
/**
|
|
1463
|
+
* ID of the reported entity (segment UUID or media ID)
|
|
1464
|
+
*/
|
|
1465
|
+
targetId: string;
|
|
1466
|
+
/**
|
|
1467
|
+
* Reason for the report
|
|
1468
|
+
*/
|
|
1469
|
+
reason: 'WRONG_TRANSLATION' | 'WRONG_TIMING' | 'WRONG_AUDIO' | 'NSFW_NOT_TAGGED' | 'DUPLICATE_SEGMENT' | 'WRONG_METADATA' | 'MISSING_EPISODES' | 'WRONG_COVER_IMAGE' | 'INAPPROPRIATE_CONTENT' | 'OTHER';
|
|
1470
|
+
/**
|
|
1471
|
+
* Optional description with additional details
|
|
1472
|
+
*/
|
|
1473
|
+
description?: string;
|
|
1474
|
+
/**
|
|
1475
|
+
* Current status of the report
|
|
1476
|
+
*/
|
|
1477
|
+
status: 'PENDING' | 'ACCEPTED' | 'REJECTED' | 'RESOLVED';
|
|
1478
|
+
/**
|
|
1479
|
+
* Notes from the admin who reviewed the report
|
|
1480
|
+
*/
|
|
1481
|
+
adminNotes?: string;
|
|
1482
|
+
/**
|
|
1483
|
+
* When the report was resolved
|
|
1484
|
+
*/
|
|
1485
|
+
resolvedAt?: string;
|
|
1486
|
+
/**
|
|
1487
|
+
* ID of the user who submitted the report
|
|
1488
|
+
*/
|
|
1489
|
+
userId: number;
|
|
1490
|
+
/**
|
|
1491
|
+
* ID of the admin who resolved the report
|
|
1492
|
+
*/
|
|
1493
|
+
resolvedById?: number;
|
|
1494
|
+
/**
|
|
1495
|
+
* When the report was created
|
|
1496
|
+
*/
|
|
1497
|
+
createdAt: string;
|
|
1498
|
+
/**
|
|
1499
|
+
* When the report was last updated
|
|
1500
|
+
*/
|
|
1501
|
+
updatedAt?: string;
|
|
1502
|
+
};
|
|
1503
|
+
export type ReportListResponse = {
|
|
1504
|
+
data: Array<Report>;
|
|
1505
|
+
/**
|
|
1506
|
+
* Whether more results are available
|
|
1507
|
+
*/
|
|
1508
|
+
hasMore: boolean;
|
|
1509
|
+
/**
|
|
1510
|
+
* Cursor for next page
|
|
1511
|
+
*/
|
|
1512
|
+
cursor?: number;
|
|
1513
|
+
};
|
|
1514
|
+
export type CreateReportRequest = {
|
|
1515
|
+
/**
|
|
1516
|
+
* Type of the entity being reported
|
|
1517
|
+
*/
|
|
1518
|
+
reportType: 'SEGMENT' | 'MEDIA';
|
|
1519
|
+
/**
|
|
1520
|
+
* ID of the entity being reported (segment UUID or media ID as string)
|
|
1521
|
+
*/
|
|
1522
|
+
targetId: string;
|
|
1523
|
+
/**
|
|
1524
|
+
* Reason for the report
|
|
1525
|
+
*/
|
|
1526
|
+
reason: 'WRONG_TRANSLATION' | 'WRONG_TIMING' | 'WRONG_AUDIO' | 'NSFW_NOT_TAGGED' | 'DUPLICATE_SEGMENT' | 'WRONG_METADATA' | 'MISSING_EPISODES' | 'WRONG_COVER_IMAGE' | 'INAPPROPRIATE_CONTENT' | 'OTHER';
|
|
1527
|
+
/**
|
|
1528
|
+
* Optional description with additional details
|
|
1529
|
+
*/
|
|
1530
|
+
description?: string;
|
|
1531
|
+
};
|
|
1532
|
+
/**
|
|
1533
|
+
* Request body for creating a new standalone list
|
|
1534
|
+
*/
|
|
1535
|
+
export type ListCreateRequest = {
|
|
1536
|
+
/**
|
|
1537
|
+
* Name of the list
|
|
1538
|
+
*/
|
|
1539
|
+
name: string;
|
|
1540
|
+
/**
|
|
1541
|
+
* Type of list
|
|
1542
|
+
*/
|
|
1543
|
+
type?: 'SERIES' | 'CUSTOM' | 'SEGMENT';
|
|
1544
|
+
/**
|
|
1545
|
+
* User ID who owns the list (1 = admin)
|
|
1546
|
+
*/
|
|
1547
|
+
userId?: number;
|
|
1548
|
+
/**
|
|
1549
|
+
* Visibility of the list
|
|
1550
|
+
*/
|
|
1551
|
+
visibility?: 'PUBLIC' | 'PRIVATE';
|
|
1552
|
+
};
|
|
1553
|
+
/**
|
|
1554
|
+
* List with all media in order
|
|
1555
|
+
*/
|
|
1556
|
+
export type ListWithMedia = {
|
|
1557
|
+
/**
|
|
1558
|
+
* List ID
|
|
1559
|
+
*/
|
|
1560
|
+
id: number;
|
|
1561
|
+
/**
|
|
1562
|
+
* Name of the list
|
|
1563
|
+
*/
|
|
1564
|
+
name: string;
|
|
1565
|
+
/**
|
|
1566
|
+
* Type of list
|
|
1567
|
+
*/
|
|
1568
|
+
type: 'SERIES' | 'CUSTOM' | 'SEGMENT';
|
|
1569
|
+
/**
|
|
1570
|
+
* User ID who owns the list (1 = admin)
|
|
1571
|
+
*/
|
|
1572
|
+
userId: number;
|
|
1573
|
+
/**
|
|
1574
|
+
* Visibility of the list
|
|
1575
|
+
*/
|
|
1576
|
+
visibility: 'PUBLIC' | 'PRIVATE';
|
|
1577
|
+
/**
|
|
1578
|
+
* All media in the list, sorted by position
|
|
1579
|
+
*/
|
|
1580
|
+
media: Array<{
|
|
1581
|
+
/**
|
|
1582
|
+
* Position in the list (1-indexed)
|
|
1583
|
+
*/
|
|
1584
|
+
position?: number;
|
|
1585
|
+
media?: Media;
|
|
1586
|
+
}>;
|
|
1587
|
+
};
|
|
1588
|
+
/**
|
|
1589
|
+
* List with saved segments (search result format)
|
|
1590
|
+
*/
|
|
1591
|
+
export type ListWithSegments = {
|
|
1592
|
+
/**
|
|
1593
|
+
* List ID
|
|
1594
|
+
*/
|
|
1595
|
+
id: number;
|
|
1596
|
+
/**
|
|
1597
|
+
* Name of the list
|
|
1598
|
+
*/
|
|
1599
|
+
name: string;
|
|
1600
|
+
/**
|
|
1601
|
+
* Type of list
|
|
1602
|
+
*/
|
|
1603
|
+
type: 'SERIES' | 'CUSTOM' | 'SEGMENT';
|
|
1604
|
+
/**
|
|
1605
|
+
* User ID who owns the list
|
|
1606
|
+
*/
|
|
1607
|
+
userId: number;
|
|
1608
|
+
/**
|
|
1609
|
+
* Visibility of the list
|
|
1610
|
+
*/
|
|
1611
|
+
visibility: 'PUBLIC' | 'PRIVATE';
|
|
1612
|
+
/**
|
|
1613
|
+
* Saved segments with their search result data
|
|
1614
|
+
*/
|
|
1615
|
+
segments: Array<{
|
|
1616
|
+
/**
|
|
1617
|
+
* Position in the list
|
|
1618
|
+
*/
|
|
1619
|
+
position?: number;
|
|
1620
|
+
/**
|
|
1621
|
+
* User annotation
|
|
1622
|
+
*/
|
|
1623
|
+
note?: string;
|
|
1624
|
+
result?: SearchResult;
|
|
1625
|
+
}>;
|
|
1626
|
+
/**
|
|
1627
|
+
* Total number of segments in the list
|
|
1628
|
+
*/
|
|
1629
|
+
totalCount: number;
|
|
1630
|
+
};
|
|
1631
|
+
/**
|
|
1632
|
+
* Request to reindex segments from the database into Elasticsearch
|
|
1633
|
+
*/
|
|
1634
|
+
export type ReindexRequest = {
|
|
1635
|
+
/**
|
|
1636
|
+
* Array of media to reindex. If not provided, all media will be reindexed.
|
|
1637
|
+
* Each media can optionally specify which episodes to reindex.
|
|
1638
|
+
* If episodes are not specified for a media, all episodes will be reindexed.
|
|
1639
|
+
*/
|
|
1640
|
+
media?: Array<{
|
|
1641
|
+
/**
|
|
1642
|
+
* The ID of the media
|
|
1643
|
+
*/
|
|
1644
|
+
mediaId: number;
|
|
1645
|
+
/**
|
|
1646
|
+
* Optional array of episode numbers to reindex.
|
|
1647
|
+
* If not provided, all episodes for this media will be reindexed.
|
|
1648
|
+
*/
|
|
1649
|
+
episodes?: Array<number>;
|
|
1650
|
+
}>;
|
|
1651
|
+
};
|
|
1652
|
+
/**
|
|
1653
|
+
* Response from the reindex operation
|
|
1654
|
+
*/
|
|
1655
|
+
export type ReindexResponse = {
|
|
1656
|
+
/**
|
|
1657
|
+
* Whether the reindex operation completed successfully
|
|
1658
|
+
*/
|
|
1659
|
+
success?: boolean;
|
|
1660
|
+
/**
|
|
1661
|
+
* Human-readable message about the reindex operation
|
|
1662
|
+
*/
|
|
1663
|
+
message?: string;
|
|
1664
|
+
/**
|
|
1665
|
+
* Statistics about the reindex operation
|
|
1666
|
+
*/
|
|
1667
|
+
stats?: {
|
|
1668
|
+
/**
|
|
1669
|
+
* Total number of segments processed
|
|
1670
|
+
*/
|
|
1671
|
+
totalSegments?: number;
|
|
1672
|
+
/**
|
|
1673
|
+
* Number of segments successfully indexed
|
|
1674
|
+
*/
|
|
1675
|
+
successfulIndexes?: number;
|
|
1676
|
+
/**
|
|
1677
|
+
* Number of segments that failed to index
|
|
1678
|
+
*/
|
|
1679
|
+
failedIndexes?: number;
|
|
1680
|
+
/**
|
|
1681
|
+
* Number of media items processed
|
|
1682
|
+
*/
|
|
1683
|
+
mediaProcessed?: number;
|
|
1684
|
+
};
|
|
1685
|
+
/**
|
|
1686
|
+
* Array of errors that occurred during reindexing (if any)
|
|
1687
|
+
*/
|
|
1688
|
+
errors?: Array<{
|
|
1689
|
+
/**
|
|
1690
|
+
* ID of the segment that failed
|
|
1691
|
+
*/
|
|
1692
|
+
segmentId?: number;
|
|
1693
|
+
/**
|
|
1694
|
+
* Error message
|
|
1695
|
+
*/
|
|
1696
|
+
error?: string;
|
|
1697
|
+
}>;
|
|
1698
|
+
};
|
|
1699
|
+
export type AdminReport = Report & {
|
|
1700
|
+
/**
|
|
1701
|
+
* Number of reports for the same target
|
|
1702
|
+
*/
|
|
1703
|
+
reportCount: number;
|
|
1704
|
+
/**
|
|
1705
|
+
* Name of the user who submitted this report
|
|
1706
|
+
*/
|
|
1707
|
+
reporterName: string;
|
|
1708
|
+
};
|
|
1709
|
+
export type AdminReportListResponse = {
|
|
1710
|
+
data: Array<AdminReport>;
|
|
1711
|
+
/**
|
|
1712
|
+
* Whether more results are available
|
|
1713
|
+
*/
|
|
1714
|
+
hasMore: boolean;
|
|
1715
|
+
/**
|
|
1716
|
+
* Cursor for next page
|
|
1717
|
+
*/
|
|
1718
|
+
cursor?: number;
|
|
1719
|
+
};
|
|
1720
|
+
export type UpdateReportRequest = {
|
|
1721
|
+
/**
|
|
1722
|
+
* New status for the report
|
|
1723
|
+
*/
|
|
1724
|
+
status?: 'PENDING' | 'ACCEPTED' | 'REJECTED' | 'RESOLVED';
|
|
1725
|
+
/**
|
|
1726
|
+
* Admin notes about the report
|
|
1727
|
+
*/
|
|
1728
|
+
adminNotes?: string;
|
|
1729
|
+
};
|
|
1730
|
+
export type HealthCheckData = {
|
|
1731
|
+
body?: never;
|
|
1732
|
+
path?: never;
|
|
1733
|
+
query?: never;
|
|
1734
|
+
url: '/v1/health';
|
|
1735
|
+
};
|
|
1736
|
+
export type HealthCheckErrors = {
|
|
1737
|
+
/**
|
|
1738
|
+
* Unauthorized
|
|
1739
|
+
*/
|
|
1740
|
+
401: Error;
|
|
1741
|
+
/**
|
|
1742
|
+
* Forbidden
|
|
1743
|
+
*/
|
|
1744
|
+
403: Error;
|
|
1745
|
+
/**
|
|
1746
|
+
* Too Many Requests
|
|
1747
|
+
*/
|
|
1748
|
+
429: Error;
|
|
1749
|
+
/**
|
|
1750
|
+
* Internal Server Error
|
|
1751
|
+
*/
|
|
1752
|
+
500: Error;
|
|
1753
|
+
};
|
|
1754
|
+
export type HealthCheckError = HealthCheckErrors[keyof HealthCheckErrors];
|
|
1755
|
+
export type HealthCheckResponses = {
|
|
1756
|
+
/**
|
|
1757
|
+
* OK
|
|
1758
|
+
*/
|
|
1759
|
+
200: SearchHealthCheckResponse;
|
|
1760
|
+
};
|
|
1761
|
+
export type HealthCheckResponse = HealthCheckResponses[keyof HealthCheckResponses];
|
|
1762
|
+
export type SearchSegmentsData = {
|
|
1763
|
+
body?: SearchRequest;
|
|
1764
|
+
path?: never;
|
|
1765
|
+
query?: never;
|
|
1766
|
+
url: '/v1/search/segments';
|
|
1767
|
+
};
|
|
1768
|
+
export type SearchSegmentsErrors = {
|
|
1769
|
+
/**
|
|
1770
|
+
* Bad Request
|
|
1771
|
+
*/
|
|
1772
|
+
400: Error;
|
|
1773
|
+
/**
|
|
1774
|
+
* Unauthorized
|
|
1775
|
+
*/
|
|
1776
|
+
401: Error;
|
|
1777
|
+
/**
|
|
1778
|
+
* Forbidden
|
|
1779
|
+
*/
|
|
1780
|
+
403: Error;
|
|
1781
|
+
/**
|
|
1782
|
+
* Too Many Requests
|
|
1783
|
+
*/
|
|
1784
|
+
429: Error;
|
|
1785
|
+
/**
|
|
1786
|
+
* Internal Server Error
|
|
1787
|
+
*/
|
|
1788
|
+
500: Error;
|
|
1789
|
+
};
|
|
1790
|
+
export type SearchSegmentsError = SearchSegmentsErrors[keyof SearchSegmentsErrors];
|
|
1791
|
+
export type SearchSegmentsResponses = {
|
|
1792
|
+
/**
|
|
1793
|
+
* OK
|
|
1794
|
+
*/
|
|
1795
|
+
200: SearchResponse;
|
|
1796
|
+
};
|
|
1797
|
+
export type SearchSegmentsResponse = SearchSegmentsResponses[keyof SearchSegmentsResponses];
|
|
1798
|
+
export type GetSearchStatsData = {
|
|
1799
|
+
body?: SearchStatsRequest;
|
|
1800
|
+
path?: never;
|
|
1801
|
+
query?: never;
|
|
1802
|
+
url: '/v1/search/stats';
|
|
1803
|
+
};
|
|
1804
|
+
export type GetSearchStatsErrors = {
|
|
1805
|
+
/**
|
|
1806
|
+
* Bad Request
|
|
1807
|
+
*/
|
|
1808
|
+
400: Error;
|
|
1809
|
+
/**
|
|
1810
|
+
* Unauthorized
|
|
1811
|
+
*/
|
|
1812
|
+
401: Error;
|
|
1813
|
+
/**
|
|
1814
|
+
* Forbidden
|
|
1815
|
+
*/
|
|
1816
|
+
403: Error;
|
|
1817
|
+
/**
|
|
1818
|
+
* Too Many Requests
|
|
1819
|
+
*/
|
|
1820
|
+
429: Error;
|
|
1821
|
+
/**
|
|
1822
|
+
* Internal Server Error
|
|
1823
|
+
*/
|
|
1824
|
+
500: Error;
|
|
1825
|
+
};
|
|
1826
|
+
export type GetSearchStatsError = GetSearchStatsErrors[keyof GetSearchStatsErrors];
|
|
1827
|
+
export type GetSearchStatsResponses = {
|
|
1828
|
+
/**
|
|
1829
|
+
* OK
|
|
1830
|
+
*/
|
|
1831
|
+
200: SearchStatsResponse;
|
|
1832
|
+
};
|
|
1833
|
+
export type GetSearchStatsResponse = GetSearchStatsResponses[keyof GetSearchStatsResponses];
|
|
1834
|
+
export type SearchWordsData = {
|
|
1835
|
+
body: SearchMultipleRequest;
|
|
1836
|
+
path?: never;
|
|
1837
|
+
query?: never;
|
|
1838
|
+
url: '/v1/search/words';
|
|
1839
|
+
};
|
|
1840
|
+
export type SearchWordsErrors = {
|
|
1841
|
+
/**
|
|
1842
|
+
* Bad Request
|
|
1843
|
+
*/
|
|
1844
|
+
400: Error;
|
|
1845
|
+
/**
|
|
1846
|
+
* Unauthorized
|
|
1847
|
+
*/
|
|
1848
|
+
401: Error;
|
|
1849
|
+
/**
|
|
1850
|
+
* Forbidden
|
|
1851
|
+
*/
|
|
1852
|
+
403: Error;
|
|
1853
|
+
/**
|
|
1854
|
+
* Too Many Requests
|
|
1855
|
+
*/
|
|
1856
|
+
429: Error;
|
|
1857
|
+
/**
|
|
1858
|
+
* Internal Server Error
|
|
1859
|
+
*/
|
|
1860
|
+
500: Error;
|
|
1861
|
+
};
|
|
1862
|
+
export type SearchWordsError = SearchWordsErrors[keyof SearchWordsErrors];
|
|
1863
|
+
export type SearchWordsResponses = {
|
|
1864
|
+
/**
|
|
1865
|
+
* OK
|
|
1866
|
+
*/
|
|
1867
|
+
200: SearchMultipleResponse;
|
|
1868
|
+
};
|
|
1869
|
+
export type SearchWordsResponse = SearchWordsResponses[keyof SearchWordsResponses];
|
|
1870
|
+
export type GetSegmentContextData = {
|
|
1871
|
+
body: SegmentContextRequest;
|
|
1872
|
+
path?: never;
|
|
1873
|
+
query?: never;
|
|
1874
|
+
url: '/v1/search/context';
|
|
1875
|
+
};
|
|
1876
|
+
export type GetSegmentContextErrors = {
|
|
1877
|
+
/**
|
|
1878
|
+
* Bad Request
|
|
1879
|
+
*/
|
|
1880
|
+
400: Error;
|
|
1881
|
+
/**
|
|
1882
|
+
* Unauthorized
|
|
1883
|
+
*/
|
|
1884
|
+
401: Error;
|
|
1885
|
+
/**
|
|
1886
|
+
* Forbidden
|
|
1887
|
+
*/
|
|
1888
|
+
403: Error;
|
|
1889
|
+
/**
|
|
1890
|
+
* Not Found
|
|
1891
|
+
*/
|
|
1892
|
+
404: Error;
|
|
1893
|
+
/**
|
|
1894
|
+
* Too Many Requests
|
|
1895
|
+
*/
|
|
1896
|
+
429: Error;
|
|
1897
|
+
/**
|
|
1898
|
+
* Internal Server Error
|
|
1899
|
+
*/
|
|
1900
|
+
500: Error;
|
|
1901
|
+
};
|
|
1902
|
+
export type GetSegmentContextError = GetSegmentContextErrors[keyof GetSegmentContextErrors];
|
|
1903
|
+
export type GetSegmentContextResponses = {
|
|
1904
|
+
/**
|
|
1905
|
+
* OK
|
|
1906
|
+
*/
|
|
1907
|
+
200: SegmentContextResponse;
|
|
1908
|
+
};
|
|
1909
|
+
export type GetSegmentContextResponse = GetSegmentContextResponses[keyof GetSegmentContextResponses];
|
|
1910
|
+
export type BrowseMediaData = {
|
|
1911
|
+
body?: never;
|
|
1912
|
+
path?: never;
|
|
1913
|
+
query?: {
|
|
1914
|
+
/**
|
|
1915
|
+
* Number of results per page
|
|
1916
|
+
*/
|
|
1917
|
+
size?: number;
|
|
1918
|
+
/**
|
|
1919
|
+
* Pagination cursor offset
|
|
1920
|
+
*/
|
|
1921
|
+
cursor?: number;
|
|
1922
|
+
/**
|
|
1923
|
+
* Search query for filtering media
|
|
1924
|
+
*/
|
|
1925
|
+
query?: string;
|
|
1926
|
+
/**
|
|
1927
|
+
* Filter by media category
|
|
1928
|
+
*/
|
|
1929
|
+
type?: 'anime' | 'liveaction' | 'audiobook';
|
|
1930
|
+
};
|
|
1931
|
+
url: '/v1/media/browse';
|
|
1932
|
+
};
|
|
1933
|
+
export type BrowseMediaErrors = {
|
|
1934
|
+
/**
|
|
1935
|
+
* Unauthorized
|
|
1936
|
+
*/
|
|
1937
|
+
401: Error;
|
|
1938
|
+
/**
|
|
1939
|
+
* Forbidden
|
|
1940
|
+
*/
|
|
1941
|
+
403: Error;
|
|
1942
|
+
/**
|
|
1943
|
+
* Too Many Requests
|
|
1944
|
+
*/
|
|
1945
|
+
429: Error;
|
|
1946
|
+
/**
|
|
1947
|
+
* Internal Server Error
|
|
1948
|
+
*/
|
|
1949
|
+
500: Error;
|
|
1950
|
+
};
|
|
1951
|
+
export type BrowseMediaError = BrowseMediaErrors[keyof BrowseMediaErrors];
|
|
1952
|
+
export type BrowseMediaResponses = {
|
|
1953
|
+
/**
|
|
1954
|
+
* OK
|
|
1955
|
+
*/
|
|
1956
|
+
200: MediaBrowseResponse;
|
|
1957
|
+
};
|
|
1958
|
+
export type BrowseMediaResponse = BrowseMediaResponses[keyof BrowseMediaResponses];
|
|
1959
|
+
export type MediaIndexData = {
|
|
1960
|
+
body?: never;
|
|
1961
|
+
path?: never;
|
|
1962
|
+
query?: {
|
|
1963
|
+
/**
|
|
1964
|
+
* Number of results per page
|
|
1965
|
+
*/
|
|
1966
|
+
limit?: number;
|
|
1967
|
+
/**
|
|
1968
|
+
* Pagination cursor offset
|
|
1969
|
+
*/
|
|
1970
|
+
cursor?: number;
|
|
1971
|
+
/**
|
|
1972
|
+
* Filter by media category
|
|
1973
|
+
*/
|
|
1974
|
+
category?: 'ANIME' | 'JDRAMA';
|
|
1975
|
+
};
|
|
1976
|
+
url: '/v1/media';
|
|
1977
|
+
};
|
|
1978
|
+
export type MediaIndexErrors = {
|
|
1979
|
+
/**
|
|
1980
|
+
* Bad Request
|
|
1981
|
+
*/
|
|
1982
|
+
400: Error;
|
|
1983
|
+
/**
|
|
1984
|
+
* Unauthorized
|
|
1985
|
+
*/
|
|
1986
|
+
401: Error;
|
|
1987
|
+
/**
|
|
1988
|
+
* Forbidden
|
|
1989
|
+
*/
|
|
1990
|
+
403: Error;
|
|
1991
|
+
/**
|
|
1992
|
+
* Too Many Requests
|
|
1993
|
+
*/
|
|
1994
|
+
429: Error;
|
|
1995
|
+
/**
|
|
1996
|
+
* Internal Server Error
|
|
1997
|
+
*/
|
|
1998
|
+
500: Error;
|
|
1999
|
+
};
|
|
2000
|
+
export type MediaIndexError = MediaIndexErrors[keyof MediaIndexErrors];
|
|
2001
|
+
export type MediaIndexResponses = {
|
|
2002
|
+
/**
|
|
2003
|
+
* OK
|
|
2004
|
+
*/
|
|
2005
|
+
200: MediaListResponse;
|
|
2006
|
+
};
|
|
2007
|
+
export type MediaIndexResponse = MediaIndexResponses[keyof MediaIndexResponses];
|
|
2008
|
+
export type MediaCreateData = {
|
|
2009
|
+
body: MediaCreateRequest;
|
|
2010
|
+
path?: never;
|
|
2011
|
+
query?: never;
|
|
2012
|
+
url: '/v1/media';
|
|
2013
|
+
};
|
|
2014
|
+
export type MediaCreateErrors = {
|
|
2015
|
+
/**
|
|
2016
|
+
* Bad Request
|
|
2017
|
+
*/
|
|
2018
|
+
400: Error;
|
|
2019
|
+
/**
|
|
2020
|
+
* Unauthorized
|
|
2021
|
+
*/
|
|
2022
|
+
401: Error;
|
|
2023
|
+
/**
|
|
2024
|
+
* Forbidden
|
|
2025
|
+
*/
|
|
2026
|
+
403: Error;
|
|
2027
|
+
/**
|
|
2028
|
+
* Conflict
|
|
2029
|
+
*/
|
|
2030
|
+
409: Error;
|
|
2031
|
+
/**
|
|
2032
|
+
* Too Many Requests
|
|
2033
|
+
*/
|
|
2034
|
+
429: Error;
|
|
2035
|
+
/**
|
|
2036
|
+
* Internal Server Error
|
|
2037
|
+
*/
|
|
2038
|
+
500: Error;
|
|
2039
|
+
};
|
|
2040
|
+
export type MediaCreateError = MediaCreateErrors[keyof MediaCreateErrors];
|
|
2041
|
+
export type MediaCreateResponses = {
|
|
2042
|
+
/**
|
|
2043
|
+
* Created
|
|
2044
|
+
*/
|
|
2045
|
+
201: Media;
|
|
2046
|
+
};
|
|
2047
|
+
export type MediaCreateResponse = MediaCreateResponses[keyof MediaCreateResponses];
|
|
2048
|
+
export type MediaDestroyData = {
|
|
2049
|
+
body?: never;
|
|
2050
|
+
path: {
|
|
2051
|
+
/**
|
|
2052
|
+
* Media ID
|
|
2053
|
+
*/
|
|
2054
|
+
id: number;
|
|
2055
|
+
};
|
|
2056
|
+
query?: never;
|
|
2057
|
+
url: '/v1/media/{id}';
|
|
2058
|
+
};
|
|
2059
|
+
export type MediaDestroyErrors = {
|
|
2060
|
+
/**
|
|
2061
|
+
* Bad Request
|
|
2062
|
+
*/
|
|
2063
|
+
400: Error;
|
|
2064
|
+
/**
|
|
2065
|
+
* Unauthorized
|
|
2066
|
+
*/
|
|
2067
|
+
401: Error;
|
|
2068
|
+
/**
|
|
2069
|
+
* Forbidden
|
|
2070
|
+
*/
|
|
2071
|
+
403: Error;
|
|
2072
|
+
/**
|
|
2073
|
+
* Not Found
|
|
2074
|
+
*/
|
|
2075
|
+
404: Error;
|
|
2076
|
+
/**
|
|
2077
|
+
* Too Many Requests
|
|
2078
|
+
*/
|
|
2079
|
+
429: Error;
|
|
2080
|
+
/**
|
|
2081
|
+
* Internal Server Error
|
|
2082
|
+
*/
|
|
2083
|
+
500: Error;
|
|
2084
|
+
};
|
|
2085
|
+
export type MediaDestroyError = MediaDestroyErrors[keyof MediaDestroyErrors];
|
|
2086
|
+
export type MediaDestroyResponses = {
|
|
2087
|
+
/**
|
|
2088
|
+
* OK
|
|
2089
|
+
*/
|
|
2090
|
+
200: {
|
|
2091
|
+
message?: string;
|
|
2092
|
+
id?: number;
|
|
2093
|
+
};
|
|
2094
|
+
};
|
|
2095
|
+
export type MediaDestroyResponse = MediaDestroyResponses[keyof MediaDestroyResponses];
|
|
2096
|
+
export type MediaShowData = {
|
|
2097
|
+
body?: never;
|
|
2098
|
+
path: {
|
|
2099
|
+
/**
|
|
2100
|
+
* Media ID
|
|
2101
|
+
*/
|
|
2102
|
+
id: number;
|
|
2103
|
+
};
|
|
2104
|
+
query?: never;
|
|
2105
|
+
url: '/v1/media/{id}';
|
|
2106
|
+
};
|
|
2107
|
+
export type MediaShowErrors = {
|
|
2108
|
+
/**
|
|
2109
|
+
* Bad Request
|
|
2110
|
+
*/
|
|
2111
|
+
400: Error;
|
|
2112
|
+
/**
|
|
2113
|
+
* Unauthorized
|
|
2114
|
+
*/
|
|
2115
|
+
401: Error;
|
|
2116
|
+
/**
|
|
2117
|
+
* Forbidden
|
|
2118
|
+
*/
|
|
2119
|
+
403: Error;
|
|
2120
|
+
/**
|
|
2121
|
+
* Not Found
|
|
2122
|
+
*/
|
|
2123
|
+
404: Error;
|
|
2124
|
+
/**
|
|
2125
|
+
* Too Many Requests
|
|
2126
|
+
*/
|
|
2127
|
+
429: Error;
|
|
2128
|
+
/**
|
|
2129
|
+
* Internal Server Error
|
|
2130
|
+
*/
|
|
2131
|
+
500: Error;
|
|
2132
|
+
};
|
|
2133
|
+
export type MediaShowError = MediaShowErrors[keyof MediaShowErrors];
|
|
2134
|
+
export type MediaShowResponses = {
|
|
2135
|
+
/**
|
|
2136
|
+
* OK
|
|
2137
|
+
*/
|
|
2138
|
+
200: Media;
|
|
2139
|
+
};
|
|
2140
|
+
export type MediaShowResponse = MediaShowResponses[keyof MediaShowResponses];
|
|
2141
|
+
export type MediaUpdateData = {
|
|
2142
|
+
body: MediaUpdateRequest;
|
|
2143
|
+
path: {
|
|
2144
|
+
/**
|
|
2145
|
+
* Media ID
|
|
2146
|
+
*/
|
|
2147
|
+
id: number;
|
|
2148
|
+
};
|
|
2149
|
+
query?: never;
|
|
2150
|
+
url: '/v1/media/{id}';
|
|
2151
|
+
};
|
|
2152
|
+
export type MediaUpdateErrors = {
|
|
2153
|
+
/**
|
|
2154
|
+
* Bad Request
|
|
2155
|
+
*/
|
|
2156
|
+
400: Error;
|
|
2157
|
+
/**
|
|
2158
|
+
* Unauthorized
|
|
2159
|
+
*/
|
|
2160
|
+
401: Error;
|
|
2161
|
+
/**
|
|
2162
|
+
* Forbidden
|
|
2163
|
+
*/
|
|
2164
|
+
403: Error;
|
|
2165
|
+
/**
|
|
2166
|
+
* Not Found
|
|
2167
|
+
*/
|
|
2168
|
+
404: Error;
|
|
2169
|
+
/**
|
|
2170
|
+
* Too Many Requests
|
|
2171
|
+
*/
|
|
2172
|
+
429: Error;
|
|
2173
|
+
/**
|
|
2174
|
+
* Internal Server Error
|
|
2175
|
+
*/
|
|
2176
|
+
500: Error;
|
|
2177
|
+
};
|
|
2178
|
+
export type MediaUpdateError = MediaUpdateErrors[keyof MediaUpdateErrors];
|
|
2179
|
+
export type MediaUpdateResponses = {
|
|
2180
|
+
/**
|
|
2181
|
+
* OK
|
|
2182
|
+
*/
|
|
2183
|
+
200: Media;
|
|
2184
|
+
};
|
|
2185
|
+
export type MediaUpdateResponse = MediaUpdateResponses[keyof MediaUpdateResponses];
|
|
2186
|
+
export type EpisodeIndexData = {
|
|
2187
|
+
body?: never;
|
|
2188
|
+
path: {
|
|
2189
|
+
/**
|
|
2190
|
+
* ID of the media
|
|
2191
|
+
*/
|
|
2192
|
+
mediaId: number;
|
|
2193
|
+
};
|
|
2194
|
+
query?: {
|
|
2195
|
+
/**
|
|
2196
|
+
* Maximum number of episodes to return
|
|
2197
|
+
*/
|
|
2198
|
+
size?: number;
|
|
2199
|
+
/**
|
|
2200
|
+
* Episode number to start from (for pagination)
|
|
2201
|
+
*/
|
|
2202
|
+
cursor?: number;
|
|
2203
|
+
};
|
|
2204
|
+
url: '/v1/media/{mediaId}/episodes';
|
|
2205
|
+
};
|
|
2206
|
+
export type EpisodeIndexErrors = {
|
|
2207
|
+
/**
|
|
2208
|
+
* Bad Request
|
|
2209
|
+
*/
|
|
2210
|
+
400: Error;
|
|
2211
|
+
/**
|
|
2212
|
+
* Unauthorized
|
|
2213
|
+
*/
|
|
2214
|
+
401: Error;
|
|
2215
|
+
/**
|
|
2216
|
+
* Forbidden
|
|
2217
|
+
*/
|
|
2218
|
+
403: Error;
|
|
2219
|
+
/**
|
|
2220
|
+
* Not Found
|
|
2221
|
+
*/
|
|
2222
|
+
404: Error;
|
|
2223
|
+
/**
|
|
2224
|
+
* Too Many Requests
|
|
2225
|
+
*/
|
|
2226
|
+
429: Error;
|
|
2227
|
+
/**
|
|
2228
|
+
* Internal Server Error
|
|
2229
|
+
*/
|
|
2230
|
+
500: Error;
|
|
2231
|
+
};
|
|
2232
|
+
export type EpisodeIndexError = EpisodeIndexErrors[keyof EpisodeIndexErrors];
|
|
2233
|
+
export type EpisodeIndexResponses = {
|
|
2234
|
+
/**
|
|
2235
|
+
* Paginated list of episodes
|
|
2236
|
+
*/
|
|
2237
|
+
200: EpisodeListResponse;
|
|
2238
|
+
};
|
|
2239
|
+
export type EpisodeIndexResponse = EpisodeIndexResponses[keyof EpisodeIndexResponses];
|
|
2240
|
+
export type EpisodeCreateData = {
|
|
2241
|
+
body: EpisodeCreateRequest;
|
|
2242
|
+
path: {
|
|
2243
|
+
/**
|
|
2244
|
+
* ID of the media
|
|
2245
|
+
*/
|
|
2246
|
+
mediaId: number;
|
|
2247
|
+
};
|
|
2248
|
+
query?: never;
|
|
2249
|
+
url: '/v1/media/{mediaId}/episodes';
|
|
2250
|
+
};
|
|
2251
|
+
export type EpisodeCreateErrors = {
|
|
2252
|
+
/**
|
|
2253
|
+
* Bad Request
|
|
2254
|
+
*/
|
|
2255
|
+
400: Error;
|
|
2256
|
+
/**
|
|
2257
|
+
* Unauthorized
|
|
2258
|
+
*/
|
|
2259
|
+
401: Error;
|
|
2260
|
+
/**
|
|
2261
|
+
* Forbidden
|
|
2262
|
+
*/
|
|
2263
|
+
403: Error;
|
|
2264
|
+
/**
|
|
2265
|
+
* Not Found
|
|
2266
|
+
*/
|
|
2267
|
+
404: Error;
|
|
2268
|
+
/**
|
|
2269
|
+
* Conflict
|
|
2270
|
+
*/
|
|
2271
|
+
409: Error;
|
|
2272
|
+
/**
|
|
2273
|
+
* Too Many Requests
|
|
2274
|
+
*/
|
|
2275
|
+
429: Error;
|
|
2276
|
+
/**
|
|
2277
|
+
* Internal Server Error
|
|
2278
|
+
*/
|
|
2279
|
+
500: Error;
|
|
2280
|
+
};
|
|
2281
|
+
export type EpisodeCreateError = EpisodeCreateErrors[keyof EpisodeCreateErrors];
|
|
2282
|
+
export type EpisodeCreateResponses = {
|
|
2283
|
+
/**
|
|
2284
|
+
* Single episode response
|
|
2285
|
+
*/
|
|
2286
|
+
201: Episode;
|
|
2287
|
+
};
|
|
2288
|
+
export type EpisodeCreateResponse = EpisodeCreateResponses[keyof EpisodeCreateResponses];
|
|
2289
|
+
export type EpisodeDestroyData = {
|
|
2290
|
+
body?: never;
|
|
2291
|
+
path: {
|
|
2292
|
+
/**
|
|
2293
|
+
* ID of the media
|
|
2294
|
+
*/
|
|
2295
|
+
mediaId: number;
|
|
2296
|
+
/**
|
|
2297
|
+
* Episode number
|
|
2298
|
+
*/
|
|
2299
|
+
episodeNumber: number;
|
|
2300
|
+
};
|
|
2301
|
+
query?: never;
|
|
2302
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}';
|
|
2303
|
+
};
|
|
2304
|
+
export type EpisodeDestroyErrors = {
|
|
2305
|
+
/**
|
|
2306
|
+
* Bad Request
|
|
2307
|
+
*/
|
|
2308
|
+
400: Error;
|
|
2309
|
+
/**
|
|
2310
|
+
* Unauthorized
|
|
2311
|
+
*/
|
|
2312
|
+
401: Error;
|
|
2313
|
+
/**
|
|
2314
|
+
* Forbidden
|
|
2315
|
+
*/
|
|
2316
|
+
403: Error;
|
|
2317
|
+
/**
|
|
2318
|
+
* Not Found
|
|
2319
|
+
*/
|
|
2320
|
+
404: Error;
|
|
2321
|
+
/**
|
|
2322
|
+
* Too Many Requests
|
|
2323
|
+
*/
|
|
2324
|
+
429: Error;
|
|
2325
|
+
/**
|
|
2326
|
+
* Internal Server Error
|
|
2327
|
+
*/
|
|
2328
|
+
500: Error;
|
|
2329
|
+
};
|
|
2330
|
+
export type EpisodeDestroyError = EpisodeDestroyErrors[keyof EpisodeDestroyErrors];
|
|
2331
|
+
export type EpisodeDestroyResponses = {
|
|
2332
|
+
/**
|
|
2333
|
+
* Episode successfully deleted
|
|
2334
|
+
*/
|
|
2335
|
+
204: void;
|
|
2336
|
+
};
|
|
2337
|
+
export type EpisodeDestroyResponse = EpisodeDestroyResponses[keyof EpisodeDestroyResponses];
|
|
2338
|
+
export type EpisodeShowData = {
|
|
2339
|
+
body?: never;
|
|
2340
|
+
path: {
|
|
2341
|
+
/**
|
|
2342
|
+
* ID of the media
|
|
2343
|
+
*/
|
|
2344
|
+
mediaId: number;
|
|
2345
|
+
/**
|
|
2346
|
+
* Episode number
|
|
2347
|
+
*/
|
|
2348
|
+
episodeNumber: number;
|
|
2349
|
+
};
|
|
2350
|
+
query?: never;
|
|
2351
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}';
|
|
2352
|
+
};
|
|
2353
|
+
export type EpisodeShowErrors = {
|
|
2354
|
+
/**
|
|
2355
|
+
* Bad Request
|
|
2356
|
+
*/
|
|
2357
|
+
400: Error;
|
|
2358
|
+
/**
|
|
2359
|
+
* Unauthorized
|
|
2360
|
+
*/
|
|
2361
|
+
401: Error;
|
|
2362
|
+
/**
|
|
2363
|
+
* Forbidden
|
|
2364
|
+
*/
|
|
2365
|
+
403: Error;
|
|
2366
|
+
/**
|
|
2367
|
+
* Not Found
|
|
2368
|
+
*/
|
|
2369
|
+
404: Error;
|
|
2370
|
+
/**
|
|
2371
|
+
* Too Many Requests
|
|
2372
|
+
*/
|
|
2373
|
+
429: Error;
|
|
2374
|
+
/**
|
|
2375
|
+
* Internal Server Error
|
|
2376
|
+
*/
|
|
2377
|
+
500: Error;
|
|
2378
|
+
};
|
|
2379
|
+
export type EpisodeShowError = EpisodeShowErrors[keyof EpisodeShowErrors];
|
|
2380
|
+
export type EpisodeShowResponses = {
|
|
2381
|
+
/**
|
|
2382
|
+
* Single episode response
|
|
2383
|
+
*/
|
|
2384
|
+
200: Episode;
|
|
2385
|
+
};
|
|
2386
|
+
export type EpisodeShowResponse = EpisodeShowResponses[keyof EpisodeShowResponses];
|
|
2387
|
+
export type EpisodeUpdateData = {
|
|
2388
|
+
body: EpisodeUpdateRequest;
|
|
2389
|
+
path: {
|
|
2390
|
+
/**
|
|
2391
|
+
* ID of the media
|
|
2392
|
+
*/
|
|
2393
|
+
mediaId: number;
|
|
2394
|
+
/**
|
|
2395
|
+
* Episode number
|
|
2396
|
+
*/
|
|
2397
|
+
episodeNumber: number;
|
|
2398
|
+
};
|
|
2399
|
+
query?: never;
|
|
2400
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}';
|
|
2401
|
+
};
|
|
2402
|
+
export type EpisodeUpdateErrors = {
|
|
2403
|
+
/**
|
|
2404
|
+
* Bad Request
|
|
2405
|
+
*/
|
|
2406
|
+
400: Error;
|
|
2407
|
+
/**
|
|
2408
|
+
* Unauthorized
|
|
2409
|
+
*/
|
|
2410
|
+
401: Error;
|
|
2411
|
+
/**
|
|
2412
|
+
* Forbidden
|
|
2413
|
+
*/
|
|
2414
|
+
403: Error;
|
|
2415
|
+
/**
|
|
2416
|
+
* Not Found
|
|
2417
|
+
*/
|
|
2418
|
+
404: Error;
|
|
2419
|
+
/**
|
|
2420
|
+
* Too Many Requests
|
|
2421
|
+
*/
|
|
2422
|
+
429: Error;
|
|
2423
|
+
/**
|
|
2424
|
+
* Internal Server Error
|
|
2425
|
+
*/
|
|
2426
|
+
500: Error;
|
|
2427
|
+
};
|
|
2428
|
+
export type EpisodeUpdateError = EpisodeUpdateErrors[keyof EpisodeUpdateErrors];
|
|
2429
|
+
export type EpisodeUpdateResponses = {
|
|
2430
|
+
/**
|
|
2431
|
+
* Single episode response
|
|
2432
|
+
*/
|
|
2433
|
+
200: Episode;
|
|
2434
|
+
};
|
|
2435
|
+
export type EpisodeUpdateResponse = EpisodeUpdateResponses[keyof EpisodeUpdateResponses];
|
|
2436
|
+
export type SegmentIndexData = {
|
|
2437
|
+
body?: never;
|
|
2438
|
+
path: {
|
|
2439
|
+
/**
|
|
2440
|
+
* ID of the media
|
|
2441
|
+
*/
|
|
2442
|
+
mediaId: number;
|
|
2443
|
+
/**
|
|
2444
|
+
* Episode number
|
|
2445
|
+
*/
|
|
2446
|
+
episodeNumber: number;
|
|
2447
|
+
};
|
|
2448
|
+
query?: {
|
|
2449
|
+
/**
|
|
2450
|
+
* Maximum number of segments to return
|
|
2451
|
+
*/
|
|
2452
|
+
size?: number;
|
|
2453
|
+
/**
|
|
2454
|
+
* Segment ID to start from (for pagination)
|
|
2455
|
+
*/
|
|
2456
|
+
cursor?: number;
|
|
2457
|
+
};
|
|
2458
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments';
|
|
2459
|
+
};
|
|
2460
|
+
export type SegmentIndexErrors = {
|
|
2461
|
+
/**
|
|
2462
|
+
* Bad Request
|
|
2463
|
+
*/
|
|
2464
|
+
400: Error;
|
|
2465
|
+
/**
|
|
2466
|
+
* Unauthorized
|
|
2467
|
+
*/
|
|
2468
|
+
401: Error;
|
|
2469
|
+
/**
|
|
2470
|
+
* Forbidden
|
|
2471
|
+
*/
|
|
2472
|
+
403: Error;
|
|
2473
|
+
/**
|
|
2474
|
+
* Not Found
|
|
2475
|
+
*/
|
|
2476
|
+
404: Error;
|
|
2477
|
+
/**
|
|
2478
|
+
* Too Many Requests
|
|
2479
|
+
*/
|
|
2480
|
+
429: Error;
|
|
2481
|
+
/**
|
|
2482
|
+
* Internal Server Error
|
|
2483
|
+
*/
|
|
2484
|
+
500: Error;
|
|
2485
|
+
};
|
|
2486
|
+
export type SegmentIndexError = SegmentIndexErrors[keyof SegmentIndexErrors];
|
|
2487
|
+
export type SegmentIndexResponses = {
|
|
2488
|
+
/**
|
|
2489
|
+
* Paginated list of segments
|
|
2490
|
+
*/
|
|
2491
|
+
200: SegmentListResponse;
|
|
2492
|
+
};
|
|
2493
|
+
export type SegmentIndexResponse = SegmentIndexResponses[keyof SegmentIndexResponses];
|
|
2494
|
+
export type SegmentCreateData = {
|
|
2495
|
+
body: SegmentCreateRequest;
|
|
2496
|
+
path: {
|
|
2497
|
+
/**
|
|
2498
|
+
* ID of the media
|
|
2499
|
+
*/
|
|
2500
|
+
mediaId: number;
|
|
2501
|
+
/**
|
|
2502
|
+
* Episode number
|
|
2503
|
+
*/
|
|
2504
|
+
episodeNumber: number;
|
|
2505
|
+
};
|
|
2506
|
+
query?: never;
|
|
2507
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments';
|
|
2508
|
+
};
|
|
2509
|
+
export type SegmentCreateErrors = {
|
|
2510
|
+
/**
|
|
2511
|
+
* Bad Request
|
|
2512
|
+
*/
|
|
2513
|
+
400: Error;
|
|
2514
|
+
/**
|
|
2515
|
+
* Unauthorized
|
|
2516
|
+
*/
|
|
2517
|
+
401: Error;
|
|
2518
|
+
/**
|
|
2519
|
+
* Forbidden
|
|
2520
|
+
*/
|
|
2521
|
+
403: Error;
|
|
2522
|
+
/**
|
|
2523
|
+
* Not Found
|
|
2524
|
+
*/
|
|
2525
|
+
404: Error;
|
|
2526
|
+
/**
|
|
2527
|
+
* Conflict
|
|
2528
|
+
*/
|
|
2529
|
+
409: Error;
|
|
2530
|
+
/**
|
|
2531
|
+
* Too Many Requests
|
|
2532
|
+
*/
|
|
2533
|
+
429: Error;
|
|
2534
|
+
/**
|
|
2535
|
+
* Internal Server Error
|
|
2536
|
+
*/
|
|
2537
|
+
500: Error;
|
|
2538
|
+
};
|
|
2539
|
+
export type SegmentCreateError = SegmentCreateErrors[keyof SegmentCreateErrors];
|
|
2540
|
+
export type SegmentCreateResponses = {
|
|
2541
|
+
/**
|
|
2542
|
+
* Single segment response
|
|
2543
|
+
*/
|
|
2544
|
+
201: Segment;
|
|
2545
|
+
};
|
|
2546
|
+
export type SegmentCreateResponse = SegmentCreateResponses[keyof SegmentCreateResponses];
|
|
2547
|
+
export type SegmentDestroyData = {
|
|
2548
|
+
body?: never;
|
|
2549
|
+
path: {
|
|
2550
|
+
/**
|
|
2551
|
+
* ID of the media
|
|
2552
|
+
*/
|
|
2553
|
+
mediaId: number;
|
|
2554
|
+
/**
|
|
2555
|
+
* Episode number
|
|
2556
|
+
*/
|
|
2557
|
+
episodeNumber: number;
|
|
2558
|
+
/**
|
|
2559
|
+
* Segment ID
|
|
2560
|
+
*/
|
|
2561
|
+
id: number;
|
|
2562
|
+
};
|
|
2563
|
+
query?: never;
|
|
2564
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}';
|
|
2565
|
+
};
|
|
2566
|
+
export type SegmentDestroyErrors = {
|
|
2567
|
+
/**
|
|
2568
|
+
* Bad Request
|
|
2569
|
+
*/
|
|
2570
|
+
400: Error;
|
|
2571
|
+
/**
|
|
2572
|
+
* Unauthorized
|
|
2573
|
+
*/
|
|
2574
|
+
401: Error;
|
|
2575
|
+
/**
|
|
2576
|
+
* Forbidden
|
|
2577
|
+
*/
|
|
2578
|
+
403: Error;
|
|
2579
|
+
/**
|
|
2580
|
+
* Not Found
|
|
2581
|
+
*/
|
|
2582
|
+
404: Error;
|
|
2583
|
+
/**
|
|
2584
|
+
* Too Many Requests
|
|
2585
|
+
*/
|
|
2586
|
+
429: Error;
|
|
2587
|
+
/**
|
|
2588
|
+
* Internal Server Error
|
|
2589
|
+
*/
|
|
2590
|
+
500: Error;
|
|
2591
|
+
};
|
|
2592
|
+
export type SegmentDestroyError = SegmentDestroyErrors[keyof SegmentDestroyErrors];
|
|
2593
|
+
export type SegmentDestroyResponses = {
|
|
2594
|
+
/**
|
|
2595
|
+
* Segment successfully deleted
|
|
2596
|
+
*/
|
|
2597
|
+
204: void;
|
|
2598
|
+
};
|
|
2599
|
+
export type SegmentDestroyResponse = SegmentDestroyResponses[keyof SegmentDestroyResponses];
|
|
2600
|
+
export type SegmentShowData = {
|
|
2601
|
+
body?: never;
|
|
2602
|
+
path: {
|
|
2603
|
+
/**
|
|
2604
|
+
* ID of the media
|
|
2605
|
+
*/
|
|
2606
|
+
mediaId: number;
|
|
2607
|
+
/**
|
|
2608
|
+
* Episode number
|
|
2609
|
+
*/
|
|
2610
|
+
episodeNumber: number;
|
|
2611
|
+
/**
|
|
2612
|
+
* Segment ID
|
|
2613
|
+
*/
|
|
2614
|
+
id: number;
|
|
2615
|
+
};
|
|
2616
|
+
query?: never;
|
|
2617
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}';
|
|
2618
|
+
};
|
|
2619
|
+
export type SegmentShowErrors = {
|
|
2620
|
+
/**
|
|
2621
|
+
* Bad Request
|
|
2622
|
+
*/
|
|
2623
|
+
400: Error;
|
|
2624
|
+
/**
|
|
2625
|
+
* Unauthorized
|
|
2626
|
+
*/
|
|
2627
|
+
401: Error;
|
|
2628
|
+
/**
|
|
2629
|
+
* Forbidden
|
|
2630
|
+
*/
|
|
2631
|
+
403: Error;
|
|
2632
|
+
/**
|
|
2633
|
+
* Not Found
|
|
2634
|
+
*/
|
|
2635
|
+
404: Error;
|
|
2636
|
+
/**
|
|
2637
|
+
* Too Many Requests
|
|
2638
|
+
*/
|
|
2639
|
+
429: Error;
|
|
2640
|
+
/**
|
|
2641
|
+
* Internal Server Error
|
|
2642
|
+
*/
|
|
2643
|
+
500: Error;
|
|
2644
|
+
};
|
|
2645
|
+
export type SegmentShowError = SegmentShowErrors[keyof SegmentShowErrors];
|
|
2646
|
+
export type SegmentShowResponses = {
|
|
2647
|
+
/**
|
|
2648
|
+
* Single segment response
|
|
2649
|
+
*/
|
|
2650
|
+
200: Segment;
|
|
2651
|
+
};
|
|
2652
|
+
export type SegmentShowResponse = SegmentShowResponses[keyof SegmentShowResponses];
|
|
2653
|
+
export type SegmentUpdateData = {
|
|
2654
|
+
body: SegmentUpdateRequest;
|
|
2655
|
+
path: {
|
|
2656
|
+
/**
|
|
2657
|
+
* ID of the media
|
|
2658
|
+
*/
|
|
2659
|
+
mediaId: number;
|
|
2660
|
+
/**
|
|
2661
|
+
* Episode number
|
|
2662
|
+
*/
|
|
2663
|
+
episodeNumber: number;
|
|
2664
|
+
/**
|
|
2665
|
+
* Segment ID
|
|
2666
|
+
*/
|
|
2667
|
+
id: number;
|
|
2668
|
+
};
|
|
2669
|
+
query?: never;
|
|
2670
|
+
url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}';
|
|
2671
|
+
};
|
|
2672
|
+
export type SegmentUpdateErrors = {
|
|
2673
|
+
/**
|
|
2674
|
+
* Bad Request
|
|
2675
|
+
*/
|
|
2676
|
+
400: Error;
|
|
2677
|
+
/**
|
|
2678
|
+
* Unauthorized
|
|
2679
|
+
*/
|
|
2680
|
+
401: Error;
|
|
2681
|
+
/**
|
|
2682
|
+
* Forbidden
|
|
2683
|
+
*/
|
|
2684
|
+
403: Error;
|
|
2685
|
+
/**
|
|
2686
|
+
* Not Found
|
|
2687
|
+
*/
|
|
2688
|
+
404: Error;
|
|
2689
|
+
/**
|
|
2690
|
+
* Too Many Requests
|
|
2691
|
+
*/
|
|
2692
|
+
429: Error;
|
|
2693
|
+
/**
|
|
2694
|
+
* Internal Server Error
|
|
2695
|
+
*/
|
|
2696
|
+
500: Error;
|
|
2697
|
+
};
|
|
2698
|
+
export type SegmentUpdateError = SegmentUpdateErrors[keyof SegmentUpdateErrors];
|
|
2699
|
+
export type SegmentUpdateResponses = {
|
|
2700
|
+
/**
|
|
2701
|
+
* Single segment response
|
|
2702
|
+
*/
|
|
2703
|
+
200: Segment;
|
|
2704
|
+
};
|
|
2705
|
+
export type SegmentUpdateResponse = SegmentUpdateResponses[keyof SegmentUpdateResponses];
|
|
2706
|
+
export type SegmentShowByUuidData = {
|
|
2707
|
+
body?: never;
|
|
2708
|
+
path: {
|
|
2709
|
+
/**
|
|
2710
|
+
* Segment UUID
|
|
2711
|
+
*/
|
|
2712
|
+
uuid: string;
|
|
2713
|
+
};
|
|
2714
|
+
query?: never;
|
|
2715
|
+
url: '/v1/media/segments/{uuid}';
|
|
2716
|
+
};
|
|
2717
|
+
export type SegmentShowByUuidErrors = {
|
|
2718
|
+
/**
|
|
2719
|
+
* Bad Request
|
|
2720
|
+
*/
|
|
2721
|
+
400: Error;
|
|
2722
|
+
/**
|
|
2723
|
+
* Unauthorized
|
|
2724
|
+
*/
|
|
2725
|
+
401: Error;
|
|
2726
|
+
/**
|
|
2727
|
+
* Forbidden
|
|
2728
|
+
*/
|
|
2729
|
+
403: Error;
|
|
2730
|
+
/**
|
|
2731
|
+
* Not Found
|
|
2732
|
+
*/
|
|
2733
|
+
404: Error;
|
|
2734
|
+
/**
|
|
2735
|
+
* Too Many Requests
|
|
2736
|
+
*/
|
|
2737
|
+
429: Error;
|
|
2738
|
+
/**
|
|
2739
|
+
* Internal Server Error
|
|
2740
|
+
*/
|
|
2741
|
+
500: Error;
|
|
2742
|
+
};
|
|
2743
|
+
export type SegmentShowByUuidError = SegmentShowByUuidErrors[keyof SegmentShowByUuidErrors];
|
|
2744
|
+
export type SegmentShowByUuidResponses = {
|
|
2745
|
+
200: Segment;
|
|
2746
|
+
};
|
|
2747
|
+
export type SegmentShowByUuidResponse = SegmentShowByUuidResponses[keyof SegmentShowByUuidResponses];
|
|
2748
|
+
export type CharacterShowData = {
|
|
2749
|
+
body?: never;
|
|
2750
|
+
path: {
|
|
2751
|
+
/**
|
|
2752
|
+
* AniList character ID
|
|
2753
|
+
*/
|
|
2754
|
+
id: number;
|
|
2755
|
+
};
|
|
2756
|
+
query?: never;
|
|
2757
|
+
url: '/v1/media/characters/{id}';
|
|
2758
|
+
};
|
|
2759
|
+
export type CharacterShowErrors = {
|
|
2760
|
+
/**
|
|
2761
|
+
* Bad Request
|
|
2762
|
+
*/
|
|
2763
|
+
400: Error;
|
|
2764
|
+
/**
|
|
2765
|
+
* Unauthorized
|
|
2766
|
+
*/
|
|
2767
|
+
401: Error;
|
|
2768
|
+
/**
|
|
2769
|
+
* Forbidden
|
|
2770
|
+
*/
|
|
2771
|
+
403: Error;
|
|
2772
|
+
/**
|
|
2773
|
+
* Not Found
|
|
2774
|
+
*/
|
|
2775
|
+
404: Error;
|
|
2776
|
+
/**
|
|
2777
|
+
* Too Many Requests
|
|
2778
|
+
*/
|
|
2779
|
+
429: Error;
|
|
2780
|
+
/**
|
|
2781
|
+
* Internal Server Error
|
|
2782
|
+
*/
|
|
2783
|
+
500: Error;
|
|
2784
|
+
};
|
|
2785
|
+
export type CharacterShowError = CharacterShowErrors[keyof CharacterShowErrors];
|
|
2786
|
+
export type CharacterShowResponses = {
|
|
2787
|
+
/**
|
|
2788
|
+
* OK
|
|
2789
|
+
*/
|
|
2790
|
+
200: CharacterWithMedia;
|
|
2791
|
+
};
|
|
2792
|
+
export type CharacterShowResponse = CharacterShowResponses[keyof CharacterShowResponses];
|
|
2793
|
+
export type SeiyuuShowData = {
|
|
2794
|
+
body?: never;
|
|
2795
|
+
path: {
|
|
2796
|
+
/**
|
|
2797
|
+
* AniList staff ID
|
|
2798
|
+
*/
|
|
2799
|
+
id: number;
|
|
2800
|
+
};
|
|
2801
|
+
query?: never;
|
|
2802
|
+
url: '/v1/media/seiyuu/{id}';
|
|
2803
|
+
};
|
|
2804
|
+
export type SeiyuuShowErrors = {
|
|
2805
|
+
/**
|
|
2806
|
+
* Bad Request
|
|
2807
|
+
*/
|
|
2808
|
+
400: Error;
|
|
2809
|
+
/**
|
|
2810
|
+
* Unauthorized
|
|
2811
|
+
*/
|
|
2812
|
+
401: Error;
|
|
2813
|
+
/**
|
|
2814
|
+
* Forbidden
|
|
2815
|
+
*/
|
|
2816
|
+
403: Error;
|
|
2817
|
+
/**
|
|
2818
|
+
* Not Found
|
|
2819
|
+
*/
|
|
2820
|
+
404: Error;
|
|
2821
|
+
/**
|
|
2822
|
+
* Too Many Requests
|
|
2823
|
+
*/
|
|
2824
|
+
429: Error;
|
|
2825
|
+
/**
|
|
2826
|
+
* Internal Server Error
|
|
2827
|
+
*/
|
|
2828
|
+
500: Error;
|
|
2829
|
+
};
|
|
2830
|
+
export type SeiyuuShowError = SeiyuuShowErrors[keyof SeiyuuShowErrors];
|
|
2831
|
+
export type SeiyuuShowResponses = {
|
|
2832
|
+
/**
|
|
2833
|
+
* OK
|
|
2834
|
+
*/
|
|
2835
|
+
200: SeiyuuWithRoles;
|
|
2836
|
+
};
|
|
2837
|
+
export type SeiyuuShowResponse = SeiyuuShowResponses[keyof SeiyuuShowResponses];
|
|
2838
|
+
export type GetUserQuotaData = {
|
|
2839
|
+
body?: never;
|
|
2840
|
+
path?: never;
|
|
2841
|
+
query?: never;
|
|
2842
|
+
url: '/v1/user/quota';
|
|
2843
|
+
};
|
|
2844
|
+
export type GetUserQuotaErrors = {
|
|
2845
|
+
/**
|
|
2846
|
+
* Unauthorized
|
|
2847
|
+
*/
|
|
2848
|
+
401: Error;
|
|
2849
|
+
/**
|
|
2850
|
+
* Internal Server Error
|
|
2851
|
+
*/
|
|
2852
|
+
500: Error;
|
|
2853
|
+
};
|
|
2854
|
+
export type GetUserQuotaError = GetUserQuotaErrors[keyof GetUserQuotaErrors];
|
|
2855
|
+
export type GetUserQuotaResponses = {
|
|
2856
|
+
/**
|
|
2857
|
+
* OK
|
|
2858
|
+
*/
|
|
2859
|
+
200: UserQuotaResponse;
|
|
2860
|
+
};
|
|
2861
|
+
export type GetUserQuotaResponse = GetUserQuotaResponses[keyof GetUserQuotaResponses];
|
|
2862
|
+
export type GetUserReportsData = {
|
|
2863
|
+
body?: never;
|
|
2864
|
+
path?: never;
|
|
2865
|
+
query?: {
|
|
2866
|
+
/**
|
|
2867
|
+
* Cursor for pagination (report ID to start after)
|
|
2868
|
+
*/
|
|
2869
|
+
cursor?: number;
|
|
2870
|
+
/**
|
|
2871
|
+
* Number of results per page
|
|
2872
|
+
*/
|
|
2873
|
+
size?: number;
|
|
2874
|
+
/**
|
|
2875
|
+
* Filter by report status
|
|
2876
|
+
*/
|
|
2877
|
+
status?: 'PENDING' | 'ACCEPTED' | 'REJECTED' | 'RESOLVED';
|
|
2878
|
+
};
|
|
2879
|
+
url: '/v1/user/reports';
|
|
2880
|
+
};
|
|
2881
|
+
export type GetUserReportsErrors = {
|
|
2882
|
+
/**
|
|
2883
|
+
* Unauthorized
|
|
2884
|
+
*/
|
|
2885
|
+
401: Error;
|
|
2886
|
+
/**
|
|
2887
|
+
* Internal Server Error
|
|
2888
|
+
*/
|
|
2889
|
+
500: Error;
|
|
2890
|
+
};
|
|
2891
|
+
export type GetUserReportsError = GetUserReportsErrors[keyof GetUserReportsErrors];
|
|
2892
|
+
export type GetUserReportsResponses = {
|
|
2893
|
+
/**
|
|
2894
|
+
* OK
|
|
2895
|
+
*/
|
|
2896
|
+
200: ReportListResponse;
|
|
2897
|
+
};
|
|
2898
|
+
export type GetUserReportsResponse = GetUserReportsResponses[keyof GetUserReportsResponses];
|
|
2899
|
+
export type CreateReportData = {
|
|
2900
|
+
body: CreateReportRequest;
|
|
2901
|
+
path?: never;
|
|
2902
|
+
query?: never;
|
|
2903
|
+
url: '/v1/user/reports';
|
|
2904
|
+
};
|
|
2905
|
+
export type CreateReportErrors = {
|
|
2906
|
+
/**
|
|
2907
|
+
* Bad Request
|
|
2908
|
+
*/
|
|
2909
|
+
400: Error;
|
|
2910
|
+
/**
|
|
2911
|
+
* Unauthorized
|
|
2912
|
+
*/
|
|
2913
|
+
401: Error;
|
|
2914
|
+
/**
|
|
2915
|
+
* Not Found
|
|
2916
|
+
*/
|
|
2917
|
+
404: Error;
|
|
2918
|
+
/**
|
|
2919
|
+
* Internal Server Error
|
|
2920
|
+
*/
|
|
2921
|
+
500: Error;
|
|
2922
|
+
};
|
|
2923
|
+
export type CreateReportError = CreateReportErrors[keyof CreateReportErrors];
|
|
2924
|
+
export type CreateReportResponses = {
|
|
2925
|
+
/**
|
|
2926
|
+
* Report created successfully
|
|
2927
|
+
*/
|
|
2928
|
+
201: Report;
|
|
2929
|
+
};
|
|
2930
|
+
export type CreateReportResponse = CreateReportResponses[keyof CreateReportResponses];
|
|
2931
|
+
export type ListIndexData = {
|
|
2932
|
+
body?: never;
|
|
2933
|
+
path?: never;
|
|
2934
|
+
query?: {
|
|
2935
|
+
/**
|
|
2936
|
+
* Filter by visibility
|
|
2937
|
+
*/
|
|
2938
|
+
visibility?: 'public' | 'private';
|
|
2939
|
+
/**
|
|
2940
|
+
* Filter by list type
|
|
2941
|
+
*/
|
|
2942
|
+
type?: 'SERIES' | 'CUSTOM' | 'SEGMENT';
|
|
2943
|
+
/**
|
|
2944
|
+
* Filter by list owner user ID
|
|
2945
|
+
*/
|
|
2946
|
+
userId?: number;
|
|
2947
|
+
/**
|
|
2948
|
+
* Filter lists containing this media ID
|
|
2949
|
+
*/
|
|
2950
|
+
mediaId?: number;
|
|
2951
|
+
};
|
|
2952
|
+
url: '/v1/lists';
|
|
2953
|
+
};
|
|
2954
|
+
export type ListIndexErrors = {
|
|
2955
|
+
/**
|
|
2956
|
+
* Bad Request
|
|
2957
|
+
*/
|
|
2958
|
+
400: Error;
|
|
2959
|
+
/**
|
|
2960
|
+
* Unauthorized
|
|
2961
|
+
*/
|
|
2962
|
+
401: Error;
|
|
2963
|
+
/**
|
|
2964
|
+
* Forbidden
|
|
2965
|
+
*/
|
|
2966
|
+
403: Error;
|
|
2967
|
+
/**
|
|
2968
|
+
* Too Many Requests
|
|
2969
|
+
*/
|
|
2970
|
+
429: Error;
|
|
2971
|
+
/**
|
|
2972
|
+
* Internal Server Error
|
|
2973
|
+
*/
|
|
2974
|
+
500: Error;
|
|
2975
|
+
};
|
|
2976
|
+
export type ListIndexError = ListIndexErrors[keyof ListIndexErrors];
|
|
2977
|
+
export type ListIndexResponses = {
|
|
2978
|
+
/**
|
|
2979
|
+
* OK
|
|
2980
|
+
*/
|
|
2981
|
+
200: Array<List>;
|
|
2982
|
+
};
|
|
2983
|
+
export type ListIndexResponse = ListIndexResponses[keyof ListIndexResponses];
|
|
2984
|
+
export type ListCreateData = {
|
|
2985
|
+
body: ListCreateRequest;
|
|
2986
|
+
path?: never;
|
|
2987
|
+
query?: never;
|
|
2988
|
+
url: '/v1/lists';
|
|
2989
|
+
};
|
|
2990
|
+
export type ListCreateErrors = {
|
|
2991
|
+
/**
|
|
2992
|
+
* Bad Request
|
|
2993
|
+
*/
|
|
2994
|
+
400: Error;
|
|
2995
|
+
/**
|
|
2996
|
+
* Unauthorized
|
|
2997
|
+
*/
|
|
2998
|
+
401: Error;
|
|
2999
|
+
/**
|
|
3000
|
+
* Forbidden
|
|
3001
|
+
*/
|
|
3002
|
+
403: Error;
|
|
3003
|
+
/**
|
|
3004
|
+
* Too Many Requests
|
|
3005
|
+
*/
|
|
3006
|
+
429: Error;
|
|
3007
|
+
/**
|
|
3008
|
+
* Internal Server Error
|
|
3009
|
+
*/
|
|
3010
|
+
500: Error;
|
|
3011
|
+
};
|
|
3012
|
+
export type ListCreateError = ListCreateErrors[keyof ListCreateErrors];
|
|
3013
|
+
export type ListCreateResponses = {
|
|
3014
|
+
/**
|
|
3015
|
+
* Created
|
|
3016
|
+
*/
|
|
3017
|
+
201: List;
|
|
3018
|
+
};
|
|
3019
|
+
export type ListCreateResponse = ListCreateResponses[keyof ListCreateResponses];
|
|
3020
|
+
export type ListDestroyData = {
|
|
3021
|
+
body?: never;
|
|
3022
|
+
path: {
|
|
3023
|
+
/**
|
|
3024
|
+
* List ID
|
|
3025
|
+
*/
|
|
3026
|
+
id: number;
|
|
3027
|
+
};
|
|
3028
|
+
query?: never;
|
|
3029
|
+
url: '/v1/lists/{id}';
|
|
3030
|
+
};
|
|
3031
|
+
export type ListDestroyErrors = {
|
|
3032
|
+
/**
|
|
3033
|
+
* Bad Request
|
|
3034
|
+
*/
|
|
3035
|
+
400: Error;
|
|
3036
|
+
/**
|
|
3037
|
+
* Unauthorized
|
|
3038
|
+
*/
|
|
3039
|
+
401: Error;
|
|
3040
|
+
/**
|
|
3041
|
+
* Forbidden
|
|
3042
|
+
*/
|
|
3043
|
+
403: Error;
|
|
3044
|
+
/**
|
|
3045
|
+
* Not Found
|
|
3046
|
+
*/
|
|
3047
|
+
404: Error;
|
|
3048
|
+
/**
|
|
3049
|
+
* Too Many Requests
|
|
3050
|
+
*/
|
|
3051
|
+
429: Error;
|
|
3052
|
+
/**
|
|
3053
|
+
* Internal Server Error
|
|
3054
|
+
*/
|
|
3055
|
+
500: Error;
|
|
3056
|
+
};
|
|
3057
|
+
export type ListDestroyError = ListDestroyErrors[keyof ListDestroyErrors];
|
|
3058
|
+
export type ListDestroyResponses = {
|
|
3059
|
+
/**
|
|
3060
|
+
* OK
|
|
3061
|
+
*/
|
|
3062
|
+
200: {
|
|
3063
|
+
message?: string;
|
|
3064
|
+
id?: number;
|
|
3065
|
+
};
|
|
3066
|
+
};
|
|
3067
|
+
export type ListDestroyResponse = ListDestroyResponses[keyof ListDestroyResponses];
|
|
3068
|
+
export type ListShowData = {
|
|
3069
|
+
body?: never;
|
|
3070
|
+
path: {
|
|
3071
|
+
/**
|
|
3072
|
+
* List ID
|
|
3073
|
+
*/
|
|
3074
|
+
id: number;
|
|
3075
|
+
};
|
|
3076
|
+
query?: never;
|
|
3077
|
+
url: '/v1/lists/{id}';
|
|
3078
|
+
};
|
|
3079
|
+
export type ListShowErrors = {
|
|
3080
|
+
/**
|
|
3081
|
+
* Bad Request
|
|
3082
|
+
*/
|
|
3083
|
+
400: Error;
|
|
3084
|
+
/**
|
|
3085
|
+
* Unauthorized
|
|
3086
|
+
*/
|
|
3087
|
+
401: Error;
|
|
3088
|
+
/**
|
|
3089
|
+
* Forbidden
|
|
3090
|
+
*/
|
|
3091
|
+
403: Error;
|
|
3092
|
+
/**
|
|
3093
|
+
* Not Found
|
|
3094
|
+
*/
|
|
3095
|
+
404: Error;
|
|
3096
|
+
/**
|
|
3097
|
+
* Too Many Requests
|
|
3098
|
+
*/
|
|
3099
|
+
429: Error;
|
|
3100
|
+
/**
|
|
3101
|
+
* Internal Server Error
|
|
3102
|
+
*/
|
|
3103
|
+
500: Error;
|
|
3104
|
+
};
|
|
3105
|
+
export type ListShowError = ListShowErrors[keyof ListShowErrors];
|
|
3106
|
+
export type ListShowResponses = {
|
|
3107
|
+
/**
|
|
3108
|
+
* OK
|
|
3109
|
+
*/
|
|
3110
|
+
200: ListWithMedia;
|
|
3111
|
+
};
|
|
3112
|
+
export type ListShowResponse = ListShowResponses[keyof ListShowResponses];
|
|
3113
|
+
export type ListUpdateData = {
|
|
3114
|
+
body: {
|
|
3115
|
+
name?: string;
|
|
3116
|
+
visibility?: 'PUBLIC' | 'PRIVATE';
|
|
3117
|
+
};
|
|
3118
|
+
path: {
|
|
3119
|
+
/**
|
|
3120
|
+
* List ID
|
|
3121
|
+
*/
|
|
3122
|
+
id: number;
|
|
3123
|
+
};
|
|
3124
|
+
query?: never;
|
|
3125
|
+
url: '/v1/lists/{id}';
|
|
3126
|
+
};
|
|
3127
|
+
export type ListUpdateErrors = {
|
|
3128
|
+
/**
|
|
3129
|
+
* Bad Request
|
|
3130
|
+
*/
|
|
3131
|
+
400: Error;
|
|
3132
|
+
/**
|
|
3133
|
+
* Unauthorized
|
|
3134
|
+
*/
|
|
3135
|
+
401: Error;
|
|
3136
|
+
/**
|
|
3137
|
+
* Forbidden
|
|
3138
|
+
*/
|
|
3139
|
+
403: Error;
|
|
3140
|
+
/**
|
|
3141
|
+
* Not Found
|
|
3142
|
+
*/
|
|
3143
|
+
404: Error;
|
|
3144
|
+
/**
|
|
3145
|
+
* Too Many Requests
|
|
3146
|
+
*/
|
|
3147
|
+
429: Error;
|
|
3148
|
+
/**
|
|
3149
|
+
* Internal Server Error
|
|
3150
|
+
*/
|
|
3151
|
+
500: Error;
|
|
3152
|
+
};
|
|
3153
|
+
export type ListUpdateError = ListUpdateErrors[keyof ListUpdateErrors];
|
|
3154
|
+
export type ListUpdateResponses = {
|
|
3155
|
+
/**
|
|
3156
|
+
* OK
|
|
3157
|
+
*/
|
|
3158
|
+
200: List;
|
|
3159
|
+
};
|
|
3160
|
+
export type ListUpdateResponse = ListUpdateResponses[keyof ListUpdateResponses];
|
|
3161
|
+
export type ListAddItemData = {
|
|
3162
|
+
body: {
|
|
3163
|
+
mediaId: number;
|
|
3164
|
+
/**
|
|
3165
|
+
* Position in the list (1-indexed)
|
|
3166
|
+
*/
|
|
3167
|
+
position: number;
|
|
3168
|
+
};
|
|
3169
|
+
path: {
|
|
3170
|
+
/**
|
|
3171
|
+
* List ID
|
|
3172
|
+
*/
|
|
3173
|
+
id: number;
|
|
3174
|
+
};
|
|
3175
|
+
query?: never;
|
|
3176
|
+
url: '/v1/lists/{id}/items';
|
|
3177
|
+
};
|
|
3178
|
+
export type ListAddItemErrors = {
|
|
3179
|
+
/**
|
|
3180
|
+
* Bad Request
|
|
3181
|
+
*/
|
|
3182
|
+
400: Error;
|
|
3183
|
+
/**
|
|
3184
|
+
* Unauthorized
|
|
3185
|
+
*/
|
|
3186
|
+
401: Error;
|
|
3187
|
+
/**
|
|
3188
|
+
* Forbidden
|
|
3189
|
+
*/
|
|
3190
|
+
403: Error;
|
|
3191
|
+
/**
|
|
3192
|
+
* Not Found
|
|
3193
|
+
*/
|
|
3194
|
+
404: Error;
|
|
3195
|
+
/**
|
|
3196
|
+
* Conflict
|
|
3197
|
+
*/
|
|
3198
|
+
409: Error;
|
|
3199
|
+
/**
|
|
3200
|
+
* Too Many Requests
|
|
3201
|
+
*/
|
|
3202
|
+
429: Error;
|
|
3203
|
+
/**
|
|
3204
|
+
* Internal Server Error
|
|
3205
|
+
*/
|
|
3206
|
+
500: Error;
|
|
3207
|
+
};
|
|
3208
|
+
export type ListAddItemError = ListAddItemErrors[keyof ListAddItemErrors];
|
|
3209
|
+
export type ListAddItemResponses = {
|
|
3210
|
+
/**
|
|
3211
|
+
* Created
|
|
3212
|
+
*/
|
|
3213
|
+
201: {
|
|
3214
|
+
message?: string;
|
|
3215
|
+
};
|
|
3216
|
+
};
|
|
3217
|
+
export type ListAddItemResponse = ListAddItemResponses[keyof ListAddItemResponses];
|
|
3218
|
+
export type ListRemoveItemData = {
|
|
3219
|
+
body?: never;
|
|
3220
|
+
path: {
|
|
3221
|
+
/**
|
|
3222
|
+
* List ID
|
|
3223
|
+
*/
|
|
3224
|
+
id: number;
|
|
3225
|
+
/**
|
|
3226
|
+
* Media ID
|
|
3227
|
+
*/
|
|
3228
|
+
mediaId: number;
|
|
3229
|
+
};
|
|
3230
|
+
query?: never;
|
|
3231
|
+
url: '/v1/lists/{id}/items/{mediaId}';
|
|
3232
|
+
};
|
|
3233
|
+
export type ListRemoveItemErrors = {
|
|
3234
|
+
/**
|
|
3235
|
+
* Bad Request
|
|
3236
|
+
*/
|
|
3237
|
+
400: Error;
|
|
3238
|
+
/**
|
|
3239
|
+
* Unauthorized
|
|
3240
|
+
*/
|
|
3241
|
+
401: Error;
|
|
3242
|
+
/**
|
|
3243
|
+
* Forbidden
|
|
3244
|
+
*/
|
|
3245
|
+
403: Error;
|
|
3246
|
+
/**
|
|
3247
|
+
* Not Found
|
|
3248
|
+
*/
|
|
3249
|
+
404: Error;
|
|
3250
|
+
/**
|
|
3251
|
+
* Too Many Requests
|
|
3252
|
+
*/
|
|
3253
|
+
429: Error;
|
|
3254
|
+
/**
|
|
3255
|
+
* Internal Server Error
|
|
3256
|
+
*/
|
|
3257
|
+
500: Error;
|
|
3258
|
+
};
|
|
3259
|
+
export type ListRemoveItemError = ListRemoveItemErrors[keyof ListRemoveItemErrors];
|
|
3260
|
+
export type ListRemoveItemResponses = {
|
|
3261
|
+
/**
|
|
3262
|
+
* OK
|
|
3263
|
+
*/
|
|
3264
|
+
200: {
|
|
3265
|
+
message?: string;
|
|
3266
|
+
};
|
|
3267
|
+
};
|
|
3268
|
+
export type ListRemoveItemResponse = ListRemoveItemResponses[keyof ListRemoveItemResponses];
|
|
3269
|
+
export type ListUpdateItemData = {
|
|
3270
|
+
body: {
|
|
3271
|
+
/**
|
|
3272
|
+
* New position in the list (1-indexed)
|
|
3273
|
+
*/
|
|
3274
|
+
position: number;
|
|
3275
|
+
};
|
|
3276
|
+
path: {
|
|
3277
|
+
/**
|
|
3278
|
+
* List ID
|
|
3279
|
+
*/
|
|
3280
|
+
id: number;
|
|
3281
|
+
/**
|
|
3282
|
+
* Media ID
|
|
3283
|
+
*/
|
|
3284
|
+
mediaId: number;
|
|
3285
|
+
};
|
|
3286
|
+
query?: never;
|
|
3287
|
+
url: '/v1/lists/{id}/items/{mediaId}';
|
|
3288
|
+
};
|
|
3289
|
+
export type ListUpdateItemErrors = {
|
|
3290
|
+
/**
|
|
3291
|
+
* Bad Request
|
|
3292
|
+
*/
|
|
3293
|
+
400: Error;
|
|
3294
|
+
/**
|
|
3295
|
+
* Unauthorized
|
|
3296
|
+
*/
|
|
3297
|
+
401: Error;
|
|
3298
|
+
/**
|
|
3299
|
+
* Forbidden
|
|
3300
|
+
*/
|
|
3301
|
+
403: Error;
|
|
3302
|
+
/**
|
|
3303
|
+
* Not Found
|
|
3304
|
+
*/
|
|
3305
|
+
404: Error;
|
|
3306
|
+
/**
|
|
3307
|
+
* Too Many Requests
|
|
3308
|
+
*/
|
|
3309
|
+
429: Error;
|
|
3310
|
+
/**
|
|
3311
|
+
* Internal Server Error
|
|
3312
|
+
*/
|
|
3313
|
+
500: Error;
|
|
3314
|
+
};
|
|
3315
|
+
export type ListUpdateItemError = ListUpdateItemErrors[keyof ListUpdateItemErrors];
|
|
3316
|
+
export type ListUpdateItemResponses = {
|
|
3317
|
+
/**
|
|
3318
|
+
* OK
|
|
3319
|
+
*/
|
|
3320
|
+
200: {
|
|
3321
|
+
message?: string;
|
|
3322
|
+
};
|
|
3323
|
+
};
|
|
3324
|
+
export type ListUpdateItemResponse = ListUpdateItemResponses[keyof ListUpdateItemResponses];
|
|
3325
|
+
export type ListGetSegmentsData = {
|
|
3326
|
+
body?: never;
|
|
3327
|
+
path: {
|
|
3328
|
+
/**
|
|
3329
|
+
* List ID
|
|
3330
|
+
*/
|
|
3331
|
+
id: number;
|
|
3332
|
+
};
|
|
3333
|
+
query?: {
|
|
3334
|
+
/**
|
|
3335
|
+
* Page number (1-indexed)
|
|
3336
|
+
*/
|
|
3337
|
+
page?: number;
|
|
3338
|
+
/**
|
|
3339
|
+
* Items per page
|
|
3340
|
+
*/
|
|
3341
|
+
limit?: number;
|
|
3342
|
+
};
|
|
3343
|
+
url: '/v1/lists/{id}/segments';
|
|
3344
|
+
};
|
|
3345
|
+
export type ListGetSegmentsErrors = {
|
|
3346
|
+
/**
|
|
3347
|
+
* Bad Request
|
|
3348
|
+
*/
|
|
3349
|
+
400: Error;
|
|
3350
|
+
/**
|
|
3351
|
+
* Unauthorized
|
|
3352
|
+
*/
|
|
3353
|
+
401: Error;
|
|
3354
|
+
/**
|
|
3355
|
+
* Forbidden
|
|
3356
|
+
*/
|
|
3357
|
+
403: Error;
|
|
3358
|
+
/**
|
|
3359
|
+
* Not Found
|
|
3360
|
+
*/
|
|
3361
|
+
404: Error;
|
|
3362
|
+
/**
|
|
3363
|
+
* Too Many Requests
|
|
3364
|
+
*/
|
|
3365
|
+
429: Error;
|
|
3366
|
+
/**
|
|
3367
|
+
* Internal Server Error
|
|
3368
|
+
*/
|
|
3369
|
+
500: Error;
|
|
3370
|
+
};
|
|
3371
|
+
export type ListGetSegmentsError = ListGetSegmentsErrors[keyof ListGetSegmentsErrors];
|
|
3372
|
+
export type ListGetSegmentsResponses = {
|
|
3373
|
+
/**
|
|
3374
|
+
* OK
|
|
3375
|
+
*/
|
|
3376
|
+
200: ListWithSegments;
|
|
3377
|
+
};
|
|
3378
|
+
export type ListGetSegmentsResponse = ListGetSegmentsResponses[keyof ListGetSegmentsResponses];
|
|
3379
|
+
export type ListAddSegmentData = {
|
|
3380
|
+
body: {
|
|
3381
|
+
/**
|
|
3382
|
+
* UUID of the segment to add
|
|
3383
|
+
*/
|
|
3384
|
+
segmentUuid: string;
|
|
3385
|
+
/**
|
|
3386
|
+
* Optional annotation
|
|
3387
|
+
*/
|
|
3388
|
+
note?: string;
|
|
3389
|
+
};
|
|
3390
|
+
path: {
|
|
3391
|
+
/**
|
|
3392
|
+
* List ID
|
|
3393
|
+
*/
|
|
3394
|
+
id: number;
|
|
3395
|
+
};
|
|
3396
|
+
query?: never;
|
|
3397
|
+
url: '/v1/lists/{id}/segments';
|
|
3398
|
+
};
|
|
3399
|
+
export type ListAddSegmentErrors = {
|
|
3400
|
+
/**
|
|
3401
|
+
* Bad Request
|
|
3402
|
+
*/
|
|
3403
|
+
400: Error;
|
|
3404
|
+
/**
|
|
3405
|
+
* Unauthorized
|
|
3406
|
+
*/
|
|
3407
|
+
401: Error;
|
|
3408
|
+
/**
|
|
3409
|
+
* Forbidden
|
|
3410
|
+
*/
|
|
3411
|
+
403: Error;
|
|
3412
|
+
/**
|
|
3413
|
+
* Not Found
|
|
3414
|
+
*/
|
|
3415
|
+
404: Error;
|
|
3416
|
+
/**
|
|
3417
|
+
* Conflict
|
|
3418
|
+
*/
|
|
3419
|
+
409: Error;
|
|
3420
|
+
/**
|
|
3421
|
+
* Too Many Requests
|
|
3422
|
+
*/
|
|
3423
|
+
429: Error;
|
|
3424
|
+
/**
|
|
3425
|
+
* Internal Server Error
|
|
3426
|
+
*/
|
|
3427
|
+
500: Error;
|
|
3428
|
+
};
|
|
3429
|
+
export type ListAddSegmentError = ListAddSegmentErrors[keyof ListAddSegmentErrors];
|
|
3430
|
+
export type ListAddSegmentResponses = {
|
|
3431
|
+
/**
|
|
3432
|
+
* Created
|
|
3433
|
+
*/
|
|
3434
|
+
201: {
|
|
3435
|
+
message?: string;
|
|
3436
|
+
};
|
|
3437
|
+
};
|
|
3438
|
+
export type ListAddSegmentResponse = ListAddSegmentResponses[keyof ListAddSegmentResponses];
|
|
3439
|
+
export type ListRemoveSegmentData = {
|
|
3440
|
+
body?: never;
|
|
3441
|
+
path: {
|
|
3442
|
+
/**
|
|
3443
|
+
* List ID
|
|
3444
|
+
*/
|
|
3445
|
+
id: number;
|
|
3446
|
+
/**
|
|
3447
|
+
* Segment UUID
|
|
3448
|
+
*/
|
|
3449
|
+
uuid: string;
|
|
3450
|
+
};
|
|
3451
|
+
query?: never;
|
|
3452
|
+
url: '/v1/lists/{id}/segments/{uuid}';
|
|
3453
|
+
};
|
|
3454
|
+
export type ListRemoveSegmentErrors = {
|
|
3455
|
+
/**
|
|
3456
|
+
* Bad Request
|
|
3457
|
+
*/
|
|
3458
|
+
400: Error;
|
|
3459
|
+
/**
|
|
3460
|
+
* Unauthorized
|
|
3461
|
+
*/
|
|
3462
|
+
401: Error;
|
|
3463
|
+
/**
|
|
3464
|
+
* Forbidden
|
|
3465
|
+
*/
|
|
3466
|
+
403: Error;
|
|
3467
|
+
/**
|
|
3468
|
+
* Not Found
|
|
3469
|
+
*/
|
|
3470
|
+
404: Error;
|
|
3471
|
+
/**
|
|
3472
|
+
* Too Many Requests
|
|
3473
|
+
*/
|
|
3474
|
+
429: Error;
|
|
3475
|
+
/**
|
|
3476
|
+
* Internal Server Error
|
|
3477
|
+
*/
|
|
3478
|
+
500: Error;
|
|
3479
|
+
};
|
|
3480
|
+
export type ListRemoveSegmentError = ListRemoveSegmentErrors[keyof ListRemoveSegmentErrors];
|
|
3481
|
+
export type ListRemoveSegmentResponses = {
|
|
3482
|
+
/**
|
|
3483
|
+
* OK
|
|
3484
|
+
*/
|
|
3485
|
+
200: {
|
|
3486
|
+
message?: string;
|
|
3487
|
+
};
|
|
3488
|
+
};
|
|
3489
|
+
export type ListRemoveSegmentResponse = ListRemoveSegmentResponses[keyof ListRemoveSegmentResponses];
|
|
3490
|
+
export type ListUpdateSegmentData = {
|
|
3491
|
+
body: {
|
|
3492
|
+
/**
|
|
3493
|
+
* New position in the list
|
|
3494
|
+
*/
|
|
3495
|
+
position?: number;
|
|
3496
|
+
/**
|
|
3497
|
+
* Updated annotation
|
|
3498
|
+
*/
|
|
3499
|
+
note?: string;
|
|
3500
|
+
};
|
|
3501
|
+
path: {
|
|
3502
|
+
/**
|
|
3503
|
+
* List ID
|
|
3504
|
+
*/
|
|
3505
|
+
id: number;
|
|
3506
|
+
/**
|
|
3507
|
+
* Segment UUID
|
|
3508
|
+
*/
|
|
3509
|
+
uuid: string;
|
|
3510
|
+
};
|
|
3511
|
+
query?: never;
|
|
3512
|
+
url: '/v1/lists/{id}/segments/{uuid}';
|
|
3513
|
+
};
|
|
3514
|
+
export type ListUpdateSegmentErrors = {
|
|
3515
|
+
/**
|
|
3516
|
+
* Bad Request
|
|
3517
|
+
*/
|
|
3518
|
+
400: Error;
|
|
3519
|
+
/**
|
|
3520
|
+
* Unauthorized
|
|
3521
|
+
*/
|
|
3522
|
+
401: Error;
|
|
3523
|
+
/**
|
|
3524
|
+
* Forbidden
|
|
3525
|
+
*/
|
|
3526
|
+
403: Error;
|
|
3527
|
+
/**
|
|
3528
|
+
* Not Found
|
|
3529
|
+
*/
|
|
3530
|
+
404: Error;
|
|
3531
|
+
/**
|
|
3532
|
+
* Too Many Requests
|
|
3533
|
+
*/
|
|
3534
|
+
429: Error;
|
|
3535
|
+
/**
|
|
3536
|
+
* Internal Server Error
|
|
3537
|
+
*/
|
|
3538
|
+
500: Error;
|
|
3539
|
+
};
|
|
3540
|
+
export type ListUpdateSegmentError = ListUpdateSegmentErrors[keyof ListUpdateSegmentErrors];
|
|
3541
|
+
export type ListUpdateSegmentResponses = {
|
|
3542
|
+
/**
|
|
3543
|
+
* OK
|
|
3544
|
+
*/
|
|
3545
|
+
200: {
|
|
3546
|
+
message?: string;
|
|
3547
|
+
};
|
|
3548
|
+
};
|
|
3549
|
+
export type ListUpdateSegmentResponse = ListUpdateSegmentResponses[keyof ListUpdateSegmentResponses];
|
|
3550
|
+
export type ReindexElasticsearchData = {
|
|
3551
|
+
body?: ReindexRequest;
|
|
3552
|
+
path?: never;
|
|
3553
|
+
query?: never;
|
|
3554
|
+
url: '/v1/admin/reindex';
|
|
3555
|
+
};
|
|
3556
|
+
export type ReindexElasticsearchErrors = {
|
|
3557
|
+
/**
|
|
3558
|
+
* Bad Request
|
|
3559
|
+
*/
|
|
3560
|
+
400: Error;
|
|
3561
|
+
/**
|
|
3562
|
+
* Unauthorized
|
|
3563
|
+
*/
|
|
3564
|
+
401: Error;
|
|
3565
|
+
/**
|
|
3566
|
+
* Forbidden
|
|
3567
|
+
*/
|
|
3568
|
+
403: Error;
|
|
3569
|
+
/**
|
|
3570
|
+
* Too Many Requests
|
|
3571
|
+
*/
|
|
3572
|
+
429: Error;
|
|
3573
|
+
/**
|
|
3574
|
+
* Internal Server Error
|
|
3575
|
+
*/
|
|
3576
|
+
500: Error;
|
|
3577
|
+
};
|
|
3578
|
+
export type ReindexElasticsearchError = ReindexElasticsearchErrors[keyof ReindexElasticsearchErrors];
|
|
3579
|
+
export type ReindexElasticsearchResponses = {
|
|
3580
|
+
/**
|
|
3581
|
+
* Reindex operation completed
|
|
3582
|
+
*/
|
|
3583
|
+
200: ReindexResponse;
|
|
3584
|
+
};
|
|
3585
|
+
export type ReindexElasticsearchResponse = ReindexElasticsearchResponses[keyof ReindexElasticsearchResponses];
|
|
3586
|
+
export type GetQueueStatsData = {
|
|
3587
|
+
body?: never;
|
|
3588
|
+
path?: never;
|
|
3589
|
+
query?: never;
|
|
3590
|
+
url: '/v1/admin/queues/stats';
|
|
3591
|
+
};
|
|
3592
|
+
export type GetQueueStatsErrors = {
|
|
3593
|
+
/**
|
|
3594
|
+
* Bad Request
|
|
3595
|
+
*/
|
|
3596
|
+
400: Error;
|
|
3597
|
+
/**
|
|
3598
|
+
* Unauthorized
|
|
3599
|
+
*/
|
|
3600
|
+
401: Error;
|
|
3601
|
+
/**
|
|
3602
|
+
* Forbidden
|
|
3603
|
+
*/
|
|
3604
|
+
403: Error;
|
|
3605
|
+
/**
|
|
3606
|
+
* Too Many Requests
|
|
3607
|
+
*/
|
|
3608
|
+
429: Error;
|
|
3609
|
+
/**
|
|
3610
|
+
* Internal Server Error
|
|
3611
|
+
*/
|
|
3612
|
+
500: Error;
|
|
3613
|
+
};
|
|
3614
|
+
export type GetQueueStatsError = GetQueueStatsErrors[keyof GetQueueStatsErrors];
|
|
3615
|
+
export type GetQueueStatsResponses = {
|
|
3616
|
+
/**
|
|
3617
|
+
* Queue statistics retrieved successfully
|
|
3618
|
+
*/
|
|
3619
|
+
200: Array<{
|
|
3620
|
+
queue?: string;
|
|
3621
|
+
/**
|
|
3622
|
+
* Number of jobs currently pending/active
|
|
3623
|
+
*/
|
|
3624
|
+
stuckCount?: number;
|
|
3625
|
+
/**
|
|
3626
|
+
* Number of failed jobs
|
|
3627
|
+
*/
|
|
3628
|
+
failedCount?: number;
|
|
3629
|
+
}>;
|
|
3630
|
+
};
|
|
3631
|
+
export type GetQueueStatsResponse = GetQueueStatsResponses[keyof GetQueueStatsResponses];
|
|
3632
|
+
export type GetQueueDetailsData = {
|
|
3633
|
+
body?: never;
|
|
3634
|
+
path: {
|
|
3635
|
+
/**
|
|
3636
|
+
* The name of the queue
|
|
3637
|
+
*/
|
|
3638
|
+
queueName: 'es-sync-create' | 'es-sync-update' | 'es-sync-delete';
|
|
3639
|
+
};
|
|
3640
|
+
query?: never;
|
|
3641
|
+
url: '/v1/admin/queues/{queueName}';
|
|
3642
|
+
};
|
|
3643
|
+
export type GetQueueDetailsErrors = {
|
|
3644
|
+
/**
|
|
3645
|
+
* Bad Request
|
|
3646
|
+
*/
|
|
3647
|
+
400: Error;
|
|
3648
|
+
/**
|
|
3649
|
+
* Unauthorized
|
|
3650
|
+
*/
|
|
3651
|
+
401: Error;
|
|
3652
|
+
/**
|
|
3653
|
+
* Forbidden
|
|
3654
|
+
*/
|
|
3655
|
+
403: Error;
|
|
3656
|
+
/**
|
|
3657
|
+
* Not Found
|
|
3658
|
+
*/
|
|
3659
|
+
404: Error;
|
|
3660
|
+
/**
|
|
3661
|
+
* Too Many Requests
|
|
3662
|
+
*/
|
|
3663
|
+
429: Error;
|
|
3664
|
+
/**
|
|
3665
|
+
* Internal Server Error
|
|
3666
|
+
*/
|
|
3667
|
+
500: Error;
|
|
3668
|
+
};
|
|
3669
|
+
export type GetQueueDetailsError = GetQueueDetailsErrors[keyof GetQueueDetailsErrors];
|
|
3670
|
+
export type GetQueueDetailsResponses = {
|
|
3671
|
+
/**
|
|
3672
|
+
* Queue details retrieved successfully
|
|
3673
|
+
*/
|
|
3674
|
+
200: {
|
|
3675
|
+
queue?: string;
|
|
3676
|
+
/**
|
|
3677
|
+
* Current queue size (pending jobs)
|
|
3678
|
+
*/
|
|
3679
|
+
size?: number;
|
|
3680
|
+
/**
|
|
3681
|
+
* Total jobs created
|
|
3682
|
+
*/
|
|
3683
|
+
created?: number;
|
|
3684
|
+
/**
|
|
3685
|
+
* Total failed jobs
|
|
3686
|
+
*/
|
|
3687
|
+
failed?: number;
|
|
3688
|
+
/**
|
|
3689
|
+
* Total completed jobs
|
|
3690
|
+
*/
|
|
3691
|
+
complete?: number;
|
|
3692
|
+
/**
|
|
3693
|
+
* Total expired jobs
|
|
3694
|
+
*/
|
|
3695
|
+
expired?: number;
|
|
3696
|
+
/**
|
|
3697
|
+
* Total cancelled jobs
|
|
3698
|
+
*/
|
|
3699
|
+
cancelled?: number;
|
|
3700
|
+
};
|
|
3701
|
+
};
|
|
3702
|
+
export type GetQueueDetailsResponse = GetQueueDetailsResponses[keyof GetQueueDetailsResponses];
|
|
3703
|
+
export type GetFailedJobsData = {
|
|
3704
|
+
body?: never;
|
|
3705
|
+
path: {
|
|
3706
|
+
/**
|
|
3707
|
+
* The name of the queue
|
|
3708
|
+
*/
|
|
3709
|
+
queueName: 'es-sync-create' | 'es-sync-update' | 'es-sync-delete';
|
|
3710
|
+
};
|
|
3711
|
+
query?: never;
|
|
3712
|
+
url: '/v1/admin/queues/{queueName}/failed';
|
|
3713
|
+
};
|
|
3714
|
+
export type GetFailedJobsErrors = {
|
|
3715
|
+
/**
|
|
3716
|
+
* Bad Request
|
|
3717
|
+
*/
|
|
3718
|
+
400: Error;
|
|
3719
|
+
/**
|
|
3720
|
+
* Unauthorized
|
|
3721
|
+
*/
|
|
3722
|
+
401: Error;
|
|
3723
|
+
/**
|
|
3724
|
+
* Forbidden
|
|
3725
|
+
*/
|
|
3726
|
+
403: Error;
|
|
3727
|
+
/**
|
|
3728
|
+
* Too Many Requests
|
|
3729
|
+
*/
|
|
3730
|
+
429: Error;
|
|
3731
|
+
/**
|
|
3732
|
+
* Internal Server Error
|
|
3733
|
+
*/
|
|
3734
|
+
500: Error;
|
|
3735
|
+
};
|
|
3736
|
+
export type GetFailedJobsError = GetFailedJobsErrors[keyof GetFailedJobsErrors];
|
|
3737
|
+
export type GetFailedJobsResponses = {
|
|
3738
|
+
/**
|
|
3739
|
+
* Failed jobs retrieved successfully
|
|
3740
|
+
*/
|
|
3741
|
+
200: Array<{
|
|
3742
|
+
/**
|
|
3743
|
+
* Job ID
|
|
3744
|
+
*/
|
|
3745
|
+
id?: string;
|
|
3746
|
+
/**
|
|
3747
|
+
* The segment ID that failed to sync
|
|
3748
|
+
*/
|
|
3749
|
+
segmentId?: number;
|
|
3750
|
+
/**
|
|
3751
|
+
* Error message from the last attempt
|
|
3752
|
+
*/
|
|
3753
|
+
error?: string;
|
|
3754
|
+
/**
|
|
3755
|
+
* When the job was created
|
|
3756
|
+
*/
|
|
3757
|
+
createdOn?: string;
|
|
3758
|
+
}>;
|
|
3759
|
+
};
|
|
3760
|
+
export type GetFailedJobsResponse = GetFailedJobsResponses[keyof GetFailedJobsResponses];
|
|
3761
|
+
export type RetryQueueJobsData = {
|
|
3762
|
+
body?: never;
|
|
3763
|
+
path: {
|
|
3764
|
+
/**
|
|
3765
|
+
* The name of the queue
|
|
3766
|
+
*/
|
|
3767
|
+
queueName: 'es-sync-create' | 'es-sync-update' | 'es-sync-delete';
|
|
3768
|
+
};
|
|
3769
|
+
query?: never;
|
|
3770
|
+
url: '/v1/admin/queues/{queueName}/retry';
|
|
3771
|
+
};
|
|
3772
|
+
export type RetryQueueJobsErrors = {
|
|
3773
|
+
/**
|
|
3774
|
+
* Bad Request
|
|
3775
|
+
*/
|
|
3776
|
+
400: Error;
|
|
3777
|
+
/**
|
|
3778
|
+
* Unauthorized
|
|
3779
|
+
*/
|
|
3780
|
+
401: Error;
|
|
3781
|
+
/**
|
|
3782
|
+
* Forbidden
|
|
3783
|
+
*/
|
|
3784
|
+
403: Error;
|
|
3785
|
+
/**
|
|
3786
|
+
* Too Many Requests
|
|
3787
|
+
*/
|
|
3788
|
+
429: Error;
|
|
3789
|
+
/**
|
|
3790
|
+
* Internal Server Error
|
|
3791
|
+
*/
|
|
3792
|
+
500: Error;
|
|
3793
|
+
};
|
|
3794
|
+
export type RetryQueueJobsError = RetryQueueJobsErrors[keyof RetryQueueJobsErrors];
|
|
3795
|
+
export type RetryQueueJobsResponses = {
|
|
3796
|
+
/**
|
|
3797
|
+
* Jobs queued for retry
|
|
3798
|
+
*/
|
|
3799
|
+
200: {
|
|
3800
|
+
success?: boolean;
|
|
3801
|
+
/**
|
|
3802
|
+
* Number of jobs queued for retry
|
|
3803
|
+
*/
|
|
3804
|
+
retriedCount?: number;
|
|
3805
|
+
message?: string;
|
|
3806
|
+
};
|
|
3807
|
+
};
|
|
3808
|
+
export type RetryQueueJobsResponse = RetryQueueJobsResponses[keyof RetryQueueJobsResponses];
|
|
3809
|
+
export type PurgeFailedJobsData = {
|
|
3810
|
+
body?: never;
|
|
3811
|
+
path: {
|
|
3812
|
+
/**
|
|
3813
|
+
* The name of the queue
|
|
3814
|
+
*/
|
|
3815
|
+
queueName: 'es-sync-create' | 'es-sync-update' | 'es-sync-delete';
|
|
3816
|
+
};
|
|
3817
|
+
query?: never;
|
|
3818
|
+
url: '/v1/admin/queues/{queueName}/purge';
|
|
3819
|
+
};
|
|
3820
|
+
export type PurgeFailedJobsErrors = {
|
|
3821
|
+
/**
|
|
3822
|
+
* Bad Request
|
|
3823
|
+
*/
|
|
3824
|
+
400: Error;
|
|
3825
|
+
/**
|
|
3826
|
+
* Unauthorized
|
|
3827
|
+
*/
|
|
3828
|
+
401: Error;
|
|
3829
|
+
/**
|
|
3830
|
+
* Forbidden
|
|
3831
|
+
*/
|
|
3832
|
+
403: Error;
|
|
3833
|
+
/**
|
|
3834
|
+
* Too Many Requests
|
|
3835
|
+
*/
|
|
3836
|
+
429: Error;
|
|
3837
|
+
/**
|
|
3838
|
+
* Internal Server Error
|
|
3839
|
+
*/
|
|
3840
|
+
500: Error;
|
|
3841
|
+
};
|
|
3842
|
+
export type PurgeFailedJobsError = PurgeFailedJobsErrors[keyof PurgeFailedJobsErrors];
|
|
3843
|
+
export type PurgeFailedJobsResponses = {
|
|
3844
|
+
/**
|
|
3845
|
+
* Failed jobs purged successfully
|
|
3846
|
+
*/
|
|
3847
|
+
200: {
|
|
3848
|
+
success?: boolean;
|
|
3849
|
+
/**
|
|
3850
|
+
* Number of failed jobs deleted
|
|
3851
|
+
*/
|
|
3852
|
+
purgedCount?: number;
|
|
3853
|
+
message?: string;
|
|
3854
|
+
};
|
|
3855
|
+
};
|
|
3856
|
+
export type PurgeFailedJobsResponse = PurgeFailedJobsResponses[keyof PurgeFailedJobsResponses];
|
|
3857
|
+
export type MorphemeBackfillData = {
|
|
3858
|
+
body?: never;
|
|
3859
|
+
path?: never;
|
|
3860
|
+
query?: never;
|
|
3861
|
+
url: '/v1/admin/morpheme-backfill';
|
|
3862
|
+
};
|
|
3863
|
+
export type MorphemeBackfillResponses = {
|
|
3864
|
+
/**
|
|
3865
|
+
* Backfill completed
|
|
3866
|
+
*/
|
|
3867
|
+
200: {
|
|
3868
|
+
success: boolean;
|
|
3869
|
+
message: string;
|
|
3870
|
+
stats: {
|
|
3871
|
+
totalSegments: number;
|
|
3872
|
+
successfulAnalyses: number;
|
|
3873
|
+
failedAnalyses: number;
|
|
3874
|
+
};
|
|
3875
|
+
};
|
|
3876
|
+
};
|
|
3877
|
+
export type MorphemeBackfillResponse = MorphemeBackfillResponses[keyof MorphemeBackfillResponses];
|
|
3878
|
+
export type GetAdminReportsData = {
|
|
3879
|
+
body?: never;
|
|
3880
|
+
path?: never;
|
|
3881
|
+
query?: {
|
|
3882
|
+
/**
|
|
3883
|
+
* Cursor for pagination (report ID to start after)
|
|
3884
|
+
*/
|
|
3885
|
+
cursor?: number;
|
|
3886
|
+
/**
|
|
3887
|
+
* Number of results per page
|
|
3888
|
+
*/
|
|
3889
|
+
size?: number;
|
|
3890
|
+
/**
|
|
3891
|
+
* Filter by report status
|
|
3892
|
+
*/
|
|
3893
|
+
status?: 'PENDING' | 'ACCEPTED' | 'REJECTED' | 'RESOLVED';
|
|
3894
|
+
/**
|
|
3895
|
+
* Filter by report type
|
|
3896
|
+
*/
|
|
3897
|
+
reportType?: 'SEGMENT' | 'MEDIA';
|
|
3898
|
+
/**
|
|
3899
|
+
* Filter by target ID
|
|
3900
|
+
*/
|
|
3901
|
+
targetId?: string;
|
|
3902
|
+
};
|
|
3903
|
+
url: '/v1/admin/reports';
|
|
3904
|
+
};
|
|
3905
|
+
export type GetAdminReportsErrors = {
|
|
3906
|
+
/**
|
|
3907
|
+
* Unauthorized
|
|
3908
|
+
*/
|
|
3909
|
+
401: Error;
|
|
3910
|
+
/**
|
|
3911
|
+
* Forbidden
|
|
3912
|
+
*/
|
|
3913
|
+
403: Error;
|
|
3914
|
+
/**
|
|
3915
|
+
* Too Many Requests
|
|
3916
|
+
*/
|
|
3917
|
+
429: Error;
|
|
3918
|
+
/**
|
|
3919
|
+
* Internal Server Error
|
|
3920
|
+
*/
|
|
3921
|
+
500: Error;
|
|
3922
|
+
};
|
|
3923
|
+
export type GetAdminReportsError = GetAdminReportsErrors[keyof GetAdminReportsErrors];
|
|
3924
|
+
export type GetAdminReportsResponses = {
|
|
3925
|
+
/**
|
|
3926
|
+
* OK
|
|
3927
|
+
*/
|
|
3928
|
+
200: AdminReportListResponse;
|
|
3929
|
+
};
|
|
3930
|
+
export type GetAdminReportsResponse = GetAdminReportsResponses[keyof GetAdminReportsResponses];
|
|
3931
|
+
export type UpdateReportData = {
|
|
3932
|
+
body: UpdateReportRequest;
|
|
3933
|
+
path: {
|
|
3934
|
+
/**
|
|
3935
|
+
* Report ID
|
|
3936
|
+
*/
|
|
3937
|
+
id: number;
|
|
3938
|
+
};
|
|
3939
|
+
query?: never;
|
|
3940
|
+
url: '/v1/admin/reports/{id}';
|
|
3941
|
+
};
|
|
3942
|
+
export type UpdateReportErrors = {
|
|
3943
|
+
/**
|
|
3944
|
+
* Bad Request
|
|
3945
|
+
*/
|
|
3946
|
+
400: Error;
|
|
3947
|
+
/**
|
|
3948
|
+
* Unauthorized
|
|
3949
|
+
*/
|
|
3950
|
+
401: Error;
|
|
3951
|
+
/**
|
|
3952
|
+
* Forbidden
|
|
3953
|
+
*/
|
|
3954
|
+
403: Error;
|
|
3955
|
+
/**
|
|
3956
|
+
* Not Found
|
|
3957
|
+
*/
|
|
3958
|
+
404: Error;
|
|
3959
|
+
/**
|
|
3960
|
+
* Too Many Requests
|
|
3961
|
+
*/
|
|
3962
|
+
429: Error;
|
|
3963
|
+
/**
|
|
3964
|
+
* Internal Server Error
|
|
3965
|
+
*/
|
|
3966
|
+
500: Error;
|
|
3967
|
+
};
|
|
3968
|
+
export type UpdateReportError = UpdateReportErrors[keyof UpdateReportErrors];
|
|
3969
|
+
export type UpdateReportResponses = {
|
|
3970
|
+
/**
|
|
3971
|
+
* Report updated successfully
|
|
3972
|
+
*/
|
|
3973
|
+
200: Report;
|
|
3974
|
+
};
|
|
3975
|
+
export type UpdateReportResponse = UpdateReportResponses[keyof UpdateReportResponses];
|
|
3976
|
+
//# sourceMappingURL=types.gen.d.ts.map
|