@brigadasos/nadeshiko-sdk 1.4.3-dev.9520494 → 1.4.3-dev.d3424ba

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.
@@ -108,11 +108,11 @@ export type SearchRequest = {
108
108
  /**
109
109
  * Max amount of entries by response
110
110
  */
111
- limit?: number;
111
+ take?: number;
112
112
  /**
113
- * Current page of search
113
+ * Opaque cursor token returned from the previous search page
114
114
  */
115
- cursor?: Array<number>;
115
+ cursor?: string;
116
116
  /**
117
117
  * Sort configuration
118
118
  */
@@ -247,9 +247,10 @@ export type ExternalId = {
247
247
  */
248
248
  export type Seiyuu = {
249
249
  /**
250
- * AniList staff ID
250
+ * Internal seiyuu ID
251
251
  */
252
252
  id: number;
253
+ externalIds: ExternalId;
253
254
  /**
254
255
  * Japanese name of the voice actor
255
256
  */
@@ -381,9 +382,9 @@ export type PaginationInfo = {
381
382
  */
382
383
  estimatedTotalHitsRelation?: 'EXACT' | 'LOWER_BOUND';
383
384
  /**
384
- * Cursor for fetching the next page (undefined when hasMore is false)
385
+ * Opaque cursor token for fetching the next page (`null` when hasMore is false)
385
386
  */
386
- cursor?: Array<number>;
387
+ cursor?: string;
387
388
  };
388
389
  export type SearchResponse = {
389
390
  segments?: Array<Segment>;
@@ -703,30 +704,27 @@ export type SearchMultipleResponse = {
703
704
  */
704
705
  export type MediaIncludeExpansion = 'media' | 'media.characters';
705
706
  /**
706
- * Cursor pagination metadata
707
+ * Opaque cursor pagination metadata
707
708
  */
708
- export type CursorPagination = {
709
+ export type OpaqueCursorPagination = {
709
710
  /**
710
711
  * Whether more results are available
711
712
  */
712
713
  hasMore: boolean;
713
714
  /**
714
- * Cursor for the next page (`null` when `hasMore` is `false`)
715
+ * Opaque token for the next page (`null` when `hasMore` is `false`)
715
716
  */
716
- cursor: number;
717
+ cursor: string;
717
718
  };
718
719
  export type MediaListResponse = {
719
720
  media: Array<Media>;
720
- pagination: CursorPagination;
721
+ pagination: OpaqueCursorPagination;
721
722
  };
722
723
  /**
723
724
  * Character data for creating/updating media
724
725
  */
725
726
  export type CharacterInput = {
726
- /**
727
- * AniList character ID
728
- */
729
- id: number;
727
+ externalIds: ExternalId;
730
728
  /**
731
729
  * Japanese name of the character
732
730
  */
@@ -743,22 +741,21 @@ export type CharacterInput = {
743
741
  * Character's role in the media
744
742
  */
745
743
  role: 'MAIN' | 'SUPPORTING' | 'BACKGROUND';
746
- /**
747
- * AniList staff ID for the Japanese voice actor
748
- */
749
- seiyuuId: number;
750
- /**
751
- * Japanese name of the voice actor
752
- */
753
- seiyuuNameJa: string;
754
- /**
755
- * English name of the voice actor
756
- */
757
- seiyuuNameEn: string;
758
- /**
759
- * Voice actor profile image URL
760
- */
761
- seiyuuImageUrl: string;
744
+ seiyuu: {
745
+ externalIds: ExternalId;
746
+ /**
747
+ * Japanese name of the voice actor
748
+ */
749
+ nameJa: string;
750
+ /**
751
+ * English name of the voice actor
752
+ */
753
+ nameEn: string;
754
+ /**
755
+ * Voice actor profile image URL
756
+ */
757
+ imageUrl: string;
758
+ };
762
759
  };
763
760
  /**
764
761
  * Request body for creating a new media entry
@@ -907,205 +904,14 @@ export type Error404 = {
907
904
  [key: string]: string;
908
905
  };
909
906
  };
910
- /**
911
- * Request body for updating an existing media entry (all fields optional)
912
- */
913
- export type MediaUpdateRequest = {
914
- externalIds?: ExternalId;
915
- /**
916
- * Original Japanese name of the media
917
- */
918
- nameJa?: string;
919
- /**
920
- * Romaji transliteration of the media name
921
- */
922
- nameRomaji?: string;
923
- /**
924
- * English name of the media
925
- */
926
- nameEn?: string;
927
- /**
928
- * Format of the media release (e.g., TV, OVA, Movie)
929
- */
930
- airingFormat?: string;
931
- /**
932
- * Current airing status (FINISHED, RELEASING, NOT_YET_RELEASED, CANCELLED)
933
- */
934
- airingStatus?: string;
935
- /**
936
- * List of genres associated with the media
937
- */
938
- genres?: Array<string>;
939
- /**
940
- * Storage backend for media assets
941
- */
942
- storage?: 'LOCAL' | 'R2';
943
- /**
944
- * Start date of the media (first airing/release)
945
- */
946
- startDate?: string;
947
- /**
948
- * End date of the media (last airing/release)
949
- */
950
- endDate?: string;
951
- /**
952
- * Media category
953
- */
954
- category?: 'ANIME' | 'JDRAMA';
955
- /**
956
- * Version of the media-sub-splitter used
957
- */
958
- version?: string;
959
- /**
960
- * Hash salt used when generating the hash for the related media assets
961
- */
962
- hashSalt?: string;
963
- /**
964
- * Animation studio that produced the media
965
- */
966
- studio?: string;
967
- /**
968
- * Airing season label for the media
969
- */
970
- seasonName?: string;
971
- /**
972
- * Airing year for the media
973
- */
974
- seasonYear?: number;
975
- /**
976
- * Base path for R2/CDN storage (e.g. "media/21459")
977
- */
978
- storageBasePath?: string;
979
- /**
980
- * List of characters appearing in the media with their voice actors
981
- */
982
- characters?: Array<CharacterInput>;
983
- /**
984
- * Total number of subtitle segments available
985
- */
986
- segmentCount?: number;
987
- };
988
- export type Episode = {
989
- /**
990
- * ID of the media this episode belongs to
991
- */
992
- mediaId: number;
993
- /**
994
- * Episode number within the media
995
- */
996
- episodeNumber: number;
997
- /**
998
- * English title of the episode
999
- */
1000
- titleEn?: string;
1001
- /**
1002
- * Romanized title of the episode
1003
- */
1004
- titleRomaji?: string;
1005
- /**
1006
- * Japanese title of the episode
1007
- */
1008
- titleJa?: string;
1009
- /**
1010
- * Episode description or synopsis
1011
- */
1012
- description?: string;
1013
- /**
1014
- * When the episode originally aired
1015
- */
1016
- airedAt?: string;
1017
- /**
1018
- * Episode duration in seconds
1019
- */
1020
- lengthSeconds?: number;
1021
- /**
1022
- * URL to episode thumbnail image
1023
- */
1024
- thumbnailUrl?: string;
1025
- /**
1026
- * Number of segments in this episode
1027
- */
1028
- segmentCount: number;
1029
- };
1030
- export type EpisodeListResponse = {
1031
- /**
1032
- * Array of episode objects
1033
- */
1034
- episodes: Array<Episode>;
1035
- pagination: CursorPagination;
1036
- };
1037
- export type EpisodeCreateRequest = {
1038
- /**
1039
- * English title of the episode
1040
- */
1041
- titleEn?: string;
1042
- /**
1043
- * Romanized title of the episode
1044
- */
1045
- titleRomaji?: string;
1046
- /**
1047
- * Japanese title of the episode
1048
- */
1049
- titleJa?: string;
1050
- /**
1051
- * Episode description or synopsis
1052
- */
1053
- description?: string;
1054
- /**
1055
- * When the episode originally aired
1056
- */
1057
- airedAt?: string;
1058
- /**
1059
- * Episode duration in seconds
1060
- */
1061
- lengthSeconds?: number;
1062
- /**
1063
- * URL to episode thumbnail image
1064
- */
1065
- thumbnailUrl?: string;
1066
- /**
1067
- * Episode number within the media (must be unique for this media)
1068
- */
1069
- episodeNumber: number;
1070
- };
1071
907
  /**
1072
908
  * All fields are optional for partial updates
1073
909
  */
1074
- export type EpisodeUpdateRequest = {
1075
- /**
1076
- * English title of the episode
1077
- */
1078
- titleEn?: string;
1079
- /**
1080
- * Romanized title of the episode
1081
- */
1082
- titleRomaji?: string;
1083
- /**
1084
- * Japanese title of the episode
1085
- */
1086
- titleJa?: string;
1087
- /**
1088
- * Episode description or synopsis
1089
- */
1090
- description?: string;
1091
- /**
1092
- * When the episode originally aired
1093
- */
1094
- airedAt?: string;
1095
- /**
1096
- * Episode duration in seconds
1097
- */
1098
- lengthSeconds?: number;
1099
- /**
1100
- * URL to episode thumbnail image
1101
- */
1102
- thumbnailUrl?: string;
1103
- };
1104
- export type SegmentCreateRequest = {
910
+ export type SegmentUpdateRequest = {
1105
911
  /**
1106
912
  * Position of the segment within the episode
1107
913
  */
1108
- position: number;
914
+ position?: number;
1109
915
  /**
1110
916
  * Segment status
1111
917
  */
@@ -1113,12 +919,12 @@ export type SegmentCreateRequest = {
1113
919
  /**
1114
920
  * Start time of the segment in milliseconds from the beginning of the episode
1115
921
  */
1116
- startTimeMs: number;
922
+ startTimeMs?: number;
1117
923
  /**
1118
924
  * End time of the segment in milliseconds from the beginning of the episode
1119
925
  */
1120
- endTimeMs: number;
1121
- textJa: {
926
+ endTimeMs?: number;
927
+ textJa?: {
1122
928
  /**
1123
929
  * Original Japanese content of the segment
1124
930
  */
@@ -1160,11 +966,11 @@ export type SegmentCreateRequest = {
1160
966
  /**
1161
967
  * Storage backend for segment assets
1162
968
  */
1163
- storage: 'LOCAL' | 'R2';
969
+ storage?: 'LOCAL' | 'R2';
1164
970
  /**
1165
971
  * Hash identifier for the segment (from segment JSON)
1166
972
  */
1167
- hashedId: string;
973
+ hashedId?: string;
1168
974
  };
1169
975
  /**
1170
976
  * Segment with internal fields (for internal API responses)
@@ -1195,99 +1001,31 @@ export type SegmentInternal = Segment & {
1195
1001
  [key: string]: unknown;
1196
1002
  };
1197
1003
  };
1004
+ export type SegmentContextResponse = {
1005
+ segments: Array<Segment>;
1006
+ includes?: {
1007
+ /**
1008
+ * Media objects keyed by mediaId
1009
+ */
1010
+ media?: {
1011
+ [key: string]: Media;
1012
+ };
1013
+ };
1014
+ };
1198
1015
  /**
1199
- * All fields are optional for partial updates
1016
+ * Ordered media series grouping
1200
1017
  */
1201
- export type SegmentUpdateRequest = {
1018
+ export type Series = {
1202
1019
  /**
1203
- * Position of the segment within the episode
1020
+ * Series ID
1204
1021
  */
1205
- position?: number;
1022
+ id: number;
1206
1023
  /**
1207
- * Segment status
1024
+ * Japanese name of the series
1208
1025
  */
1209
- status?: 'DELETED' | 'ACTIVE' | 'SUSPENDED' | 'VERIFIED' | 'INVALID' | 'TOO_LONG';
1026
+ nameJa: string;
1210
1027
  /**
1211
- * Start time of the segment in milliseconds from the beginning of the episode
1212
- */
1213
- startTimeMs?: number;
1214
- /**
1215
- * End time of the segment in milliseconds from the beginning of the episode
1216
- */
1217
- endTimeMs?: number;
1218
- textJa?: {
1219
- /**
1220
- * Original Japanese content of the segment
1221
- */
1222
- content?: string;
1223
- };
1224
- textEs?: {
1225
- /**
1226
- * Spanish translation of the segment content
1227
- */
1228
- content?: string;
1229
- /**
1230
- * Whether the Spanish translation was machine-translated
1231
- */
1232
- isMachineTranslated?: boolean;
1233
- };
1234
- textEn?: {
1235
- /**
1236
- * English translation of the segment content
1237
- */
1238
- content?: string;
1239
- /**
1240
- * Whether the English translation was machine-translated
1241
- */
1242
- isMachineTranslated?: boolean;
1243
- };
1244
- contentRating?: ContentRating;
1245
- /**
1246
- * Raw WD Tagger v3 classifier output used to derive content rating
1247
- */
1248
- ratingAnalysis?: {
1249
- [key: string]: unknown;
1250
- };
1251
- /**
1252
- * POS tokenization results keyed by engine (sudachi, unidic)
1253
- */
1254
- posAnalysis?: {
1255
- [key: string]: unknown;
1256
- };
1257
- /**
1258
- * Storage backend for segment assets
1259
- */
1260
- storage?: 'LOCAL' | 'R2';
1261
- /**
1262
- * Hash identifier for the segment (from segment JSON)
1263
- */
1264
- hashedId?: string;
1265
- };
1266
- export type SegmentContextResponse = {
1267
- segments: Array<Segment>;
1268
- includes?: {
1269
- /**
1270
- * Media objects keyed by mediaId
1271
- */
1272
- media?: {
1273
- [key: string]: Media;
1274
- };
1275
- };
1276
- };
1277
- /**
1278
- * Ordered media series grouping
1279
- */
1280
- export type Series = {
1281
- /**
1282
- * Series ID
1283
- */
1284
- id: number;
1285
- /**
1286
- * Japanese name of the series
1287
- */
1288
- nameJa: string;
1289
- /**
1290
- * Romaji name of the series
1028
+ * Romaji name of the series
1291
1029
  */
1292
1030
  nameRomaji: string;
1293
1031
  /**
@@ -1297,7 +1035,7 @@ export type Series = {
1297
1035
  };
1298
1036
  export type SeriesListResponse = {
1299
1037
  series: Array<Series>;
1300
- pagination: CursorPagination;
1038
+ pagination: OpaqueCursorPagination;
1301
1039
  };
1302
1040
  /**
1303
1041
  * Series with ordered media entries
@@ -1335,9 +1073,10 @@ export type SeriesWithMedia = {
1335
1073
  */
1336
1074
  export type Character = {
1337
1075
  /**
1338
- * AniList character ID
1076
+ * Internal character ID
1339
1077
  */
1340
1078
  id: number;
1079
+ externalIds: ExternalId;
1341
1080
  /**
1342
1081
  * Japanese name of the character
1343
1082
  */
@@ -1398,6 +1137,265 @@ export type SeiyuuWithRoles = {
1398
1137
  role: 'MAIN' | 'SUPPORTING' | 'BACKGROUND';
1399
1138
  }>;
1400
1139
  };
1140
+ /**
1141
+ * Request body for updating an existing media entry (all fields optional)
1142
+ */
1143
+ export type MediaUpdateRequest = {
1144
+ externalIds?: ExternalId;
1145
+ /**
1146
+ * Original Japanese name of the media
1147
+ */
1148
+ nameJa?: string;
1149
+ /**
1150
+ * Romaji transliteration of the media name
1151
+ */
1152
+ nameRomaji?: string;
1153
+ /**
1154
+ * English name of the media
1155
+ */
1156
+ nameEn?: string;
1157
+ /**
1158
+ * Format of the media release (e.g., TV, OVA, Movie)
1159
+ */
1160
+ airingFormat?: string;
1161
+ /**
1162
+ * Current airing status (FINISHED, RELEASING, NOT_YET_RELEASED, CANCELLED)
1163
+ */
1164
+ airingStatus?: string;
1165
+ /**
1166
+ * List of genres associated with the media
1167
+ */
1168
+ genres?: Array<string>;
1169
+ /**
1170
+ * Storage backend for media assets
1171
+ */
1172
+ storage?: 'LOCAL' | 'R2';
1173
+ /**
1174
+ * Start date of the media (first airing/release)
1175
+ */
1176
+ startDate?: string;
1177
+ /**
1178
+ * End date of the media (last airing/release)
1179
+ */
1180
+ endDate?: string;
1181
+ /**
1182
+ * Media category
1183
+ */
1184
+ category?: 'ANIME' | 'JDRAMA';
1185
+ /**
1186
+ * Version of the media-sub-splitter used
1187
+ */
1188
+ version?: string;
1189
+ /**
1190
+ * Hash salt used when generating the hash for the related media assets
1191
+ */
1192
+ hashSalt?: string;
1193
+ /**
1194
+ * Animation studio that produced the media
1195
+ */
1196
+ studio?: string;
1197
+ /**
1198
+ * Airing season label for the media
1199
+ */
1200
+ seasonName?: string;
1201
+ /**
1202
+ * Airing year for the media
1203
+ */
1204
+ seasonYear?: number;
1205
+ /**
1206
+ * Base path for R2/CDN storage (e.g. "media/21459")
1207
+ */
1208
+ storageBasePath?: string;
1209
+ /**
1210
+ * List of characters appearing in the media with their voice actors
1211
+ */
1212
+ characters?: Array<CharacterInput>;
1213
+ /**
1214
+ * Total number of subtitle segments available
1215
+ */
1216
+ segmentCount?: number;
1217
+ };
1218
+ export type Episode = {
1219
+ /**
1220
+ * ID of the media this episode belongs to
1221
+ */
1222
+ mediaId: number;
1223
+ /**
1224
+ * Episode number within the media
1225
+ */
1226
+ episodeNumber: number;
1227
+ /**
1228
+ * English title of the episode
1229
+ */
1230
+ titleEn?: string;
1231
+ /**
1232
+ * Romanized title of the episode
1233
+ */
1234
+ titleRomaji?: string;
1235
+ /**
1236
+ * Japanese title of the episode
1237
+ */
1238
+ titleJa?: string;
1239
+ /**
1240
+ * Episode description or synopsis
1241
+ */
1242
+ description?: string;
1243
+ /**
1244
+ * When the episode originally aired
1245
+ */
1246
+ airedAt?: string;
1247
+ /**
1248
+ * Episode duration in seconds
1249
+ */
1250
+ lengthSeconds?: number;
1251
+ /**
1252
+ * URL to episode thumbnail image
1253
+ */
1254
+ thumbnailUrl?: string;
1255
+ /**
1256
+ * Number of segments in this episode
1257
+ */
1258
+ segmentCount: number;
1259
+ };
1260
+ export type EpisodeListResponse = {
1261
+ /**
1262
+ * Array of episode objects
1263
+ */
1264
+ episodes: Array<Episode>;
1265
+ pagination: OpaqueCursorPagination;
1266
+ };
1267
+ export type EpisodeCreateRequest = {
1268
+ /**
1269
+ * English title of the episode
1270
+ */
1271
+ titleEn?: string;
1272
+ /**
1273
+ * Romanized title of the episode
1274
+ */
1275
+ titleRomaji?: string;
1276
+ /**
1277
+ * Japanese title of the episode
1278
+ */
1279
+ titleJa?: string;
1280
+ /**
1281
+ * Episode description or synopsis
1282
+ */
1283
+ description?: string;
1284
+ /**
1285
+ * When the episode originally aired
1286
+ */
1287
+ airedAt?: string;
1288
+ /**
1289
+ * Episode duration in seconds
1290
+ */
1291
+ lengthSeconds?: number;
1292
+ /**
1293
+ * URL to episode thumbnail image
1294
+ */
1295
+ thumbnailUrl?: string;
1296
+ /**
1297
+ * Episode number within the media (must be unique for this media)
1298
+ */
1299
+ episodeNumber: number;
1300
+ };
1301
+ /**
1302
+ * All fields are optional for partial updates
1303
+ */
1304
+ export type EpisodeUpdateRequest = {
1305
+ /**
1306
+ * English title of the episode
1307
+ */
1308
+ titleEn?: string;
1309
+ /**
1310
+ * Romanized title of the episode
1311
+ */
1312
+ titleRomaji?: string;
1313
+ /**
1314
+ * Japanese title of the episode
1315
+ */
1316
+ titleJa?: string;
1317
+ /**
1318
+ * Episode description or synopsis
1319
+ */
1320
+ description?: string;
1321
+ /**
1322
+ * When the episode originally aired
1323
+ */
1324
+ airedAt?: string;
1325
+ /**
1326
+ * Episode duration in seconds
1327
+ */
1328
+ lengthSeconds?: number;
1329
+ /**
1330
+ * URL to episode thumbnail image
1331
+ */
1332
+ thumbnailUrl?: string;
1333
+ };
1334
+ export type SegmentCreateRequest = {
1335
+ /**
1336
+ * Position of the segment within the episode
1337
+ */
1338
+ position: number;
1339
+ /**
1340
+ * Segment status
1341
+ */
1342
+ status?: 'DELETED' | 'ACTIVE' | 'SUSPENDED' | 'VERIFIED' | 'INVALID' | 'TOO_LONG';
1343
+ /**
1344
+ * Start time of the segment in milliseconds from the beginning of the episode
1345
+ */
1346
+ startTimeMs: number;
1347
+ /**
1348
+ * End time of the segment in milliseconds from the beginning of the episode
1349
+ */
1350
+ endTimeMs: number;
1351
+ textJa: {
1352
+ /**
1353
+ * Original Japanese content of the segment
1354
+ */
1355
+ content?: string;
1356
+ };
1357
+ textEs?: {
1358
+ /**
1359
+ * Spanish translation of the segment content
1360
+ */
1361
+ content?: string;
1362
+ /**
1363
+ * Whether the Spanish translation was machine-translated
1364
+ */
1365
+ isMachineTranslated?: boolean;
1366
+ };
1367
+ textEn?: {
1368
+ /**
1369
+ * English translation of the segment content
1370
+ */
1371
+ content?: string;
1372
+ /**
1373
+ * Whether the English translation was machine-translated
1374
+ */
1375
+ isMachineTranslated?: boolean;
1376
+ };
1377
+ contentRating?: ContentRating;
1378
+ /**
1379
+ * Raw WD Tagger v3 classifier output used to derive content rating
1380
+ */
1381
+ ratingAnalysis?: {
1382
+ [key: string]: unknown;
1383
+ };
1384
+ /**
1385
+ * POS tokenization results keyed by engine (sudachi, unidic)
1386
+ */
1387
+ posAnalysis?: {
1388
+ [key: string]: unknown;
1389
+ };
1390
+ /**
1391
+ * Storage backend for segment assets
1392
+ */
1393
+ storage: 'LOCAL' | 'R2';
1394
+ /**
1395
+ * Hash identifier for the segment (from segment JSON)
1396
+ */
1397
+ hashedId: string;
1398
+ };
1401
1399
  export type UserQuotaResponse = {
1402
1400
  /**
1403
1401
  * Number of API requests used in the current billing period.
@@ -1434,37 +1432,53 @@ export type ReportTargetMedia = {
1434
1432
  */
1435
1433
  mediaId: number;
1436
1434
  };
1437
- export type ReportTargetEpisode = {
1435
+ export type ReportTargetSegment = {
1438
1436
  /**
1439
1437
  * Report target type
1440
1438
  */
1441
- type: 'EPISODE';
1439
+ type: 'SEGMENT';
1442
1440
  /**
1443
1441
  * Media ID this report targets
1444
1442
  */
1445
1443
  mediaId: number;
1446
1444
  /**
1447
- * Episode number this report targets
1445
+ * Episode number containing the segment
1448
1446
  */
1449
- episodeNumber: number;
1447
+ episodeNumber?: number;
1448
+ /**
1449
+ * Segment UUID this report targets
1450
+ */
1451
+ segmentUuid: string;
1450
1452
  };
1451
- export type ReportTargetSegment = {
1453
+ export type UserReportTarget = ({
1454
+ type: 'MEDIA';
1455
+ } & ReportTargetMedia) | ({
1456
+ type: 'SEGMENT';
1457
+ } & ReportTargetSegment);
1458
+ export type CreateReportRequest = {
1459
+ target: UserReportTarget;
1460
+ /**
1461
+ * Reason for the report
1462
+ */
1463
+ reason: 'WRONG_TRANSLATION' | 'WRONG_TIMING' | 'WRONG_AUDIO' | 'NSFW_NOT_TAGGED' | 'DUPLICATE_SEGMENT' | 'WRONG_METADATA' | 'MISSING_EPISODES' | 'WRONG_COVER_IMAGE' | 'INAPPROPRIATE_CONTENT' | 'OTHER';
1464
+ /**
1465
+ * Optional description with additional details
1466
+ */
1467
+ description?: string;
1468
+ };
1469
+ export type ReportTargetEpisode = {
1452
1470
  /**
1453
1471
  * Report target type
1454
1472
  */
1455
- type: 'SEGMENT';
1473
+ type: 'EPISODE';
1456
1474
  /**
1457
1475
  * Media ID this report targets
1458
1476
  */
1459
1477
  mediaId: number;
1460
1478
  /**
1461
- * Episode number containing the segment
1462
- */
1463
- episodeNumber?: number;
1464
- /**
1465
- * Segment UUID this report targets
1479
+ * Episode number this report targets
1466
1480
  */
1467
- segmentUuid: string;
1481
+ episodeNumber: number;
1468
1482
  };
1469
1483
  export type ReportTarget = ({
1470
1484
  type: 'MEDIA';
@@ -1484,9 +1498,9 @@ export type Report = {
1484
1498
  source: 'USER' | 'AUTO';
1485
1499
  target: ReportTarget;
1486
1500
  /**
1487
- * ID of the auto-check run that created this report (AUTO only)
1501
+ * ID of the audit run that created this report (AUTO only)
1488
1502
  */
1489
- reviewCheckRunId?: number;
1503
+ auditRunId?: number;
1490
1504
  /**
1491
1505
  * Reason for the report
1492
1506
  */
@@ -1522,33 +1536,7 @@ export type Report = {
1522
1536
  */
1523
1537
  updatedAt?: string;
1524
1538
  };
1525
- export type ReportListResponse = {
1526
- reports: Array<Report>;
1527
- pagination: CursorPagination;
1528
- };
1529
- export type UserReportTarget = ({
1530
- type: 'MEDIA';
1531
- } & ReportTargetMedia) | ({
1532
- type: 'SEGMENT';
1533
- } & ReportTargetSegment);
1534
- export type CreateReportRequest = {
1535
- target: UserReportTarget;
1536
- /**
1537
- * Reason for the report
1538
- */
1539
- reason: 'WRONG_TRANSLATION' | 'WRONG_TIMING' | 'WRONG_AUDIO' | 'NSFW_NOT_TAGGED' | 'DUPLICATE_SEGMENT' | 'WRONG_METADATA' | 'MISSING_EPISODES' | 'WRONG_COVER_IMAGE' | 'INAPPROPRIATE_CONTENT' | 'OTHER';
1540
- /**
1541
- * Optional description with additional details
1542
- */
1543
- description?: string;
1544
- };
1545
1539
  export type UserPreferences = {
1546
- /**
1547
- * Lab feature opt-in flags keyed by feature key
1548
- */
1549
- labs?: {
1550
- [key: string]: boolean;
1551
- };
1552
1540
  /**
1553
1541
  * Preferred language for media names display
1554
1542
  */
@@ -1662,32 +1650,32 @@ export type UserExportResponse = {
1662
1650
  };
1663
1651
  export type UserLabFeature = {
1664
1652
  /**
1665
- * Unique identifier for the lab feature
1653
+ * Unique identifier for the feature
1666
1654
  */
1667
1655
  key: string;
1668
1656
  /**
1669
- * Human-readable feature name
1657
+ * Human-readable feature name (only present for labs)
1670
1658
  */
1671
- name: string;
1659
+ name?: string;
1672
1660
  /**
1673
- * Description of what the feature does
1661
+ * Description of what the feature does (only present for labs)
1674
1662
  */
1675
- description: string;
1663
+ description?: string;
1676
1664
  /**
1677
- * Whether the feature is globally available
1665
+ * Whether this feature is currently active for the user
1678
1666
  */
1679
- enabled: boolean;
1667
+ active: boolean;
1680
1668
  /**
1681
- * Whether the user has opted in to this feature
1669
+ * Whether the user can toggle this feature (lab=true, flag=false)
1682
1670
  */
1683
- userEnabled: boolean;
1671
+ userControllable: boolean;
1684
1672
  };
1685
1673
  /**
1686
1674
  * Paginated collection list response
1687
1675
  */
1688
1676
  export type CollectionListResponse = {
1689
1677
  collections: Array<Collection>;
1690
- pagination: CursorPagination;
1678
+ pagination: OpaqueCursorPagination;
1691
1679
  };
1692
1680
  /**
1693
1681
  * Request body for creating a new collection
@@ -1748,7 +1736,7 @@ export type CollectionWithSegments = {
1748
1736
  * Total number of segments in the collection
1749
1737
  */
1750
1738
  totalCount: number;
1751
- pagination: CursorPagination;
1739
+ pagination: OpaqueCursorPagination;
1752
1740
  };
1753
1741
  /**
1754
1742
  * Request to reindex segments from the database into Elasticsearch
@@ -1830,7 +1818,7 @@ export type AdminReport = Report & {
1830
1818
  };
1831
1819
  export type AdminReportListResponse = {
1832
1820
  reports: Array<AdminReport>;
1833
- pagination: CursorPagination;
1821
+ pagination: OpaqueCursorPagination;
1834
1822
  };
1835
1823
  export type UpdateReportRequest = {
1836
1824
  /**
@@ -1842,41 +1830,13 @@ export type UpdateReportRequest = {
1842
1830
  */
1843
1831
  adminNotes?: string;
1844
1832
  };
1845
- export type RunReviewResponse = {
1833
+ export type MediaAudit = {
1846
1834
  /**
1847
- * Category filter used
1848
- */
1849
- category: string;
1850
- checksRun: Array<{
1851
- /**
1852
- * Check identifier
1853
- */
1854
- checkName: string;
1855
- /**
1856
- * Human-readable check name
1857
- */
1858
- label: string;
1859
- /**
1860
- * Number of reports created
1861
- */
1862
- resultCount: number;
1863
- /**
1864
- * ID of the created run record
1865
- */
1866
- runId: number;
1867
- }>;
1868
- /**
1869
- * Total reports created across all checks
1870
- */
1871
- totalReports: number;
1872
- };
1873
- export type ReviewCheck = {
1874
- /**
1875
- * Check ID
1835
+ * Audit ID
1876
1836
  */
1877
1837
  id: number;
1878
1838
  /**
1879
- * Unique check identifier
1839
+ * Unique audit identifier
1880
1840
  */
1881
1841
  name: string;
1882
1842
  /**
@@ -1884,11 +1844,11 @@ export type ReviewCheck = {
1884
1844
  */
1885
1845
  label: string;
1886
1846
  /**
1887
- * What this check does
1847
+ * What this audit does
1888
1848
  */
1889
1849
  description: string;
1890
1850
  /**
1891
- * What level this check operates on
1851
+ * What level this audit operates on
1892
1852
  */
1893
1853
  targetType: 'MEDIA' | 'EPISODE';
1894
1854
  /**
@@ -1898,7 +1858,7 @@ export type ReviewCheck = {
1898
1858
  [key: string]: unknown;
1899
1859
  };
1900
1860
  /**
1901
- * Whether this check is active
1861
+ * Whether this audit is active
1902
1862
  */
1903
1863
  enabled: boolean;
1904
1864
  /**
@@ -1913,7 +1873,7 @@ export type ReviewCheck = {
1913
1873
  max?: number;
1914
1874
  }>;
1915
1875
  /**
1916
- * Latest run info for this check
1876
+ * Latest run info for this audit
1917
1877
  */
1918
1878
  latestRun?: {
1919
1879
  id?: number;
@@ -1923,15 +1883,43 @@ export type ReviewCheck = {
1923
1883
  createdAt?: string;
1924
1884
  updatedAt?: string;
1925
1885
  };
1926
- export type ReviewCheckRun = {
1886
+ export type RunAuditResponse = {
1887
+ /**
1888
+ * Category filter used
1889
+ */
1890
+ category: string;
1891
+ checksRun: Array<{
1892
+ /**
1893
+ * Audit identifier
1894
+ */
1895
+ auditName: string;
1896
+ /**
1897
+ * Human-readable audit name
1898
+ */
1899
+ label: string;
1900
+ /**
1901
+ * Number of reports created
1902
+ */
1903
+ resultCount: number;
1904
+ /**
1905
+ * ID of the created run record
1906
+ */
1907
+ runId: number;
1908
+ }>;
1909
+ /**
1910
+ * Total reports created across all audits
1911
+ */
1912
+ totalReports: number;
1913
+ };
1914
+ export type MediaAuditRun = {
1927
1915
  /**
1928
1916
  * Run ID
1929
1917
  */
1930
1918
  id: number;
1931
1919
  /**
1932
- * Name of the check that was run
1920
+ * Name of the audit that was run
1933
1921
  */
1934
- checkName: string;
1922
+ auditName: string;
1935
1923
  /**
1936
1924
  * Category filter used (ANIME/JDRAMA) or null for all
1937
1925
  */
@@ -1951,32 +1939,6 @@ export type ReviewCheckRun = {
1951
1939
  */
1952
1940
  createdAt: string;
1953
1941
  };
1954
- export type ReviewAllowlist = {
1955
- /**
1956
- * Allowlist entry ID
1957
- */
1958
- id: number;
1959
- /**
1960
- * Name of the check this entry applies to
1961
- */
1962
- checkName: string;
1963
- /**
1964
- * Media ID to exclude
1965
- */
1966
- mediaId: number;
1967
- /**
1968
- * Episode number to exclude (null for media-level checks)
1969
- */
1970
- episodeNumber?: number;
1971
- /**
1972
- * Why this was allowlisted
1973
- */
1974
- reason?: string;
1975
- /**
1976
- * When this entry was created
1977
- */
1978
- createdAt: string;
1979
- };
1980
1942
  export type SearchData = {
1981
1943
  body?: SearchRequest;
1982
1944
  path?: never;
@@ -2092,11 +2054,11 @@ export type ListMediaData = {
2092
2054
  /**
2093
2055
  * Number of results per page
2094
2056
  */
2095
- limit?: number;
2057
+ take?: number;
2096
2058
  /**
2097
- * Pagination cursor offset
2059
+ * Opaque pagination cursor token
2098
2060
  */
2099
- cursor?: number;
2061
+ cursor?: string;
2100
2062
  /**
2101
2063
  * Filter by media category
2102
2064
  */
@@ -2193,7 +2155,7 @@ export type AutocompleteMediaData = {
2193
2155
  /**
2194
2156
  * Maximum number of results to return
2195
2157
  */
2196
- limit?: number;
2158
+ take?: number;
2197
2159
  /**
2198
2160
  * Filter by media category
2199
2161
  */
@@ -2228,21 +2190,63 @@ export type AutocompleteMediaResponses = {
2228
2190
  /**
2229
2191
  * OK
2230
2192
  */
2231
- 200: MediaAutocompleteResponse;
2193
+ 200: MediaAutocompleteResponse;
2194
+ };
2195
+ export type AutocompleteMediaResponse = AutocompleteMediaResponses[keyof AutocompleteMediaResponses];
2196
+ export type GetSegmentByUuidData = {
2197
+ body?: never;
2198
+ path: {
2199
+ /**
2200
+ * Segment UUID
2201
+ */
2202
+ uuid: string;
2203
+ };
2204
+ query?: never;
2205
+ url: '/v1/media/segments/{uuid}';
2206
+ };
2207
+ export type GetSegmentByUuidErrors = {
2208
+ /**
2209
+ * Bad Request
2210
+ */
2211
+ 400: Error400;
2212
+ /**
2213
+ * Unauthorized
2214
+ */
2215
+ 401: Error401;
2216
+ /**
2217
+ * Forbidden
2218
+ */
2219
+ 403: Error403;
2220
+ /**
2221
+ * Not Found
2222
+ */
2223
+ 404: Error404;
2224
+ /**
2225
+ * Too Many Requests
2226
+ */
2227
+ 429: Error429;
2228
+ /**
2229
+ * Internal Server Error
2230
+ */
2231
+ 500: Error500;
2232
2232
  };
2233
- export type AutocompleteMediaResponse = AutocompleteMediaResponses[keyof AutocompleteMediaResponses];
2234
- export type DeleteMediaData = {
2235
- body?: never;
2233
+ export type GetSegmentByUuidError = GetSegmentByUuidErrors[keyof GetSegmentByUuidErrors];
2234
+ export type GetSegmentByUuidResponses = {
2235
+ 200: Segment;
2236
+ };
2237
+ export type GetSegmentByUuidResponse = GetSegmentByUuidResponses[keyof GetSegmentByUuidResponses];
2238
+ export type UpdateSegmentByUuidData = {
2239
+ body: SegmentUpdateRequest;
2236
2240
  path: {
2237
2241
  /**
2238
- * Media ID
2242
+ * Segment UUID
2239
2243
  */
2240
- id: number;
2244
+ uuid: string;
2241
2245
  };
2242
2246
  query?: never;
2243
- url: '/v1/media/{id}';
2247
+ url: '/v1/media/segments/{uuid}';
2244
2248
  };
2245
- export type DeleteMediaErrors = {
2249
+ export type UpdateSegmentByUuidErrors = {
2246
2250
  /**
2247
2251
  * Bad Request
2248
2252
  */
@@ -2268,31 +2272,39 @@ export type DeleteMediaErrors = {
2268
2272
  */
2269
2273
  500: Error500;
2270
2274
  };
2271
- export type DeleteMediaError = DeleteMediaErrors[keyof DeleteMediaErrors];
2272
- export type DeleteMediaResponses = {
2275
+ export type UpdateSegmentByUuidError = UpdateSegmentByUuidErrors[keyof UpdateSegmentByUuidErrors];
2276
+ export type UpdateSegmentByUuidResponses = {
2273
2277
  /**
2274
- * No Content
2278
+ * Single segment response with internal fields
2275
2279
  */
2276
- 204: void;
2280
+ 200: SegmentInternal;
2277
2281
  };
2278
- export type DeleteMediaResponse = DeleteMediaResponses[keyof DeleteMediaResponses];
2279
- export type GetMediaData = {
2282
+ export type UpdateSegmentByUuidResponse = UpdateSegmentByUuidResponses[keyof UpdateSegmentByUuidResponses];
2283
+ export type GetSegmentContextData = {
2280
2284
  body?: never;
2281
2285
  path: {
2282
2286
  /**
2283
- * Media ID
2287
+ * Segment UUID
2284
2288
  */
2285
- id: number;
2289
+ uuid: string;
2286
2290
  };
2287
2291
  query?: {
2288
2292
  /**
2289
- * Resources to expand in the media response (`media.characters` implies `media`)
2293
+ * Number of segments to return before and after the target
2290
2294
  */
2291
- include?: Array<MediaIncludeExpansion>;
2295
+ take?: number;
2296
+ /**
2297
+ * Content ratings to include (omit for all ratings)
2298
+ */
2299
+ contentRating?: Array<ContentRating>;
2300
+ /**
2301
+ * Resources to expand in the response includes block
2302
+ */
2303
+ include?: Array<IncludeExpansion>;
2292
2304
  };
2293
- url: '/v1/media/{id}';
2305
+ url: '/v1/media/segments/{uuid}/context';
2294
2306
  };
2295
- export type GetMediaErrors = {
2307
+ export type GetSegmentContextErrors = {
2296
2308
  /**
2297
2309
  * Bad Request
2298
2310
  */
@@ -2318,26 +2330,34 @@ export type GetMediaErrors = {
2318
2330
  */
2319
2331
  500: Error500;
2320
2332
  };
2321
- export type GetMediaError = GetMediaErrors[keyof GetMediaErrors];
2322
- export type GetMediaResponses = {
2333
+ export type GetSegmentContextError = GetSegmentContextErrors[keyof GetSegmentContextErrors];
2334
+ export type GetSegmentContextResponses = {
2323
2335
  /**
2324
2336
  * OK
2325
2337
  */
2326
- 200: Media;
2338
+ 200: SegmentContextResponse;
2327
2339
  };
2328
- export type GetMediaResponse = GetMediaResponses[keyof GetMediaResponses];
2329
- export type UpdateMediaData = {
2330
- body: MediaUpdateRequest;
2331
- path: {
2340
+ export type GetSegmentContextResponse = GetSegmentContextResponses[keyof GetSegmentContextResponses];
2341
+ export type ListSeriesData = {
2342
+ body?: never;
2343
+ path?: never;
2344
+ query?: {
2332
2345
  /**
2333
- * Media ID
2346
+ * Number of results per page
2334
2347
  */
2335
- id: number;
2348
+ take?: number;
2349
+ /**
2350
+ * Opaque pagination cursor token
2351
+ */
2352
+ cursor?: string;
2353
+ /**
2354
+ * Case-insensitive search across English, Japanese, and Romaji names
2355
+ */
2356
+ query?: string;
2336
2357
  };
2337
- query?: never;
2338
- url: '/v1/media/{id}';
2358
+ url: '/v1/media/series';
2339
2359
  };
2340
- export type UpdateMediaErrors = {
2360
+ export type ListSeriesErrors = {
2341
2361
  /**
2342
2362
  * Bad Request
2343
2363
  */
@@ -2350,10 +2370,6 @@ export type UpdateMediaErrors = {
2350
2370
  * Forbidden
2351
2371
  */
2352
2372
  403: Error403;
2353
- /**
2354
- * Not Found
2355
- */
2356
- 404: Error404;
2357
2373
  /**
2358
2374
  * Too Many Requests
2359
2375
  */
@@ -2363,35 +2379,34 @@ export type UpdateMediaErrors = {
2363
2379
  */
2364
2380
  500: Error500;
2365
2381
  };
2366
- export type UpdateMediaError = UpdateMediaErrors[keyof UpdateMediaErrors];
2367
- export type UpdateMediaResponses = {
2382
+ export type ListSeriesError = ListSeriesErrors[keyof ListSeriesErrors];
2383
+ export type ListSeriesResponses = {
2368
2384
  /**
2369
2385
  * OK
2370
2386
  */
2371
- 200: Media;
2387
+ 200: SeriesListResponse;
2372
2388
  };
2373
- export type UpdateMediaResponse = UpdateMediaResponses[keyof UpdateMediaResponses];
2374
- export type ListEpisodesData = {
2375
- body?: never;
2376
- path: {
2389
+ export type ListSeriesResponse = ListSeriesResponses[keyof ListSeriesResponses];
2390
+ export type CreateSeriesData = {
2391
+ body: {
2377
2392
  /**
2378
- * ID of the media
2393
+ * Japanese name of the series
2379
2394
  */
2380
- mediaId: number;
2381
- };
2382
- query?: {
2395
+ nameJa: string;
2383
2396
  /**
2384
- * Maximum number of episodes to return
2397
+ * Romaji name of the series
2385
2398
  */
2386
- limit?: number;
2399
+ nameRomaji: string;
2387
2400
  /**
2388
- * Episode number to start from (for pagination)
2401
+ * English name of the series
2389
2402
  */
2390
- cursor?: number;
2403
+ nameEn: string;
2391
2404
  };
2392
- url: '/v1/media/{mediaId}/episodes';
2405
+ path?: never;
2406
+ query?: never;
2407
+ url: '/v1/media/series';
2393
2408
  };
2394
- export type ListEpisodesErrors = {
2409
+ export type CreateSeriesErrors = {
2395
2410
  /**
2396
2411
  * Bad Request
2397
2412
  */
@@ -2404,10 +2419,6 @@ export type ListEpisodesErrors = {
2404
2419
  * Forbidden
2405
2420
  */
2406
2421
  403: Error403;
2407
- /**
2408
- * Not Found
2409
- */
2410
- 404: Error404;
2411
2422
  /**
2412
2423
  * Too Many Requests
2413
2424
  */
@@ -2417,26 +2428,26 @@ export type ListEpisodesErrors = {
2417
2428
  */
2418
2429
  500: Error500;
2419
2430
  };
2420
- export type ListEpisodesError = ListEpisodesErrors[keyof ListEpisodesErrors];
2421
- export type ListEpisodesResponses = {
2431
+ export type CreateSeriesError = CreateSeriesErrors[keyof CreateSeriesErrors];
2432
+ export type CreateSeriesResponses = {
2422
2433
  /**
2423
- * Paginated list of episodes
2434
+ * Created
2424
2435
  */
2425
- 200: EpisodeListResponse;
2436
+ 201: Series;
2426
2437
  };
2427
- export type ListEpisodesResponse = ListEpisodesResponses[keyof ListEpisodesResponses];
2428
- export type CreateEpisodeData = {
2429
- body: EpisodeCreateRequest;
2438
+ export type CreateSeriesResponse = CreateSeriesResponses[keyof CreateSeriesResponses];
2439
+ export type DeleteSeriesData = {
2440
+ body?: never;
2430
2441
  path: {
2431
2442
  /**
2432
- * ID of the media
2443
+ * Series ID
2433
2444
  */
2434
- mediaId: number;
2445
+ id: number;
2435
2446
  };
2436
2447
  query?: never;
2437
- url: '/v1/media/{mediaId}/episodes';
2448
+ url: '/v1/media/series/{id}';
2438
2449
  };
2439
- export type CreateEpisodeErrors = {
2450
+ export type DeleteSeriesErrors = {
2440
2451
  /**
2441
2452
  * Bad Request
2442
2453
  */
@@ -2453,10 +2464,6 @@ export type CreateEpisodeErrors = {
2453
2464
  * Not Found
2454
2465
  */
2455
2466
  404: Error404;
2456
- /**
2457
- * Conflict
2458
- */
2459
- 409: Error409;
2460
2467
  /**
2461
2468
  * Too Many Requests
2462
2469
  */
@@ -2466,30 +2473,31 @@ export type CreateEpisodeErrors = {
2466
2473
  */
2467
2474
  500: Error500;
2468
2475
  };
2469
- export type CreateEpisodeError = CreateEpisodeErrors[keyof CreateEpisodeErrors];
2470
- export type CreateEpisodeResponses = {
2476
+ export type DeleteSeriesError = DeleteSeriesErrors[keyof DeleteSeriesErrors];
2477
+ export type DeleteSeriesResponses = {
2471
2478
  /**
2472
- * Single episode response
2479
+ * No Content
2473
2480
  */
2474
- 201: Episode;
2481
+ 204: void;
2475
2482
  };
2476
- export type CreateEpisodeResponse = CreateEpisodeResponses[keyof CreateEpisodeResponses];
2477
- export type DeleteEpisodeData = {
2483
+ export type DeleteSeriesResponse = DeleteSeriesResponses[keyof DeleteSeriesResponses];
2484
+ export type GetSeriesData = {
2478
2485
  body?: never;
2479
2486
  path: {
2480
2487
  /**
2481
- * ID of the media
2488
+ * Series ID
2482
2489
  */
2483
- mediaId: number;
2490
+ id: number;
2491
+ };
2492
+ query?: {
2484
2493
  /**
2485
- * Episode number
2494
+ * Resources to expand in the series response (`media.characters` implies `media`)
2486
2495
  */
2487
- episodeNumber: number;
2496
+ include?: Array<MediaIncludeExpansion>;
2488
2497
  };
2489
- query?: never;
2490
- url: '/v1/media/{mediaId}/episodes/{episodeNumber}';
2498
+ url: '/v1/media/series/{id}';
2491
2499
  };
2492
- export type DeleteEpisodeErrors = {
2500
+ export type GetSeriesErrors = {
2493
2501
  /**
2494
2502
  * Bad Request
2495
2503
  */
@@ -2515,30 +2523,39 @@ export type DeleteEpisodeErrors = {
2515
2523
  */
2516
2524
  500: Error500;
2517
2525
  };
2518
- export type DeleteEpisodeError = DeleteEpisodeErrors[keyof DeleteEpisodeErrors];
2519
- export type DeleteEpisodeResponses = {
2526
+ export type GetSeriesError = GetSeriesErrors[keyof GetSeriesErrors];
2527
+ export type GetSeriesResponses = {
2520
2528
  /**
2521
- * Episode successfully deleted
2529
+ * OK
2522
2530
  */
2523
- 204: void;
2531
+ 200: SeriesWithMedia;
2524
2532
  };
2525
- export type DeleteEpisodeResponse = DeleteEpisodeResponses[keyof DeleteEpisodeResponses];
2526
- export type GetEpisodeData = {
2527
- body?: never;
2528
- path: {
2533
+ export type GetSeriesResponse = GetSeriesResponses[keyof GetSeriesResponses];
2534
+ export type UpdateSeriesData = {
2535
+ body: {
2529
2536
  /**
2530
- * ID of the media
2537
+ * Updated Japanese name
2531
2538
  */
2532
- mediaId: number;
2539
+ nameJa?: string;
2533
2540
  /**
2534
- * Episode number
2541
+ * Updated Romaji name
2535
2542
  */
2536
- episodeNumber: number;
2543
+ nameRomaji?: string;
2544
+ /**
2545
+ * Updated English name
2546
+ */
2547
+ nameEn?: string;
2548
+ };
2549
+ path: {
2550
+ /**
2551
+ * Series ID
2552
+ */
2553
+ id: number;
2537
2554
  };
2538
2555
  query?: never;
2539
- url: '/v1/media/{mediaId}/episodes/{episodeNumber}';
2556
+ url: '/v1/media/series/{id}';
2540
2557
  };
2541
- export type GetEpisodeErrors = {
2558
+ export type UpdateSeriesErrors = {
2542
2559
  /**
2543
2560
  * Bad Request
2544
2561
  */
@@ -2564,30 +2581,35 @@ export type GetEpisodeErrors = {
2564
2581
  */
2565
2582
  500: Error500;
2566
2583
  };
2567
- export type GetEpisodeError = GetEpisodeErrors[keyof GetEpisodeErrors];
2568
- export type GetEpisodeResponses = {
2584
+ export type UpdateSeriesError = UpdateSeriesErrors[keyof UpdateSeriesErrors];
2585
+ export type UpdateSeriesResponses = {
2569
2586
  /**
2570
- * Single episode response
2587
+ * OK
2571
2588
  */
2572
- 200: Episode;
2589
+ 200: Series;
2573
2590
  };
2574
- export type GetEpisodeResponse = GetEpisodeResponses[keyof GetEpisodeResponses];
2575
- export type UpdateEpisodeData = {
2576
- body: EpisodeUpdateRequest;
2577
- path: {
2591
+ export type UpdateSeriesResponse = UpdateSeriesResponses[keyof UpdateSeriesResponses];
2592
+ export type AddMediaToSeriesData = {
2593
+ body: {
2578
2594
  /**
2579
- * ID of the media
2595
+ * Media ID to add
2580
2596
  */
2581
2597
  mediaId: number;
2582
2598
  /**
2583
- * Episode number
2599
+ * Position in the series (1-indexed)
2584
2600
  */
2585
- episodeNumber: number;
2601
+ position: number;
2602
+ };
2603
+ path: {
2604
+ /**
2605
+ * Series ID
2606
+ */
2607
+ id: number;
2586
2608
  };
2587
2609
  query?: never;
2588
- url: '/v1/media/{mediaId}/episodes/{episodeNumber}';
2610
+ url: '/v1/media/series/{id}/media';
2589
2611
  };
2590
- export type UpdateEpisodeErrors = {
2612
+ export type AddMediaToSeriesErrors = {
2591
2613
  /**
2592
2614
  * Bad Request
2593
2615
  */
@@ -2613,39 +2635,30 @@ export type UpdateEpisodeErrors = {
2613
2635
  */
2614
2636
  500: Error500;
2615
2637
  };
2616
- export type UpdateEpisodeError = UpdateEpisodeErrors[keyof UpdateEpisodeErrors];
2617
- export type UpdateEpisodeResponses = {
2638
+ export type AddMediaToSeriesError = AddMediaToSeriesErrors[keyof AddMediaToSeriesErrors];
2639
+ export type AddMediaToSeriesResponses = {
2618
2640
  /**
2619
- * Single episode response
2641
+ * No Content
2620
2642
  */
2621
- 200: Episode;
2643
+ 204: void;
2622
2644
  };
2623
- export type UpdateEpisodeResponse = UpdateEpisodeResponses[keyof UpdateEpisodeResponses];
2624
- export type ListSegmentsData = {
2645
+ export type AddMediaToSeriesResponse = AddMediaToSeriesResponses[keyof AddMediaToSeriesResponses];
2646
+ export type RemoveMediaFromSeriesData = {
2625
2647
  body?: never;
2626
2648
  path: {
2627
2649
  /**
2628
- * ID of the media
2629
- */
2630
- mediaId: number;
2631
- /**
2632
- * Episode number
2633
- */
2634
- episodeNumber: number;
2635
- };
2636
- query?: {
2637
- /**
2638
- * Maximum number of segments to return
2650
+ * Series ID
2639
2651
  */
2640
- limit?: number;
2652
+ id: number;
2641
2653
  /**
2642
- * Segment ID to start from (for pagination)
2654
+ * Media ID
2643
2655
  */
2644
- cursor?: number;
2656
+ mediaId: number;
2645
2657
  };
2646
- url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments';
2658
+ query?: never;
2659
+ url: '/v1/media/series/{id}/media/{mediaId}';
2647
2660
  };
2648
- export type ListSegmentsErrors = {
2661
+ export type RemoveMediaFromSeriesErrors = {
2649
2662
  /**
2650
2663
  * Bad Request
2651
2664
  */
@@ -2671,36 +2684,35 @@ export type ListSegmentsErrors = {
2671
2684
  */
2672
2685
  500: Error500;
2673
2686
  };
2674
- export type ListSegmentsError = ListSegmentsErrors[keyof ListSegmentsErrors];
2675
- export type ListSegmentsResponses = {
2687
+ export type RemoveMediaFromSeriesError = RemoveMediaFromSeriesErrors[keyof RemoveMediaFromSeriesErrors];
2688
+ export type RemoveMediaFromSeriesResponses = {
2676
2689
  /**
2677
- * Paginated segment list response
2690
+ * No Content
2678
2691
  */
2679
- 200: {
2692
+ 204: void;
2693
+ };
2694
+ export type RemoveMediaFromSeriesResponse = RemoveMediaFromSeriesResponses[keyof RemoveMediaFromSeriesResponses];
2695
+ export type UpdateSeriesMediaData = {
2696
+ body: {
2680
2697
  /**
2681
- * Array of segment objects
2698
+ * New position in the series (1-indexed)
2682
2699
  */
2683
- segments: Array<Segment>;
2684
- pagination: CursorPagination;
2700
+ position: number;
2685
2701
  };
2686
- };
2687
- export type ListSegmentsResponse = ListSegmentsResponses[keyof ListSegmentsResponses];
2688
- export type CreateSegmentData = {
2689
- body: SegmentCreateRequest;
2690
2702
  path: {
2691
2703
  /**
2692
- * ID of the media
2704
+ * Series ID
2693
2705
  */
2694
- mediaId: number;
2706
+ id: number;
2695
2707
  /**
2696
- * Episode number
2708
+ * Media ID
2697
2709
  */
2698
- episodeNumber: number;
2710
+ mediaId: number;
2699
2711
  };
2700
2712
  query?: never;
2701
- url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments';
2713
+ url: '/v1/media/series/{id}/media/{mediaId}';
2702
2714
  };
2703
- export type CreateSegmentErrors = {
2715
+ export type UpdateSeriesMediaErrors = {
2704
2716
  /**
2705
2717
  * Bad Request
2706
2718
  */
@@ -2717,10 +2729,6 @@ export type CreateSegmentErrors = {
2717
2729
  * Not Found
2718
2730
  */
2719
2731
  404: Error404;
2720
- /**
2721
- * Conflict
2722
- */
2723
- 409: Error409;
2724
2732
  /**
2725
2733
  * Too Many Requests
2726
2734
  */
@@ -2730,34 +2738,26 @@ export type CreateSegmentErrors = {
2730
2738
  */
2731
2739
  500: Error500;
2732
2740
  };
2733
- export type CreateSegmentError = CreateSegmentErrors[keyof CreateSegmentErrors];
2734
- export type CreateSegmentResponses = {
2741
+ export type UpdateSeriesMediaError = UpdateSeriesMediaErrors[keyof UpdateSeriesMediaErrors];
2742
+ export type UpdateSeriesMediaResponses = {
2735
2743
  /**
2736
- * Single segment response with internal fields
2744
+ * No Content
2737
2745
  */
2738
- 201: SegmentInternal;
2746
+ 204: void;
2739
2747
  };
2740
- export type CreateSegmentResponse = CreateSegmentResponses[keyof CreateSegmentResponses];
2741
- export type DeleteSegmentData = {
2748
+ export type UpdateSeriesMediaResponse = UpdateSeriesMediaResponses[keyof UpdateSeriesMediaResponses];
2749
+ export type GetCharacterData = {
2742
2750
  body?: never;
2743
2751
  path: {
2744
2752
  /**
2745
- * ID of the media
2746
- */
2747
- mediaId: number;
2748
- /**
2749
- * Episode number
2750
- */
2751
- episodeNumber: number;
2752
- /**
2753
- * Segment ID
2753
+ * Internal character ID
2754
2754
  */
2755
2755
  id: number;
2756
2756
  };
2757
2757
  query?: never;
2758
- url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}';
2758
+ url: '/v1/media/characters/{id}';
2759
2759
  };
2760
- export type DeleteSegmentErrors = {
2760
+ export type GetCharacterErrors = {
2761
2761
  /**
2762
2762
  * Bad Request
2763
2763
  */
@@ -2783,34 +2783,26 @@ export type DeleteSegmentErrors = {
2783
2783
  */
2784
2784
  500: Error500;
2785
2785
  };
2786
- export type DeleteSegmentError = DeleteSegmentErrors[keyof DeleteSegmentErrors];
2787
- export type DeleteSegmentResponses = {
2786
+ export type GetCharacterError = GetCharacterErrors[keyof GetCharacterErrors];
2787
+ export type GetCharacterResponses = {
2788
2788
  /**
2789
- * Segment successfully deleted
2789
+ * OK
2790
2790
  */
2791
- 204: void;
2791
+ 200: CharacterWithMedia;
2792
2792
  };
2793
- export type DeleteSegmentResponse = DeleteSegmentResponses[keyof DeleteSegmentResponses];
2794
- export type GetSegmentData = {
2793
+ export type GetCharacterResponse = GetCharacterResponses[keyof GetCharacterResponses];
2794
+ export type GetSeiyuuData = {
2795
2795
  body?: never;
2796
2796
  path: {
2797
2797
  /**
2798
- * ID of the media
2799
- */
2800
- mediaId: number;
2801
- /**
2802
- * Episode number
2803
- */
2804
- episodeNumber: number;
2805
- /**
2806
- * Segment ID
2798
+ * Internal seiyuu ID
2807
2799
  */
2808
2800
  id: number;
2809
2801
  };
2810
2802
  query?: never;
2811
- url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}';
2803
+ url: '/v1/media/seiyuu/{id}';
2812
2804
  };
2813
- export type GetSegmentErrors = {
2805
+ export type GetSeiyuuErrors = {
2814
2806
  /**
2815
2807
  * Bad Request
2816
2808
  */
@@ -2836,34 +2828,26 @@ export type GetSegmentErrors = {
2836
2828
  */
2837
2829
  500: Error500;
2838
2830
  };
2839
- export type GetSegmentError = GetSegmentErrors[keyof GetSegmentErrors];
2840
- export type GetSegmentResponses = {
2831
+ export type GetSeiyuuError = GetSeiyuuErrors[keyof GetSeiyuuErrors];
2832
+ export type GetSeiyuuResponses = {
2841
2833
  /**
2842
- * Single segment response
2834
+ * OK
2843
2835
  */
2844
- 200: Segment;
2836
+ 200: SeiyuuWithRoles;
2845
2837
  };
2846
- export type GetSegmentResponse = GetSegmentResponses[keyof GetSegmentResponses];
2847
- export type UpdateSegmentData = {
2848
- body: SegmentUpdateRequest;
2838
+ export type GetSeiyuuResponse = GetSeiyuuResponses[keyof GetSeiyuuResponses];
2839
+ export type DeleteMediaData = {
2840
+ body?: never;
2849
2841
  path: {
2850
2842
  /**
2851
- * ID of the media
2852
- */
2853
- mediaId: number;
2854
- /**
2855
- * Episode number
2856
- */
2857
- episodeNumber: number;
2858
- /**
2859
- * Segment ID
2843
+ * Media ID
2860
2844
  */
2861
2845
  id: number;
2862
2846
  };
2863
2847
  query?: never;
2864
- url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}';
2848
+ url: '/v1/media/{id}';
2865
2849
  };
2866
- export type UpdateSegmentErrors = {
2850
+ export type DeleteMediaErrors = {
2867
2851
  /**
2868
2852
  * Bad Request
2869
2853
  */
@@ -2889,26 +2873,31 @@ export type UpdateSegmentErrors = {
2889
2873
  */
2890
2874
  500: Error500;
2891
2875
  };
2892
- export type UpdateSegmentError = UpdateSegmentErrors[keyof UpdateSegmentErrors];
2893
- export type UpdateSegmentResponses = {
2876
+ export type DeleteMediaError = DeleteMediaErrors[keyof DeleteMediaErrors];
2877
+ export type DeleteMediaResponses = {
2894
2878
  /**
2895
- * Single segment response with internal fields
2879
+ * No Content
2896
2880
  */
2897
- 200: SegmentInternal;
2881
+ 204: void;
2898
2882
  };
2899
- export type UpdateSegmentResponse = UpdateSegmentResponses[keyof UpdateSegmentResponses];
2900
- export type GetSegmentByUuidData = {
2883
+ export type DeleteMediaResponse = DeleteMediaResponses[keyof DeleteMediaResponses];
2884
+ export type GetMediaData = {
2901
2885
  body?: never;
2902
2886
  path: {
2903
2887
  /**
2904
- * Segment UUID
2888
+ * Media ID
2905
2889
  */
2906
- uuid: string;
2890
+ id: number;
2907
2891
  };
2908
- query?: never;
2909
- url: '/v1/media/segments/{uuid}';
2892
+ query?: {
2893
+ /**
2894
+ * Resources to expand in the media response (`media.characters` implies `media`)
2895
+ */
2896
+ include?: Array<MediaIncludeExpansion>;
2897
+ };
2898
+ url: '/v1/media/{id}';
2910
2899
  };
2911
- export type GetSegmentByUuidErrors = {
2900
+ export type GetMediaErrors = {
2912
2901
  /**
2913
2902
  * Bad Request
2914
2903
  */
@@ -2934,36 +2923,26 @@ export type GetSegmentByUuidErrors = {
2934
2923
  */
2935
2924
  500: Error500;
2936
2925
  };
2937
- export type GetSegmentByUuidError = GetSegmentByUuidErrors[keyof GetSegmentByUuidErrors];
2938
- export type GetSegmentByUuidResponses = {
2939
- 200: Segment;
2926
+ export type GetMediaError = GetMediaErrors[keyof GetMediaErrors];
2927
+ export type GetMediaResponses = {
2928
+ /**
2929
+ * OK
2930
+ */
2931
+ 200: Media;
2940
2932
  };
2941
- export type GetSegmentByUuidResponse = GetSegmentByUuidResponses[keyof GetSegmentByUuidResponses];
2942
- export type GetSegmentContextData = {
2943
- body?: never;
2933
+ export type GetMediaResponse = GetMediaResponses[keyof GetMediaResponses];
2934
+ export type UpdateMediaData = {
2935
+ body: MediaUpdateRequest;
2944
2936
  path: {
2945
2937
  /**
2946
- * Segment UUID
2947
- */
2948
- uuid: string;
2949
- };
2950
- query?: {
2951
- /**
2952
- * Number of segments to return before and after the target
2953
- */
2954
- limit?: number;
2955
- /**
2956
- * Content ratings to include (omit for all ratings)
2957
- */
2958
- contentRating?: Array<ContentRating>;
2959
- /**
2960
- * Resources to expand in the response includes block
2938
+ * Media ID
2961
2939
  */
2962
- include?: Array<IncludeExpansion>;
2940
+ id: number;
2963
2941
  };
2964
- url: '/v1/media/segments/{uuid}/context';
2942
+ query?: never;
2943
+ url: '/v1/media/{id}';
2965
2944
  };
2966
- export type GetSegmentContextErrors = {
2945
+ export type UpdateMediaErrors = {
2967
2946
  /**
2968
2947
  * Bad Request
2969
2948
  */
@@ -2989,34 +2968,35 @@ export type GetSegmentContextErrors = {
2989
2968
  */
2990
2969
  500: Error500;
2991
2970
  };
2992
- export type GetSegmentContextError = GetSegmentContextErrors[keyof GetSegmentContextErrors];
2993
- export type GetSegmentContextResponses = {
2971
+ export type UpdateMediaError = UpdateMediaErrors[keyof UpdateMediaErrors];
2972
+ export type UpdateMediaResponses = {
2994
2973
  /**
2995
2974
  * OK
2996
2975
  */
2997
- 200: SegmentContextResponse;
2976
+ 200: Media;
2998
2977
  };
2999
- export type GetSegmentContextResponse = GetSegmentContextResponses[keyof GetSegmentContextResponses];
3000
- export type ListSeriesData = {
2978
+ export type UpdateMediaResponse = UpdateMediaResponses[keyof UpdateMediaResponses];
2979
+ export type ListEpisodesData = {
3001
2980
  body?: never;
3002
- path?: never;
3003
- query?: {
2981
+ path: {
3004
2982
  /**
3005
- * Number of results per page
2983
+ * ID of the media
3006
2984
  */
3007
- limit?: number;
2985
+ mediaId: number;
2986
+ };
2987
+ query?: {
3008
2988
  /**
3009
- * Pagination cursor offset
2989
+ * Maximum number of episodes to return
3010
2990
  */
3011
- cursor?: number;
2991
+ take?: number;
3012
2992
  /**
3013
- * Case-insensitive search across English, Japanese, and Romaji names
2993
+ * Opaque pagination cursor token
3014
2994
  */
3015
- query?: string;
2995
+ cursor?: string;
3016
2996
  };
3017
- url: '/v1/media/series';
2997
+ url: '/v1/media/{mediaId}/episodes';
3018
2998
  };
3019
- export type ListSeriesErrors = {
2999
+ export type ListEpisodesErrors = {
3020
3000
  /**
3021
3001
  * Bad Request
3022
3002
  */
@@ -3029,6 +3009,10 @@ export type ListSeriesErrors = {
3029
3009
  * Forbidden
3030
3010
  */
3031
3011
  403: Error403;
3012
+ /**
3013
+ * Not Found
3014
+ */
3015
+ 404: Error404;
3032
3016
  /**
3033
3017
  * Too Many Requests
3034
3018
  */
@@ -3038,34 +3022,26 @@ export type ListSeriesErrors = {
3038
3022
  */
3039
3023
  500: Error500;
3040
3024
  };
3041
- export type ListSeriesError = ListSeriesErrors[keyof ListSeriesErrors];
3042
- export type ListSeriesResponses = {
3025
+ export type ListEpisodesError = ListEpisodesErrors[keyof ListEpisodesErrors];
3026
+ export type ListEpisodesResponses = {
3043
3027
  /**
3044
- * OK
3028
+ * Paginated list of episodes
3045
3029
  */
3046
- 200: SeriesListResponse;
3030
+ 200: EpisodeListResponse;
3047
3031
  };
3048
- export type ListSeriesResponse = ListSeriesResponses[keyof ListSeriesResponses];
3049
- export type CreateSeriesData = {
3050
- body: {
3051
- /**
3052
- * Japanese name of the series
3053
- */
3054
- nameJa: string;
3055
- /**
3056
- * Romaji name of the series
3057
- */
3058
- nameRomaji: string;
3032
+ export type ListEpisodesResponse = ListEpisodesResponses[keyof ListEpisodesResponses];
3033
+ export type CreateEpisodeData = {
3034
+ body: EpisodeCreateRequest;
3035
+ path: {
3059
3036
  /**
3060
- * English name of the series
3037
+ * ID of the media
3061
3038
  */
3062
- nameEn: string;
3039
+ mediaId: number;
3063
3040
  };
3064
- path?: never;
3065
3041
  query?: never;
3066
- url: '/v1/media/series';
3042
+ url: '/v1/media/{mediaId}/episodes';
3067
3043
  };
3068
- export type CreateSeriesErrors = {
3044
+ export type CreateEpisodeErrors = {
3069
3045
  /**
3070
3046
  * Bad Request
3071
3047
  */
@@ -3073,11 +3049,19 @@ export type CreateSeriesErrors = {
3073
3049
  /**
3074
3050
  * Unauthorized
3075
3051
  */
3076
- 401: Error401;
3052
+ 401: Error401;
3053
+ /**
3054
+ * Forbidden
3055
+ */
3056
+ 403: Error403;
3057
+ /**
3058
+ * Not Found
3059
+ */
3060
+ 404: Error404;
3077
3061
  /**
3078
- * Forbidden
3062
+ * Conflict
3079
3063
  */
3080
- 403: Error403;
3064
+ 409: Error409;
3081
3065
  /**
3082
3066
  * Too Many Requests
3083
3067
  */
@@ -3087,26 +3071,30 @@ export type CreateSeriesErrors = {
3087
3071
  */
3088
3072
  500: Error500;
3089
3073
  };
3090
- export type CreateSeriesError = CreateSeriesErrors[keyof CreateSeriesErrors];
3091
- export type CreateSeriesResponses = {
3074
+ export type CreateEpisodeError = CreateEpisodeErrors[keyof CreateEpisodeErrors];
3075
+ export type CreateEpisodeResponses = {
3092
3076
  /**
3093
- * Created
3077
+ * Single episode response
3094
3078
  */
3095
- 201: Series;
3079
+ 201: Episode;
3096
3080
  };
3097
- export type CreateSeriesResponse = CreateSeriesResponses[keyof CreateSeriesResponses];
3098
- export type DeleteSeriesData = {
3081
+ export type CreateEpisodeResponse = CreateEpisodeResponses[keyof CreateEpisodeResponses];
3082
+ export type DeleteEpisodeData = {
3099
3083
  body?: never;
3100
3084
  path: {
3101
3085
  /**
3102
- * Series ID
3086
+ * ID of the media
3103
3087
  */
3104
- id: number;
3088
+ mediaId: number;
3089
+ /**
3090
+ * Episode number
3091
+ */
3092
+ episodeNumber: number;
3105
3093
  };
3106
3094
  query?: never;
3107
- url: '/v1/media/series/{id}';
3095
+ url: '/v1/media/{mediaId}/episodes/{episodeNumber}';
3108
3096
  };
3109
- export type DeleteSeriesErrors = {
3097
+ export type DeleteEpisodeErrors = {
3110
3098
  /**
3111
3099
  * Bad Request
3112
3100
  */
@@ -3132,31 +3120,30 @@ export type DeleteSeriesErrors = {
3132
3120
  */
3133
3121
  500: Error500;
3134
3122
  };
3135
- export type DeleteSeriesError = DeleteSeriesErrors[keyof DeleteSeriesErrors];
3136
- export type DeleteSeriesResponses = {
3123
+ export type DeleteEpisodeError = DeleteEpisodeErrors[keyof DeleteEpisodeErrors];
3124
+ export type DeleteEpisodeResponses = {
3137
3125
  /**
3138
- * No Content
3126
+ * Episode successfully deleted
3139
3127
  */
3140
3128
  204: void;
3141
3129
  };
3142
- export type DeleteSeriesResponse = DeleteSeriesResponses[keyof DeleteSeriesResponses];
3143
- export type GetSeriesData = {
3130
+ export type DeleteEpisodeResponse = DeleteEpisodeResponses[keyof DeleteEpisodeResponses];
3131
+ export type GetEpisodeData = {
3144
3132
  body?: never;
3145
3133
  path: {
3146
3134
  /**
3147
- * Series ID
3135
+ * ID of the media
3148
3136
  */
3149
- id: number;
3150
- };
3151
- query?: {
3137
+ mediaId: number;
3152
3138
  /**
3153
- * Resources to expand in the series response (`media.characters` implies `media`)
3139
+ * Episode number
3154
3140
  */
3155
- include?: Array<MediaIncludeExpansion>;
3141
+ episodeNumber: number;
3156
3142
  };
3157
- url: '/v1/media/series/{id}';
3143
+ query?: never;
3144
+ url: '/v1/media/{mediaId}/episodes/{episodeNumber}';
3158
3145
  };
3159
- export type GetSeriesErrors = {
3146
+ export type GetEpisodeErrors = {
3160
3147
  /**
3161
3148
  * Bad Request
3162
3149
  */
@@ -3182,39 +3169,30 @@ export type GetSeriesErrors = {
3182
3169
  */
3183
3170
  500: Error500;
3184
3171
  };
3185
- export type GetSeriesError = GetSeriesErrors[keyof GetSeriesErrors];
3186
- export type GetSeriesResponses = {
3172
+ export type GetEpisodeError = GetEpisodeErrors[keyof GetEpisodeErrors];
3173
+ export type GetEpisodeResponses = {
3187
3174
  /**
3188
- * OK
3175
+ * Single episode response
3189
3176
  */
3190
- 200: SeriesWithMedia;
3177
+ 200: Episode;
3191
3178
  };
3192
- export type GetSeriesResponse = GetSeriesResponses[keyof GetSeriesResponses];
3193
- export type UpdateSeriesData = {
3194
- body: {
3195
- /**
3196
- * Updated Japanese name
3197
- */
3198
- nameJa?: string;
3199
- /**
3200
- * Updated Romaji name
3201
- */
3202
- nameRomaji?: string;
3179
+ export type GetEpisodeResponse = GetEpisodeResponses[keyof GetEpisodeResponses];
3180
+ export type UpdateEpisodeData = {
3181
+ body: EpisodeUpdateRequest;
3182
+ path: {
3203
3183
  /**
3204
- * Updated English name
3184
+ * ID of the media
3205
3185
  */
3206
- nameEn?: string;
3207
- };
3208
- path: {
3186
+ mediaId: number;
3209
3187
  /**
3210
- * Series ID
3188
+ * Episode number
3211
3189
  */
3212
- id: number;
3190
+ episodeNumber: number;
3213
3191
  };
3214
3192
  query?: never;
3215
- url: '/v1/media/series/{id}';
3193
+ url: '/v1/media/{mediaId}/episodes/{episodeNumber}';
3216
3194
  };
3217
- export type UpdateSeriesErrors = {
3195
+ export type UpdateEpisodeErrors = {
3218
3196
  /**
3219
3197
  * Bad Request
3220
3198
  */
@@ -3240,35 +3218,39 @@ export type UpdateSeriesErrors = {
3240
3218
  */
3241
3219
  500: Error500;
3242
3220
  };
3243
- export type UpdateSeriesError = UpdateSeriesErrors[keyof UpdateSeriesErrors];
3244
- export type UpdateSeriesResponses = {
3221
+ export type UpdateEpisodeError = UpdateEpisodeErrors[keyof UpdateEpisodeErrors];
3222
+ export type UpdateEpisodeResponses = {
3245
3223
  /**
3246
- * OK
3224
+ * Single episode response
3247
3225
  */
3248
- 200: Series;
3226
+ 200: Episode;
3249
3227
  };
3250
- export type UpdateSeriesResponse = UpdateSeriesResponses[keyof UpdateSeriesResponses];
3251
- export type AddMediaToSeriesData = {
3252
- body: {
3228
+ export type UpdateEpisodeResponse = UpdateEpisodeResponses[keyof UpdateEpisodeResponses];
3229
+ export type ListSegmentsData = {
3230
+ body?: never;
3231
+ path: {
3253
3232
  /**
3254
- * Media ID to add
3233
+ * ID of the media
3255
3234
  */
3256
3235
  mediaId: number;
3257
3236
  /**
3258
- * Position in the series (1-indexed)
3237
+ * Episode number
3259
3238
  */
3260
- position: number;
3239
+ episodeNumber: number;
3261
3240
  };
3262
- path: {
3241
+ query?: {
3263
3242
  /**
3264
- * Series ID
3243
+ * Maximum number of segments to return
3265
3244
  */
3266
- id: number;
3245
+ take?: number;
3246
+ /**
3247
+ * Opaque pagination cursor token
3248
+ */
3249
+ cursor?: string;
3267
3250
  };
3268
- query?: never;
3269
- url: '/v1/media/series/{id}/media';
3251
+ url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments';
3270
3252
  };
3271
- export type AddMediaToSeriesErrors = {
3253
+ export type ListSegmentsErrors = {
3272
3254
  /**
3273
3255
  * Bad Request
3274
3256
  */
@@ -3294,30 +3276,36 @@ export type AddMediaToSeriesErrors = {
3294
3276
  */
3295
3277
  500: Error500;
3296
3278
  };
3297
- export type AddMediaToSeriesError = AddMediaToSeriesErrors[keyof AddMediaToSeriesErrors];
3298
- export type AddMediaToSeriesResponses = {
3279
+ export type ListSegmentsError = ListSegmentsErrors[keyof ListSegmentsErrors];
3280
+ export type ListSegmentsResponses = {
3299
3281
  /**
3300
- * No Content
3282
+ * Paginated segment list response
3301
3283
  */
3302
- 204: void;
3284
+ 200: {
3285
+ /**
3286
+ * Array of segment objects
3287
+ */
3288
+ segments: Array<Segment>;
3289
+ pagination: OpaqueCursorPagination;
3290
+ };
3303
3291
  };
3304
- export type AddMediaToSeriesResponse = AddMediaToSeriesResponses[keyof AddMediaToSeriesResponses];
3305
- export type RemoveMediaFromSeriesData = {
3306
- body?: never;
3292
+ export type ListSegmentsResponse = ListSegmentsResponses[keyof ListSegmentsResponses];
3293
+ export type CreateSegmentData = {
3294
+ body: SegmentCreateRequest;
3307
3295
  path: {
3308
3296
  /**
3309
- * Series ID
3297
+ * ID of the media
3310
3298
  */
3311
- id: number;
3299
+ mediaId: number;
3312
3300
  /**
3313
- * Media ID
3301
+ * Episode number
3314
3302
  */
3315
- mediaId: number;
3303
+ episodeNumber: number;
3316
3304
  };
3317
3305
  query?: never;
3318
- url: '/v1/media/series/{id}/media/{mediaId}';
3306
+ url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments';
3319
3307
  };
3320
- export type RemoveMediaFromSeriesErrors = {
3308
+ export type CreateSegmentErrors = {
3321
3309
  /**
3322
3310
  * Bad Request
3323
3311
  */
@@ -3334,6 +3322,10 @@ export type RemoveMediaFromSeriesErrors = {
3334
3322
  * Not Found
3335
3323
  */
3336
3324
  404: Error404;
3325
+ /**
3326
+ * Conflict
3327
+ */
3328
+ 409: Error409;
3337
3329
  /**
3338
3330
  * Too Many Requests
3339
3331
  */
@@ -3343,35 +3335,34 @@ export type RemoveMediaFromSeriesErrors = {
3343
3335
  */
3344
3336
  500: Error500;
3345
3337
  };
3346
- export type RemoveMediaFromSeriesError = RemoveMediaFromSeriesErrors[keyof RemoveMediaFromSeriesErrors];
3347
- export type RemoveMediaFromSeriesResponses = {
3338
+ export type CreateSegmentError = CreateSegmentErrors[keyof CreateSegmentErrors];
3339
+ export type CreateSegmentResponses = {
3348
3340
  /**
3349
- * No Content
3341
+ * Single segment response with internal fields
3350
3342
  */
3351
- 204: void;
3343
+ 201: SegmentInternal;
3352
3344
  };
3353
- export type RemoveMediaFromSeriesResponse = RemoveMediaFromSeriesResponses[keyof RemoveMediaFromSeriesResponses];
3354
- export type UpdateSeriesMediaData = {
3355
- body: {
3345
+ export type CreateSegmentResponse = CreateSegmentResponses[keyof CreateSegmentResponses];
3346
+ export type DeleteSegmentData = {
3347
+ body?: never;
3348
+ path: {
3356
3349
  /**
3357
- * New position in the series (1-indexed)
3350
+ * ID of the media
3358
3351
  */
3359
- position: number;
3360
- };
3361
- path: {
3352
+ mediaId: number;
3362
3353
  /**
3363
- * Series ID
3354
+ * Episode number
3364
3355
  */
3365
- id: number;
3356
+ episodeNumber: number;
3366
3357
  /**
3367
- * Media ID
3358
+ * Segment ID
3368
3359
  */
3369
- mediaId: number;
3360
+ id: number;
3370
3361
  };
3371
3362
  query?: never;
3372
- url: '/v1/media/series/{id}/media/{mediaId}';
3363
+ url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}';
3373
3364
  };
3374
- export type UpdateSeriesMediaErrors = {
3365
+ export type DeleteSegmentErrors = {
3375
3366
  /**
3376
3367
  * Bad Request
3377
3368
  */
@@ -3397,26 +3388,34 @@ export type UpdateSeriesMediaErrors = {
3397
3388
  */
3398
3389
  500: Error500;
3399
3390
  };
3400
- export type UpdateSeriesMediaError = UpdateSeriesMediaErrors[keyof UpdateSeriesMediaErrors];
3401
- export type UpdateSeriesMediaResponses = {
3391
+ export type DeleteSegmentError = DeleteSegmentErrors[keyof DeleteSegmentErrors];
3392
+ export type DeleteSegmentResponses = {
3402
3393
  /**
3403
- * No Content
3394
+ * Segment successfully deleted
3404
3395
  */
3405
3396
  204: void;
3406
3397
  };
3407
- export type UpdateSeriesMediaResponse = UpdateSeriesMediaResponses[keyof UpdateSeriesMediaResponses];
3408
- export type GetCharacterData = {
3398
+ export type DeleteSegmentResponse = DeleteSegmentResponses[keyof DeleteSegmentResponses];
3399
+ export type GetSegmentData = {
3409
3400
  body?: never;
3410
3401
  path: {
3411
3402
  /**
3412
- * AniList character ID
3403
+ * ID of the media
3404
+ */
3405
+ mediaId: number;
3406
+ /**
3407
+ * Episode number
3408
+ */
3409
+ episodeNumber: number;
3410
+ /**
3411
+ * Segment ID
3413
3412
  */
3414
3413
  id: number;
3415
3414
  };
3416
3415
  query?: never;
3417
- url: '/v1/media/characters/{id}';
3416
+ url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}';
3418
3417
  };
3419
- export type GetCharacterErrors = {
3418
+ export type GetSegmentErrors = {
3420
3419
  /**
3421
3420
  * Bad Request
3422
3421
  */
@@ -3442,31 +3441,34 @@ export type GetCharacterErrors = {
3442
3441
  */
3443
3442
  500: Error500;
3444
3443
  };
3445
- export type GetCharacterError = GetCharacterErrors[keyof GetCharacterErrors];
3446
- export type GetCharacterResponses = {
3444
+ export type GetSegmentError = GetSegmentErrors[keyof GetSegmentErrors];
3445
+ export type GetSegmentResponses = {
3447
3446
  /**
3448
- * OK
3447
+ * Single segment response
3449
3448
  */
3450
- 200: CharacterWithMedia;
3449
+ 200: Segment;
3451
3450
  };
3452
- export type GetCharacterResponse = GetCharacterResponses[keyof GetCharacterResponses];
3453
- export type GetSeiyuuData = {
3454
- body?: never;
3451
+ export type GetSegmentResponse = GetSegmentResponses[keyof GetSegmentResponses];
3452
+ export type UpdateSegmentData = {
3453
+ body: SegmentUpdateRequest;
3455
3454
  path: {
3456
3455
  /**
3457
- * AniList staff ID
3456
+ * ID of the media
3457
+ */
3458
+ mediaId: number;
3459
+ /**
3460
+ * Episode number
3458
3461
  */
3459
- id: number;
3460
- };
3461
- query?: {
3462
+ episodeNumber: number;
3462
3463
  /**
3463
- * Resources to expand in the response (`character` is included by default)
3464
+ * Segment ID
3464
3465
  */
3465
- include?: Array<'character'>;
3466
+ id: number;
3466
3467
  };
3467
- url: '/v1/media/seiyuu/{id}';
3468
+ query?: never;
3469
+ url: '/v1/media/{mediaId}/episodes/{episodeNumber}/segments/{id}';
3468
3470
  };
3469
- export type GetSeiyuuErrors = {
3471
+ export type UpdateSegmentErrors = {
3470
3472
  /**
3471
3473
  * Bad Request
3472
3474
  */
@@ -3492,14 +3494,14 @@ export type GetSeiyuuErrors = {
3492
3494
  */
3493
3495
  500: Error500;
3494
3496
  };
3495
- export type GetSeiyuuError = GetSeiyuuErrors[keyof GetSeiyuuErrors];
3496
- export type GetSeiyuuResponses = {
3497
+ export type UpdateSegmentError = UpdateSegmentErrors[keyof UpdateSegmentErrors];
3498
+ export type UpdateSegmentResponses = {
3497
3499
  /**
3498
- * OK
3500
+ * Single segment response with internal fields
3499
3501
  */
3500
- 200: SeiyuuWithRoles;
3502
+ 200: SegmentInternal;
3501
3503
  };
3502
- export type GetSeiyuuResponse = GetSeiyuuResponses[keyof GetSeiyuuResponses];
3504
+ export type UpdateSegmentResponse = UpdateSegmentResponses[keyof UpdateSegmentResponses];
3503
3505
  export type GetUserQuotaData = {
3504
3506
  body?: never;
3505
3507
  path?: never;
@@ -3511,6 +3513,10 @@ export type GetUserQuotaErrors = {
3511
3513
  * Unauthorized
3512
3514
  */
3513
3515
  401: Error401;
3516
+ /**
3517
+ * Forbidden
3518
+ */
3519
+ 403: Error403;
3514
3520
  /**
3515
3521
  * Too Many Requests
3516
3522
  */
@@ -3528,43 +3534,6 @@ export type GetUserQuotaResponses = {
3528
3534
  200: UserQuotaResponse;
3529
3535
  };
3530
3536
  export type GetUserQuotaResponse = GetUserQuotaResponses[keyof GetUserQuotaResponses];
3531
- export type ListUserReportsData = {
3532
- body?: never;
3533
- path?: never;
3534
- query?: {
3535
- /**
3536
- * Cursor for pagination (report ID to start after)
3537
- */
3538
- cursor?: number;
3539
- /**
3540
- * Number of results per page
3541
- */
3542
- limit?: number;
3543
- /**
3544
- * Filter by report status
3545
- */
3546
- status?: 'PENDING' | 'CONCERN' | 'ACCEPTED' | 'REJECTED' | 'RESOLVED' | 'IGNORED';
3547
- };
3548
- url: '/v1/user/reports';
3549
- };
3550
- export type ListUserReportsErrors = {
3551
- /**
3552
- * Unauthorized
3553
- */
3554
- 401: Error401;
3555
- /**
3556
- * Internal Server Error
3557
- */
3558
- 500: Error500;
3559
- };
3560
- export type ListUserReportsError = ListUserReportsErrors[keyof ListUserReportsErrors];
3561
- export type ListUserReportsResponses = {
3562
- /**
3563
- * OK
3564
- */
3565
- 200: ReportListResponse;
3566
- };
3567
- export type ListUserReportsResponse = ListUserReportsResponses[keyof ListUserReportsResponses];
3568
3537
  export type CreateUserReportData = {
3569
3538
  body: CreateReportRequest;
3570
3539
  path?: never;
@@ -3672,7 +3641,6 @@ export type DeleteUserActivityResponses = {
3672
3641
  * OK
3673
3642
  */
3674
3643
  200: {
3675
- message: string;
3676
3644
  deletedCount: number;
3677
3645
  };
3678
3646
  };
@@ -3682,13 +3650,13 @@ export type ListUserActivityData = {
3682
3650
  path?: never;
3683
3651
  query?: {
3684
3652
  /**
3685
- * Cursor for pagination (activity ID to start after)
3653
+ * Opaque cursor token for keyset pagination
3686
3654
  */
3687
- cursor?: number;
3655
+ cursor?: string;
3688
3656
  /**
3689
3657
  * Number of results per page
3690
3658
  */
3691
- limit?: number;
3659
+ take?: number;
3692
3660
  /**
3693
3661
  * Filter by activity type
3694
3662
  */
@@ -3717,10 +3685,44 @@ export type ListUserActivityResponses = {
3717
3685
  */
3718
3686
  200: {
3719
3687
  activities: Array<UserActivity>;
3720
- pagination: CursorPagination;
3688
+ pagination: OpaqueCursorPagination;
3721
3689
  };
3722
3690
  };
3723
3691
  export type ListUserActivityResponse = ListUserActivityResponses[keyof ListUserActivityResponses];
3692
+ export type TrackUserActivityData = {
3693
+ body: {
3694
+ activityType: 'SEGMENT_PLAY';
3695
+ segmentUuid?: string;
3696
+ mediaId?: number;
3697
+ animeName?: string;
3698
+ japaneseText?: string;
3699
+ };
3700
+ path?: never;
3701
+ query?: never;
3702
+ url: '/v1/user/activity';
3703
+ };
3704
+ export type TrackUserActivityErrors = {
3705
+ /**
3706
+ * Bad Request
3707
+ */
3708
+ 400: Error400;
3709
+ /**
3710
+ * Unauthorized
3711
+ */
3712
+ 401: Error401;
3713
+ /**
3714
+ * Internal Server Error
3715
+ */
3716
+ 500: Error500;
3717
+ };
3718
+ export type TrackUserActivityError = TrackUserActivityErrors[keyof TrackUserActivityErrors];
3719
+ export type TrackUserActivityResponses = {
3720
+ /**
3721
+ * Activity tracked
3722
+ */
3723
+ 204: void;
3724
+ };
3725
+ export type TrackUserActivityResponse = TrackUserActivityResponses[keyof TrackUserActivityResponses];
3724
3726
  export type GetUserActivityHeatmapData = {
3725
3727
  body?: never;
3726
3728
  path?: never;
@@ -3753,9 +3755,9 @@ export type GetUserActivityHeatmapResponses = {
3753
3755
  */
3754
3756
  200: {
3755
3757
  /**
3756
- * Map of YYYY-MM-DD date strings to activity counts
3758
+ * Map of YYYY-MM-DD date strings to activity activityByDay
3757
3759
  */
3758
- counts: {
3760
+ activityByDay: {
3759
3761
  [key: string]: number;
3760
3762
  };
3761
3763
  };
@@ -3792,10 +3794,6 @@ export type GetUserActivityStatsResponses = {
3792
3794
  totalExports: number;
3793
3795
  totalPlays: number;
3794
3796
  totalListAdds: number;
3795
- /**
3796
- * Consecutive days with at least one activity
3797
- */
3798
- streakDays: number;
3799
3797
  topMedia: Array<{
3800
3798
  mediaId: number;
3801
3799
  count: number;
@@ -3803,6 +3801,72 @@ export type GetUserActivityStatsResponses = {
3803
3801
  };
3804
3802
  };
3805
3803
  export type GetUserActivityStatsResponse = GetUserActivityStatsResponses[keyof GetUserActivityStatsResponses];
3804
+ export type DeleteUserActivityByDateData = {
3805
+ body?: never;
3806
+ path: {
3807
+ /**
3808
+ * Date in YYYY-MM-DD format
3809
+ */
3810
+ date: string;
3811
+ };
3812
+ query?: never;
3813
+ url: '/v1/user/activity/date/{date}';
3814
+ };
3815
+ export type DeleteUserActivityByDateErrors = {
3816
+ /**
3817
+ * Unauthorized
3818
+ */
3819
+ 401: Error401;
3820
+ /**
3821
+ * Internal Server Error
3822
+ */
3823
+ 500: Error500;
3824
+ };
3825
+ export type DeleteUserActivityByDateError = DeleteUserActivityByDateErrors[keyof DeleteUserActivityByDateErrors];
3826
+ export type DeleteUserActivityByDateResponses = {
3827
+ /**
3828
+ * OK
3829
+ */
3830
+ 200: {
3831
+ deletedCount: number;
3832
+ };
3833
+ };
3834
+ export type DeleteUserActivityByDateResponse = DeleteUserActivityByDateResponses[keyof DeleteUserActivityByDateResponses];
3835
+ export type DeleteUserActivityByIdData = {
3836
+ body?: never;
3837
+ path: {
3838
+ /**
3839
+ * Activity record ID
3840
+ */
3841
+ id: number;
3842
+ };
3843
+ query?: never;
3844
+ url: '/v1/user/activity/{id}';
3845
+ };
3846
+ export type DeleteUserActivityByIdErrors = {
3847
+ /**
3848
+ * Unauthorized
3849
+ */
3850
+ 401: Error401;
3851
+ /**
3852
+ * Activity not found
3853
+ */
3854
+ 404: {
3855
+ message?: string;
3856
+ };
3857
+ /**
3858
+ * Internal Server Error
3859
+ */
3860
+ 500: Error500;
3861
+ };
3862
+ export type DeleteUserActivityByIdError = DeleteUserActivityByIdErrors[keyof DeleteUserActivityByIdErrors];
3863
+ export type DeleteUserActivityByIdResponses = {
3864
+ /**
3865
+ * Activity deleted
3866
+ */
3867
+ 204: void;
3868
+ };
3869
+ export type DeleteUserActivityByIdResponse = DeleteUserActivityByIdResponses[keyof DeleteUserActivityByIdResponses];
3806
3870
  export type ExportUserDataData = {
3807
3871
  body?: never;
3808
3872
  path?: never;
@@ -3851,6 +3915,72 @@ export type ListUserLabsResponses = {
3851
3915
  200: Array<UserLabFeature>;
3852
3916
  };
3853
3917
  export type ListUserLabsResponse = ListUserLabsResponses[keyof ListUserLabsResponses];
3918
+ export type UnenrollUserLabData = {
3919
+ body?: never;
3920
+ path: {
3921
+ /**
3922
+ * Lab feature key
3923
+ */
3924
+ key: string;
3925
+ };
3926
+ query?: never;
3927
+ url: '/v1/user/labs/{key}';
3928
+ };
3929
+ export type UnenrollUserLabErrors = {
3930
+ /**
3931
+ * Unauthorized
3932
+ */
3933
+ 401: Error401;
3934
+ /**
3935
+ * Not Found
3936
+ */
3937
+ 404: Error404;
3938
+ /**
3939
+ * Internal Server Error
3940
+ */
3941
+ 500: Error500;
3942
+ };
3943
+ export type UnenrollUserLabError = UnenrollUserLabErrors[keyof UnenrollUserLabErrors];
3944
+ export type UnenrollUserLabResponses = {
3945
+ /**
3946
+ * Unenrolled successfully
3947
+ */
3948
+ 204: void;
3949
+ };
3950
+ export type UnenrollUserLabResponse = UnenrollUserLabResponses[keyof UnenrollUserLabResponses];
3951
+ export type EnrollUserLabData = {
3952
+ body?: never;
3953
+ path: {
3954
+ /**
3955
+ * Lab feature key
3956
+ */
3957
+ key: string;
3958
+ };
3959
+ query?: never;
3960
+ url: '/v1/user/labs/{key}';
3961
+ };
3962
+ export type EnrollUserLabErrors = {
3963
+ /**
3964
+ * Unauthorized
3965
+ */
3966
+ 401: Error401;
3967
+ /**
3968
+ * Not Found
3969
+ */
3970
+ 404: Error404;
3971
+ /**
3972
+ * Internal Server Error
3973
+ */
3974
+ 500: Error500;
3975
+ };
3976
+ export type EnrollUserLabError = EnrollUserLabErrors[keyof EnrollUserLabErrors];
3977
+ export type EnrollUserLabResponses = {
3978
+ /**
3979
+ * Enrolled successfully
3980
+ */
3981
+ 204: void;
3982
+ };
3983
+ export type EnrollUserLabResponse = EnrollUserLabResponses[keyof EnrollUserLabResponses];
3854
3984
  export type ListCollectionsData = {
3855
3985
  body?: never;
3856
3986
  path?: never;
@@ -3860,9 +3990,9 @@ export type ListCollectionsData = {
3860
3990
  */
3861
3991
  visibility?: 'public' | 'private';
3862
3992
  /**
3863
- * Cursor offset for pagination
3993
+ * Opaque pagination cursor token
3864
3994
  */
3865
- cursor?: number;
3995
+ cursor?: string;
3866
3996
  /**
3867
3997
  * Page number (1-indexed)
3868
3998
  *
@@ -3872,7 +4002,7 @@ export type ListCollectionsData = {
3872
4002
  /**
3873
4003
  * Items per page
3874
4004
  */
3875
- limit?: number;
4005
+ take?: number;
3876
4006
  };
3877
4007
  url: '/v1/collections';
3878
4008
  };
@@ -3997,9 +4127,9 @@ export type GetCollectionData = {
3997
4127
  };
3998
4128
  query?: {
3999
4129
  /**
4000
- * Cursor offset for paginated segments
4130
+ * Opaque pagination cursor token for paginated segments
4001
4131
  */
4002
- cursor?: number;
4132
+ cursor?: string;
4003
4133
  /**
4004
4134
  * Page number (1-indexed)
4005
4135
  *
@@ -4009,7 +4139,7 @@ export type GetCollectionData = {
4009
4139
  /**
4010
4140
  * Items per page
4011
4141
  */
4012
- limit?: number;
4142
+ take?: number;
4013
4143
  };
4014
4144
  url: '/v1/collections/{id}';
4015
4145
  };
@@ -4098,11 +4228,114 @@ export type UpdateCollectionResponse = UpdateCollectionResponses[keyof UpdateCol
4098
4228
  export type AddSegmentToCollectionData = {
4099
4229
  body: {
4100
4230
  /**
4101
- * UUID of the segment to add
4231
+ * UUID of the segment to add
4232
+ */
4233
+ segmentUuid: string;
4234
+ /**
4235
+ * Optional annotation
4236
+ */
4237
+ note?: string;
4238
+ };
4239
+ path: {
4240
+ /**
4241
+ * Collection ID
4242
+ */
4243
+ id: number;
4244
+ };
4245
+ query?: never;
4246
+ url: '/v1/collections/{id}/segments';
4247
+ };
4248
+ export type AddSegmentToCollectionErrors = {
4249
+ /**
4250
+ * Bad Request
4251
+ */
4252
+ 400: Error400;
4253
+ /**
4254
+ * Unauthorized
4255
+ */
4256
+ 401: Error401;
4257
+ /**
4258
+ * Forbidden
4259
+ */
4260
+ 403: Error403;
4261
+ /**
4262
+ * Not Found
4263
+ */
4264
+ 404: Error404;
4265
+ /**
4266
+ * Too Many Requests
4267
+ */
4268
+ 429: Error429;
4269
+ /**
4270
+ * Internal Server Error
4271
+ */
4272
+ 500: Error500;
4273
+ };
4274
+ export type AddSegmentToCollectionError = AddSegmentToCollectionErrors[keyof AddSegmentToCollectionErrors];
4275
+ export type AddSegmentToCollectionResponses = {
4276
+ /**
4277
+ * No Content
4278
+ */
4279
+ 204: void;
4280
+ };
4281
+ export type AddSegmentToCollectionResponse = AddSegmentToCollectionResponses[keyof AddSegmentToCollectionResponses];
4282
+ export type RemoveSegmentFromCollectionData = {
4283
+ body?: never;
4284
+ path: {
4285
+ /**
4286
+ * Collection ID
4287
+ */
4288
+ id: number;
4289
+ /**
4290
+ * Segment UUID
4291
+ */
4292
+ uuid: string;
4293
+ };
4294
+ query?: never;
4295
+ url: '/v1/collections/{id}/segments/{uuid}';
4296
+ };
4297
+ export type RemoveSegmentFromCollectionErrors = {
4298
+ /**
4299
+ * Bad Request
4300
+ */
4301
+ 400: Error400;
4302
+ /**
4303
+ * Unauthorized
4304
+ */
4305
+ 401: Error401;
4306
+ /**
4307
+ * Forbidden
4308
+ */
4309
+ 403: Error403;
4310
+ /**
4311
+ * Not Found
4312
+ */
4313
+ 404: Error404;
4314
+ /**
4315
+ * Too Many Requests
4316
+ */
4317
+ 429: Error429;
4318
+ /**
4319
+ * Internal Server Error
4320
+ */
4321
+ 500: Error500;
4322
+ };
4323
+ export type RemoveSegmentFromCollectionError = RemoveSegmentFromCollectionErrors[keyof RemoveSegmentFromCollectionErrors];
4324
+ export type RemoveSegmentFromCollectionResponses = {
4325
+ /**
4326
+ * No Content
4327
+ */
4328
+ 204: void;
4329
+ };
4330
+ export type RemoveSegmentFromCollectionResponse = RemoveSegmentFromCollectionResponses[keyof RemoveSegmentFromCollectionResponses];
4331
+ export type UpdateCollectionSegmentData = {
4332
+ body: {
4333
+ /**
4334
+ * New position in the collection
4102
4335
  */
4103
- segmentUuid: string;
4336
+ position?: number;
4104
4337
  /**
4105
- * Optional annotation
4338
+ * Updated annotation
4106
4339
  */
4107
4340
  note?: string;
4108
4341
  };
@@ -4111,11 +4344,15 @@ export type AddSegmentToCollectionData = {
4111
4344
  * Collection ID
4112
4345
  */
4113
4346
  id: number;
4347
+ /**
4348
+ * Segment UUID
4349
+ */
4350
+ uuid: string;
4114
4351
  };
4115
4352
  query?: never;
4116
- url: '/v1/collections/{id}/segments';
4353
+ url: '/v1/collections/{id}/segments/{uuid}';
4117
4354
  };
4118
- export type AddSegmentToCollectionErrors = {
4355
+ export type UpdateCollectionSegmentErrors = {
4119
4356
  /**
4120
4357
  * Bad Request
4121
4358
  */
@@ -4141,30 +4378,35 @@ export type AddSegmentToCollectionErrors = {
4141
4378
  */
4142
4379
  500: Error500;
4143
4380
  };
4144
- export type AddSegmentToCollectionError = AddSegmentToCollectionErrors[keyof AddSegmentToCollectionErrors];
4145
- export type AddSegmentToCollectionResponses = {
4381
+ export type UpdateCollectionSegmentError = UpdateCollectionSegmentErrors[keyof UpdateCollectionSegmentErrors];
4382
+ export type UpdateCollectionSegmentResponses = {
4146
4383
  /**
4147
4384
  * No Content
4148
4385
  */
4149
4386
  204: void;
4150
4387
  };
4151
- export type AddSegmentToCollectionResponse = AddSegmentToCollectionResponses[keyof AddSegmentToCollectionResponses];
4152
- export type RemoveSegmentFromCollectionData = {
4388
+ export type UpdateCollectionSegmentResponse = UpdateCollectionSegmentResponses[keyof UpdateCollectionSegmentResponses];
4389
+ export type SearchCollectionSegmentsData = {
4153
4390
  body?: never;
4154
4391
  path: {
4155
4392
  /**
4156
4393
  * Collection ID
4157
4394
  */
4158
4395
  id: number;
4396
+ };
4397
+ query?: {
4159
4398
  /**
4160
- * Segment UUID
4399
+ * Opaque cursor token for pagination
4161
4400
  */
4162
- uuid: string;
4401
+ cursor?: string;
4402
+ /**
4403
+ * Items per page
4404
+ */
4405
+ take?: number;
4163
4406
  };
4164
- query?: never;
4165
- url: '/v1/collections/{id}/segments/{uuid}';
4407
+ url: '/v1/collections/{id}/search';
4166
4408
  };
4167
- export type RemoveSegmentFromCollectionErrors = {
4409
+ export type SearchCollectionSegmentsErrors = {
4168
4410
  /**
4169
4411
  * Bad Request
4170
4412
  */
@@ -4190,39 +4432,26 @@ export type RemoveSegmentFromCollectionErrors = {
4190
4432
  */
4191
4433
  500: Error500;
4192
4434
  };
4193
- export type RemoveSegmentFromCollectionError = RemoveSegmentFromCollectionErrors[keyof RemoveSegmentFromCollectionErrors];
4194
- export type RemoveSegmentFromCollectionResponses = {
4435
+ export type SearchCollectionSegmentsError = SearchCollectionSegmentsErrors[keyof SearchCollectionSegmentsErrors];
4436
+ export type SearchCollectionSegmentsResponses = {
4195
4437
  /**
4196
- * No Content
4438
+ * OK
4197
4439
  */
4198
- 204: void;
4440
+ 200: SearchResponse;
4199
4441
  };
4200
- export type RemoveSegmentFromCollectionResponse = RemoveSegmentFromCollectionResponses[keyof RemoveSegmentFromCollectionResponses];
4201
- export type UpdateCollectionSegmentData = {
4202
- body: {
4203
- /**
4204
- * New position in the collection
4205
- */
4206
- position?: number;
4207
- /**
4208
- * Updated annotation
4209
- */
4210
- note?: string;
4211
- };
4442
+ export type SearchCollectionSegmentsResponse = SearchCollectionSegmentsResponses[keyof SearchCollectionSegmentsResponses];
4443
+ export type GetCollectionStatsData = {
4444
+ body?: never;
4212
4445
  path: {
4213
4446
  /**
4214
4447
  * Collection ID
4215
4448
  */
4216
4449
  id: number;
4217
- /**
4218
- * Segment UUID
4219
- */
4220
- uuid: string;
4221
4450
  };
4222
4451
  query?: never;
4223
- url: '/v1/collections/{id}/segments/{uuid}';
4452
+ url: '/v1/collections/{id}/stats';
4224
4453
  };
4225
- export type UpdateCollectionSegmentErrors = {
4454
+ export type GetCollectionStatsErrors = {
4226
4455
  /**
4227
4456
  * Bad Request
4228
4457
  */
@@ -4248,14 +4477,14 @@ export type UpdateCollectionSegmentErrors = {
4248
4477
  */
4249
4478
  500: Error500;
4250
4479
  };
4251
- export type UpdateCollectionSegmentError = UpdateCollectionSegmentErrors[keyof UpdateCollectionSegmentErrors];
4252
- export type UpdateCollectionSegmentResponses = {
4480
+ export type GetCollectionStatsError = GetCollectionStatsErrors[keyof GetCollectionStatsErrors];
4481
+ export type GetCollectionStatsResponses = {
4253
4482
  /**
4254
- * No Content
4483
+ * OK
4255
4484
  */
4256
- 204: void;
4485
+ 200: SearchStatsResponse;
4257
4486
  };
4258
- export type UpdateCollectionSegmentResponse = UpdateCollectionSegmentResponses[keyof UpdateCollectionSegmentResponses];
4487
+ export type GetCollectionStatsResponse = GetCollectionStatsResponses[keyof GetCollectionStatsResponses];
4259
4488
  export type GetAdminDashboardData = {
4260
4489
  body?: never;
4261
4490
  path?: never;
@@ -4727,18 +4956,104 @@ export type PurgeAdminQueueFailedResponses = {
4727
4956
  };
4728
4957
  };
4729
4958
  export type PurgeAdminQueueFailedResponse = PurgeAdminQueueFailedResponses[keyof PurgeAdminQueueFailedResponses];
4959
+ export type ClearAdminImpersonationData = {
4960
+ body?: never;
4961
+ path?: never;
4962
+ query?: never;
4963
+ url: '/v1/admin/impersonation';
4964
+ };
4965
+ export type ClearAdminImpersonationErrors = {
4966
+ /**
4967
+ * Unauthorized
4968
+ */
4969
+ 401: Error401;
4970
+ /**
4971
+ * Forbidden
4972
+ */
4973
+ 403: Error403;
4974
+ /**
4975
+ * Too Many Requests
4976
+ */
4977
+ 429: Error429;
4978
+ /**
4979
+ * Internal Server Error
4980
+ */
4981
+ 500: Error500;
4982
+ };
4983
+ export type ClearAdminImpersonationError = ClearAdminImpersonationErrors[keyof ClearAdminImpersonationErrors];
4984
+ export type ClearAdminImpersonationResponses = {
4985
+ /**
4986
+ * Impersonation session cleared
4987
+ */
4988
+ 200: {
4989
+ message: string;
4990
+ };
4991
+ };
4992
+ export type ClearAdminImpersonationResponse = ClearAdminImpersonationResponses[keyof ClearAdminImpersonationResponses];
4993
+ export type ImpersonateAdminUserData = {
4994
+ body: {
4995
+ /**
4996
+ * User ID to impersonate
4997
+ */
4998
+ userId: number;
4999
+ };
5000
+ path?: never;
5001
+ query?: never;
5002
+ url: '/v1/admin/impersonation';
5003
+ };
5004
+ export type ImpersonateAdminUserErrors = {
5005
+ /**
5006
+ * Bad Request
5007
+ */
5008
+ 400: Error400;
5009
+ /**
5010
+ * Unauthorized
5011
+ */
5012
+ 401: Error401;
5013
+ /**
5014
+ * Forbidden
5015
+ */
5016
+ 403: Error403;
5017
+ /**
5018
+ * Not Found
5019
+ */
5020
+ 404: Error404;
5021
+ /**
5022
+ * Too Many Requests
5023
+ */
5024
+ 429: Error429;
5025
+ /**
5026
+ * Internal Server Error
5027
+ */
5028
+ 500: Error500;
5029
+ };
5030
+ export type ImpersonateAdminUserError = ImpersonateAdminUserErrors[keyof ImpersonateAdminUserErrors];
5031
+ export type ImpersonateAdminUserResponses = {
5032
+ /**
5033
+ * Impersonation session created
5034
+ */
5035
+ 200: {
5036
+ message: string;
5037
+ user: {
5038
+ id: number;
5039
+ username: string;
5040
+ email: string;
5041
+ };
5042
+ };
5043
+ };
5044
+ export type ImpersonateAdminUserResponse = ImpersonateAdminUserResponses[keyof ImpersonateAdminUserResponses];
4730
5045
  export type ListAdminReportsData = {
4731
5046
  body?: never;
4732
5047
  path?: never;
4733
5048
  query?: {
4734
5049
  /**
4735
- * Cursor for pagination (report ID to start after)
5050
+ * Opaque pagination cursor token
4736
5051
  */
4737
- cursor?: number;
5052
+ cursor?: string;
4738
5053
  /**
4739
5054
  * Number of results per page
4740
5055
  */
4741
- limit?: number;
5056
+ take?: number;
4742
5057
  /**
4743
5058
  * Filter by report status
4744
5059
  */
@@ -4764,9 +5079,9 @@ export type ListAdminReportsData = {
4764
5079
  */
4765
5080
  'target.segmentUuid'?: string;
4766
5081
  /**
4767
- * Filter by review check run ID
5082
+ * Filter by audit run ID
4768
5083
  */
4769
- reviewCheckRunId?: number;
5084
+ auditRunId?: number;
4770
5085
  };
4771
5086
  url: '/v1/admin/reports';
4772
5087
  };
@@ -4841,54 +5156,13 @@ export type UpdateAdminReportResponses = {
4841
5156
  200: Report;
4842
5157
  };
4843
5158
  export type UpdateAdminReportResponse = UpdateAdminReportResponses[keyof UpdateAdminReportResponses];
4844
- export type RunAdminReviewData = {
4845
- body?: never;
4846
- path?: never;
4847
- query?: {
4848
- /**
4849
- * Optional category filter
4850
- */
4851
- category?: 'ANIME' | 'JDRAMA';
4852
- /**
4853
- * Optional check name to run a single check instead of all
4854
- */
4855
- checkName?: string;
4856
- };
4857
- url: '/v1/admin/review/run';
4858
- };
4859
- export type RunAdminReviewErrors = {
4860
- /**
4861
- * Unauthorized
4862
- */
4863
- 401: Error401;
4864
- /**
4865
- * Forbidden
4866
- */
4867
- 403: Error403;
4868
- /**
4869
- * Too Many Requests
4870
- */
4871
- 429: Error429;
4872
- /**
4873
- * Internal Server Error
4874
- */
4875
- 500: Error500;
4876
- };
4877
- export type RunAdminReviewError = RunAdminReviewErrors[keyof RunAdminReviewErrors];
4878
- export type RunAdminReviewResponses = {
4879
- /**
4880
- * Check run completed
4881
- */
4882
- 200: RunReviewResponse;
4883
- };
4884
- export type RunAdminReviewResponse = RunAdminReviewResponses[keyof RunAdminReviewResponses];
4885
- export type ListAdminReviewChecksData = {
5159
+ export type ListAdminMediaAuditsData = {
4886
5160
  body?: never;
4887
5161
  path?: never;
4888
5162
  query?: never;
4889
- url: '/v1/admin/review/checks';
5163
+ url: '/v1/admin/media/audits';
4890
5164
  };
4891
- export type ListAdminReviewChecksErrors = {
5165
+ export type ListAdminMediaAuditsErrors = {
4892
5166
  /**
4893
5167
  * Unauthorized
4894
5168
  */
@@ -4906,15 +5180,15 @@ export type ListAdminReviewChecksErrors = {
4906
5180
  */
4907
5181
  500: Error500;
4908
5182
  };
4909
- export type ListAdminReviewChecksError = ListAdminReviewChecksErrors[keyof ListAdminReviewChecksErrors];
4910
- export type ListAdminReviewChecksResponses = {
5183
+ export type ListAdminMediaAuditsError = ListAdminMediaAuditsErrors[keyof ListAdminMediaAuditsErrors];
5184
+ export type ListAdminMediaAuditsResponses = {
4911
5185
  /**
4912
5186
  * OK
4913
5187
  */
4914
- 200: Array<ReviewCheck>;
5188
+ 200: Array<MediaAudit>;
4915
5189
  };
4916
- export type ListAdminReviewChecksResponse = ListAdminReviewChecksResponses[keyof ListAdminReviewChecksResponses];
4917
- export type UpdateAdminReviewCheckData = {
5190
+ export type ListAdminMediaAuditsResponse = ListAdminMediaAuditsResponses[keyof ListAdminMediaAuditsResponses];
5191
+ export type UpdateAdminMediaAuditData = {
4918
5192
  body: {
4919
5193
  /**
4920
5194
  * New threshold values
@@ -4923,20 +5197,20 @@ export type UpdateAdminReviewCheckData = {
4923
5197
  [key: string]: unknown;
4924
5198
  };
4925
5199
  /**
4926
- * Enable or disable this check
5200
+ * Enable or disable this audit
4927
5201
  */
4928
5202
  enabled?: boolean;
4929
5203
  };
4930
5204
  path: {
4931
5205
  /**
4932
- * Check name identifier
5206
+ * Audit name identifier
4933
5207
  */
4934
5208
  name: string;
4935
5209
  };
4936
5210
  query?: never;
4937
- url: '/v1/admin/review/checks/{name}';
5211
+ url: '/v1/admin/media/audits/{name}';
4938
5212
  };
4939
- export type UpdateAdminReviewCheckErrors = {
5213
+ export type UpdateAdminMediaAuditErrors = {
4940
5214
  /**
4941
5215
  * Bad Request
4942
5216
  */
@@ -4962,74 +5236,31 @@ export type UpdateAdminReviewCheckErrors = {
4962
5236
  */
4963
5237
  500: Error500;
4964
5238
  };
4965
- export type UpdateAdminReviewCheckError = UpdateAdminReviewCheckErrors[keyof UpdateAdminReviewCheckErrors];
4966
- export type UpdateAdminReviewCheckResponses = {
5239
+ export type UpdateAdminMediaAuditError = UpdateAdminMediaAuditErrors[keyof UpdateAdminMediaAuditErrors];
5240
+ export type UpdateAdminMediaAuditResponses = {
4967
5241
  /**
4968
- * Check updated successfully
5242
+ * Audit updated successfully
4969
5243
  */
4970
- 200: ReviewCheck;
5244
+ 200: MediaAudit;
4971
5245
  };
4972
- export type UpdateAdminReviewCheckResponse = UpdateAdminReviewCheckResponses[keyof UpdateAdminReviewCheckResponses];
4973
- export type ListAdminReviewRunsData = {
5246
+ export type UpdateAdminMediaAuditResponse = UpdateAdminMediaAuditResponses[keyof UpdateAdminMediaAuditResponses];
5247
+ export type RunAdminMediaAuditData = {
4974
5248
  body?: never;
4975
- path?: never;
4976
- query?: {
4977
- /**
4978
- * Filter by check name
4979
- */
4980
- checkName?: string;
4981
- /**
4982
- * Cursor for pagination
4983
- */
4984
- cursor?: number;
5249
+ path: {
4985
5250
  /**
4986
- * Number of results per page
5251
+ * Audit name to run, or "all" to run all enabled audits
4987
5252
  */
4988
- limit?: number;
4989
- };
4990
- url: '/v1/admin/review/runs';
4991
- };
4992
- export type ListAdminReviewRunsErrors = {
4993
- /**
4994
- * Unauthorized
4995
- */
4996
- 401: Error401;
4997
- /**
4998
- * Forbidden
4999
- */
5000
- 403: Error403;
5001
- /**
5002
- * Too Many Requests
5003
- */
5004
- 429: Error429;
5005
- /**
5006
- * Internal Server Error
5007
- */
5008
- 500: Error500;
5009
- };
5010
- export type ListAdminReviewRunsError = ListAdminReviewRunsErrors[keyof ListAdminReviewRunsErrors];
5011
- export type ListAdminReviewRunsResponses = {
5012
- /**
5013
- * OK
5014
- */
5015
- 200: {
5016
- runs: Array<ReviewCheckRun>;
5017
- pagination: CursorPagination;
5253
+ name: string;
5018
5254
  };
5019
- };
5020
- export type ListAdminReviewRunsResponse = ListAdminReviewRunsResponses[keyof ListAdminReviewRunsResponses];
5021
- export type GetAdminReviewRunData = {
5022
- body?: never;
5023
- path: {
5255
+ query?: {
5024
5256
  /**
5025
- * Run ID
5257
+ * Optional category filter
5026
5258
  */
5027
- id: number;
5259
+ category?: 'ANIME' | 'JDRAMA';
5028
5260
  };
5029
- query?: never;
5030
- url: '/v1/admin/review/runs/{id}';
5261
+ url: '/v1/admin/media/audits/{name}/run';
5031
5262
  };
5032
- export type GetAdminReviewRunErrors = {
5263
+ export type RunAdminMediaAuditErrors = {
5033
5264
  /**
5034
5265
  * Unauthorized
5035
5266
  */
@@ -5051,82 +5282,34 @@ export type GetAdminReviewRunErrors = {
5051
5282
  */
5052
5283
  500: Error500;
5053
5284
  };
5054
- export type GetAdminReviewRunError = GetAdminReviewRunErrors[keyof GetAdminReviewRunErrors];
5055
- export type GetAdminReviewRunResponses = {
5285
+ export type RunAdminMediaAuditError = RunAdminMediaAuditErrors[keyof RunAdminMediaAuditErrors];
5286
+ export type RunAdminMediaAuditResponses = {
5056
5287
  /**
5057
- * OK
5288
+ * Audit run completed
5058
5289
  */
5059
- 200: {
5060
- run: ReviewCheckRun;
5061
- reports: Array<Report>;
5062
- };
5290
+ 200: RunAuditResponse;
5063
5291
  };
5064
- export type GetAdminReviewRunResponse = GetAdminReviewRunResponses[keyof GetAdminReviewRunResponses];
5065
- export type ListAdminReviewAllowlistData = {
5292
+ export type RunAdminMediaAuditResponse = RunAdminMediaAuditResponses[keyof RunAdminMediaAuditResponses];
5293
+ export type ListAdminMediaAuditRunsData = {
5066
5294
  body?: never;
5067
5295
  path?: never;
5068
5296
  query?: {
5069
5297
  /**
5070
- * Filter by check name
5071
- */
5072
- checkName?: string;
5073
- };
5074
- url: '/v1/admin/review/allowlist';
5075
- };
5076
- export type ListAdminReviewAllowlistErrors = {
5077
- /**
5078
- * Unauthorized
5079
- */
5080
- 401: Error401;
5081
- /**
5082
- * Forbidden
5083
- */
5084
- 403: Error403;
5085
- /**
5086
- * Too Many Requests
5087
- */
5088
- 429: Error429;
5089
- /**
5090
- * Internal Server Error
5091
- */
5092
- 500: Error500;
5093
- };
5094
- export type ListAdminReviewAllowlistError = ListAdminReviewAllowlistErrors[keyof ListAdminReviewAllowlistErrors];
5095
- export type ListAdminReviewAllowlistResponses = {
5096
- /**
5097
- * OK
5098
- */
5099
- 200: Array<ReviewAllowlist>;
5100
- };
5101
- export type ListAdminReviewAllowlistResponse = ListAdminReviewAllowlistResponses[keyof ListAdminReviewAllowlistResponses];
5102
- export type CreateAdminReviewAllowlistEntryData = {
5103
- body: {
5104
- /**
5105
- * Check name to allowlist for
5106
- */
5107
- checkName: string;
5108
- /**
5109
- * Media ID to allowlist
5298
+ * Filter by audit name
5110
5299
  */
5111
- mediaId: number;
5300
+ auditName?: string;
5112
5301
  /**
5113
- * Episode number (for episode-level checks)
5302
+ * Opaque pagination cursor token
5114
5303
  */
5115
- episodeNumber?: number;
5304
+ cursor?: string;
5116
5305
  /**
5117
- * Reason for allowlisting
5306
+ * Number of results per page
5118
5307
  */
5119
- reason?: string;
5308
+ take?: number;
5120
5309
  };
5121
- path?: never;
5122
- query?: never;
5123
- url: '/v1/admin/review/allowlist';
5310
+ url: '/v1/admin/media/audits/runs';
5124
5311
  };
5125
- export type CreateAdminReviewAllowlistEntryErrors = {
5126
- /**
5127
- * Bad Request
5128
- */
5129
- 400: Error400;
5312
+ export type ListAdminMediaAuditRunsErrors = {
5130
5313
  /**
5131
5314
  * Unauthorized
5132
5315
  */
@@ -5135,10 +5318,6 @@ export type CreateAdminReviewAllowlistEntryErrors = {
5135
5318
  * Forbidden
5136
5319
  */
5137
5320
  403: Error403;
5138
- /**
5139
- * Conflict
5140
- */
5141
- 409: Error409;
5142
5321
  /**
5143
5322
  * Too Many Requests
5144
5323
  */
@@ -5148,26 +5327,29 @@ export type CreateAdminReviewAllowlistEntryErrors = {
5148
5327
  */
5149
5328
  500: Error500;
5150
5329
  };
5151
- export type CreateAdminReviewAllowlistEntryError = CreateAdminReviewAllowlistEntryErrors[keyof CreateAdminReviewAllowlistEntryErrors];
5152
- export type CreateAdminReviewAllowlistEntryResponses = {
5330
+ export type ListAdminMediaAuditRunsError = ListAdminMediaAuditRunsErrors[keyof ListAdminMediaAuditRunsErrors];
5331
+ export type ListAdminMediaAuditRunsResponses = {
5153
5332
  /**
5154
- * Added to allowlist
5333
+ * OK
5155
5334
  */
5156
- 201: ReviewAllowlist;
5335
+ 200: {
5336
+ runs: Array<MediaAuditRun>;
5337
+ pagination: OpaqueCursorPagination;
5338
+ };
5157
5339
  };
5158
- export type CreateAdminReviewAllowlistEntryResponse = CreateAdminReviewAllowlistEntryResponses[keyof CreateAdminReviewAllowlistEntryResponses];
5159
- export type DeleteAdminReviewAllowlistEntryData = {
5340
+ export type ListAdminMediaAuditRunsResponse = ListAdminMediaAuditRunsResponses[keyof ListAdminMediaAuditRunsResponses];
5341
+ export type GetAdminMediaAuditRunData = {
5160
5342
  body?: never;
5161
5343
  path: {
5162
5344
  /**
5163
- * Allowlist entry ID
5345
+ * Run ID
5164
5346
  */
5165
5347
  id: number;
5166
5348
  };
5167
5349
  query?: never;
5168
- url: '/v1/admin/review/allowlist/{id}';
5350
+ url: '/v1/admin/media/audits/runs/{id}';
5169
5351
  };
5170
- export type DeleteAdminReviewAllowlistEntryErrors = {
5352
+ export type GetAdminMediaAuditRunErrors = {
5171
5353
  /**
5172
5354
  * Unauthorized
5173
5355
  */
@@ -5189,12 +5371,15 @@ export type DeleteAdminReviewAllowlistEntryErrors = {
5189
5371
  */
5190
5372
  500: Error500;
5191
5373
  };
5192
- export type DeleteAdminReviewAllowlistEntryError = DeleteAdminReviewAllowlistEntryErrors[keyof DeleteAdminReviewAllowlistEntryErrors];
5193
- export type DeleteAdminReviewAllowlistEntryResponses = {
5374
+ export type GetAdminMediaAuditRunError = GetAdminMediaAuditRunErrors[keyof GetAdminMediaAuditRunErrors];
5375
+ export type GetAdminMediaAuditRunResponses = {
5194
5376
  /**
5195
- * Removed from allowlist
5377
+ * OK
5196
5378
  */
5197
- 204: void;
5379
+ 200: {
5380
+ run: MediaAuditRun;
5381
+ reports: Array<Report>;
5382
+ };
5198
5383
  };
5199
- export type DeleteAdminReviewAllowlistEntryResponse = DeleteAdminReviewAllowlistEntryResponses[keyof DeleteAdminReviewAllowlistEntryResponses];
5384
+ export type GetAdminMediaAuditRunResponse = GetAdminMediaAuditRunResponses[keyof GetAdminMediaAuditRunResponses];
5200
5385
  //# sourceMappingURL=types.gen.d.ts.map