@scrapyio/sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +140 -0
  2. package/dist/client.d.ts +25 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +65 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/errors.d.ts +21 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +93 -0
  9. package/dist/errors.js.map +1 -0
  10. package/dist/execution.d.ts +15 -0
  11. package/dist/execution.d.ts.map +1 -0
  12. package/dist/execution.js +117 -0
  13. package/dist/execution.js.map +1 -0
  14. package/dist/generated/client.d.ts +15 -0
  15. package/dist/generated/client.d.ts.map +1 -0
  16. package/dist/generated/client.js +15 -0
  17. package/dist/generated/client.js.map +1 -0
  18. package/dist/generated/schema.d.ts +762 -0
  19. package/dist/generated/schema.d.ts.map +1 -0
  20. package/dist/generated/schema.js +6 -0
  21. package/dist/generated/schema.js.map +1 -0
  22. package/dist/http.d.ts +15 -0
  23. package/dist/http.d.ts.map +1 -0
  24. package/dist/http.js +69 -0
  25. package/dist/http.js.map +1 -0
  26. package/dist/index.d.ts +13 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +6 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/pagination.d.ts +20 -0
  31. package/dist/pagination.d.ts.map +1 -0
  32. package/dist/pagination.js +13 -0
  33. package/dist/pagination.js.map +1 -0
  34. package/dist/platform.d.ts +9 -0
  35. package/dist/platform.d.ts.map +1 -0
  36. package/dist/platform.js +28 -0
  37. package/dist/platform.js.map +1 -0
  38. package/dist/run.d.ts +32 -0
  39. package/dist/run.d.ts.map +1 -0
  40. package/dist/run.js +73 -0
  41. package/dist/run.js.map +1 -0
  42. package/dist/runs.d.ts +19 -0
  43. package/dist/runs.d.ts.map +1 -0
  44. package/dist/runs.js +33 -0
  45. package/dist/runs.js.map +1 -0
  46. package/dist/schedules.d.ts +22 -0
  47. package/dist/schedules.d.ts.map +1 -0
  48. package/dist/schedules.js +62 -0
  49. package/dist/schedules.js.map +1 -0
  50. package/dist/tool.d.ts +28 -0
  51. package/dist/tool.d.ts.map +1 -0
  52. package/dist/tool.js +49 -0
  53. package/dist/tool.js.map +1 -0
  54. package/dist/tools.d.ts +21 -0
  55. package/dist/tools.d.ts.map +1 -0
  56. package/dist/tools.js +35 -0
  57. package/dist/tools.js.map +1 -0
  58. package/dist/types.d.ts +27 -0
  59. package/dist/types.d.ts.map +1 -0
  60. package/dist/types.js +11 -0
  61. package/dist/types.js.map +1 -0
  62. package/package.json +51 -0
@@ -0,0 +1,762 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export interface paths {
6
+ "/tools": {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ /** List public tools */
14
+ get: operations["listTools"];
15
+ put?: never;
16
+ post?: never;
17
+ delete?: never;
18
+ options?: never;
19
+ head?: never;
20
+ patch?: never;
21
+ trace?: never;
22
+ };
23
+ "/tools/{publisher}/{slug}": {
24
+ parameters: {
25
+ query?: never;
26
+ header?: never;
27
+ path?: never;
28
+ cookie?: never;
29
+ };
30
+ /** Get a public tool */
31
+ get: operations["getTool"];
32
+ put?: never;
33
+ post?: never;
34
+ delete?: never;
35
+ options?: never;
36
+ head?: never;
37
+ patch?: never;
38
+ trace?: never;
39
+ };
40
+ "/runs": {
41
+ parameters: {
42
+ query?: never;
43
+ header?: never;
44
+ path?: never;
45
+ cookie?: never;
46
+ };
47
+ /** List runs for the authenticated user */
48
+ get: operations["listRuns"];
49
+ put?: never;
50
+ post?: never;
51
+ delete?: never;
52
+ options?: never;
53
+ head?: never;
54
+ patch?: never;
55
+ trace?: never;
56
+ };
57
+ "/runs/{runId}": {
58
+ parameters: {
59
+ query?: never;
60
+ header?: never;
61
+ path?: never;
62
+ cookie?: never;
63
+ };
64
+ /** Get a run */
65
+ get: operations["getRun"];
66
+ put?: never;
67
+ post?: never;
68
+ delete?: never;
69
+ options?: never;
70
+ head?: never;
71
+ patch?: never;
72
+ trace?: never;
73
+ };
74
+ "/runs/{runId}/dataset/items": {
75
+ parameters: {
76
+ query?: never;
77
+ header?: never;
78
+ path?: never;
79
+ cookie?: never;
80
+ };
81
+ /** List dataset items for a run (JSON) or export in another format */
82
+ get: operations["listRunDatasetItems"];
83
+ put?: never;
84
+ post?: never;
85
+ delete?: never;
86
+ options?: never;
87
+ head?: never;
88
+ patch?: never;
89
+ trace?: never;
90
+ };
91
+ "/schedules": {
92
+ parameters: {
93
+ query?: never;
94
+ header?: never;
95
+ path?: never;
96
+ cookie?: never;
97
+ };
98
+ /** List schedules for the authenticated user */
99
+ get: operations["listSchedules"];
100
+ put?: never;
101
+ /** Create a schedule */
102
+ post: operations["createSchedule"];
103
+ delete?: never;
104
+ options?: never;
105
+ head?: never;
106
+ patch?: never;
107
+ trace?: never;
108
+ };
109
+ "/schedules/{scheduleId}": {
110
+ parameters: {
111
+ query?: never;
112
+ header?: never;
113
+ path?: never;
114
+ cookie?: never;
115
+ };
116
+ /** Get a schedule */
117
+ get: operations["getSchedule"];
118
+ put?: never;
119
+ post?: never;
120
+ /** Soft-delete a schedule */
121
+ delete: operations["deleteSchedule"];
122
+ options?: never;
123
+ head?: never;
124
+ /** Update schedule (exactly one of isActive or notificationsEnabled) */
125
+ patch: operations["updateSchedule"];
126
+ trace?: never;
127
+ };
128
+ }
129
+ export type webhooks = Record<string, never>;
130
+ export interface components {
131
+ schemas: {
132
+ /**
133
+ * @description Platform error type.
134
+ * Active: unauthorized, validation_error, not_found, insufficient_credits, conflict.
135
+ * Reserved (defined, not currently emitted by Platform handlers): forbidden, rate_limit_exceeded.
136
+ * Fallback: internal_error.
137
+ * @enum {string}
138
+ */
139
+ ErrorType: "unauthorized" | "forbidden" | "not_found" | "validation_error" | "insufficient_credits" | "conflict" | "rate_limit_exceeded" | "internal_error";
140
+ Error: {
141
+ type: components["schemas"]["ErrorType"];
142
+ message: string;
143
+ /** @description Always present. Example `https://docs.scrapy.io/errors/not-found`. */
144
+ doc_url: string;
145
+ };
146
+ ErrorResponse: {
147
+ error: components["schemas"]["Error"];
148
+ };
149
+ /** @description Opaque JSON object (dynamic tool schemas / dataset rows). */
150
+ JsonObject: {
151
+ [key: string]: unknown;
152
+ };
153
+ ToolExecution: {
154
+ /**
155
+ * Format: uri
156
+ * @description Sync publisher execution URL (`…/v1/api`).
157
+ */
158
+ apiUrl: string;
159
+ /**
160
+ * Format: uri
161
+ * @description Async publisher execution URL (`…/v1/scraper`).
162
+ */
163
+ scraperUrl: string;
164
+ };
165
+ ToolDeveloper: {
166
+ slug: string;
167
+ name: string;
168
+ avatarUrl?: string | null;
169
+ };
170
+ ToolSummary: {
171
+ publisher: string;
172
+ slug: string;
173
+ shortId?: string | null;
174
+ name: string;
175
+ description?: string | null;
176
+ pricePerResult: number;
177
+ features: ("Scraper" | "API")[];
178
+ categories: string[];
179
+ rating: number;
180
+ reviewCount: number;
181
+ iconUrl?: string | null;
182
+ lastModifiedAt: string;
183
+ developer: components["schemas"]["ToolDeveloper"];
184
+ execution: components["schemas"]["ToolExecution"];
185
+ };
186
+ Tool: components["schemas"]["ToolSummary"] & {
187
+ /** @description Dynamic tool input form/schema. Not a closed per-tool TypeScript type. */
188
+ inputSchema: components["schemas"]["JsonObject"];
189
+ /** @description Optional dataset views / extracted paths. */
190
+ datasetSchema?: {
191
+ [key: string]: unknown;
192
+ } | null;
193
+ };
194
+ /** @enum {string} */
195
+ RunKind: "api_sync" | "async_batch";
196
+ /**
197
+ * @description Public run status. DB `completed` is mapped to `succeeded` by the Platform API.
198
+ * @enum {string}
199
+ */
200
+ RunStatus: "queued" | "running" | "succeeded" | "failed" | "cancelled" | "partial";
201
+ Run: {
202
+ /** Format: uuid */
203
+ id: string;
204
+ kind: components["schemas"]["RunKind"];
205
+ status: components["schemas"]["RunStatus"];
206
+ /** Format: uuid */
207
+ toolId: string;
208
+ publisher?: string | null;
209
+ toolSlug?: string | null;
210
+ runName?: string | null;
211
+ totalItems?: number | null;
212
+ processedItems?: number | null;
213
+ completedItems?: number | null;
214
+ failedItems?: number | null;
215
+ billedAmount?: number | null;
216
+ estimatedCost?: number | null;
217
+ /** Format: date-time */
218
+ createdAt: string;
219
+ /** Format: date-time */
220
+ completedAt?: string | null;
221
+ };
222
+ /** @enum {string} */
223
+ ScheduleFrequency: "one-time" | "repeatedly";
224
+ /** @enum {string} */
225
+ RepeatFrequency: "every_10_mins" | "hourly" | "daily" | "weekly" | "monthly";
226
+ Schedule: {
227
+ /** Format: uuid */
228
+ id: string;
229
+ publisher?: string | null;
230
+ slug?: string | null;
231
+ toolName?: string | null;
232
+ runName: string;
233
+ timezone: string;
234
+ frequency: string;
235
+ /** @description YYYY-MM-DD */
236
+ date: string;
237
+ /** @description HH:MM */
238
+ time: string;
239
+ /** @description Null for one-time schedules. Enum when present - every_10_mins, hourly, daily, weekly, monthly. */
240
+ repeatFrequency?: string | null;
241
+ inputsCount: number;
242
+ isActive: boolean;
243
+ notificationsEnabled: boolean;
244
+ /** Format: date-time */
245
+ createdAt: string;
246
+ };
247
+ CreateScheduleRequest: {
248
+ publisher: string;
249
+ slug: string;
250
+ runName: string;
251
+ timezone: string;
252
+ frequency: components["schemas"]["ScheduleFrequency"];
253
+ /** @description YYYY-MM-DD */
254
+ date: string;
255
+ /** @description HH:MM */
256
+ time: string;
257
+ /** @description Required when frequency is repeatedly. */
258
+ repeatFrequency?: components["schemas"]["RepeatFrequency"];
259
+ inputs: string[];
260
+ };
261
+ /** @description Exactly one of isActive or notificationsEnabled must be supplied. */
262
+ UpdateScheduleRequest: {
263
+ isActive?: boolean;
264
+ notificationsEnabled?: boolean;
265
+ };
266
+ DeleteOk: {
267
+ /** @enum {boolean} */
268
+ ok: true;
269
+ };
270
+ DatasetItem: components["schemas"]["JsonObject"];
271
+ ToolSummaryCollectionResponse: {
272
+ data: {
273
+ items: components["schemas"]["ToolSummary"][];
274
+ total: number;
275
+ offset: number;
276
+ limit: number;
277
+ };
278
+ };
279
+ ToolResponse: {
280
+ data: components["schemas"]["Tool"];
281
+ };
282
+ RunCollectionResponse: {
283
+ data: {
284
+ items: components["schemas"]["Run"][];
285
+ total: number;
286
+ offset: number;
287
+ limit: number;
288
+ };
289
+ };
290
+ RunResponse: {
291
+ data: components["schemas"]["Run"];
292
+ };
293
+ DatasetItemsCollectionResponse: {
294
+ data: {
295
+ items: components["schemas"]["DatasetItem"][];
296
+ total: number;
297
+ offset: number;
298
+ limit: number;
299
+ };
300
+ };
301
+ ScheduleCollectionResponse: {
302
+ data: {
303
+ items: components["schemas"]["Schedule"][];
304
+ total: number;
305
+ offset: number;
306
+ limit: number;
307
+ };
308
+ };
309
+ ScheduleResponse: {
310
+ data: components["schemas"]["Schedule"];
311
+ };
312
+ DeleteScheduleResponse: {
313
+ data: components["schemas"]["DeleteOk"];
314
+ };
315
+ };
316
+ responses: {
317
+ /** @description Missing or invalid API key. */
318
+ Unauthorized: {
319
+ headers: {
320
+ [name: string]: unknown;
321
+ };
322
+ content: {
323
+ /**
324
+ * @example {
325
+ * "error": {
326
+ * "type": "unauthorized",
327
+ * "message": "Authentication token was not provided",
328
+ * "doc_url": "https://docs.scrapy.io/errors/unauthorized"
329
+ * }
330
+ * }
331
+ */
332
+ "application/json": components["schemas"]["ErrorResponse"];
333
+ };
334
+ };
335
+ /** @description Invalid request parameters or body. */
336
+ ValidationError: {
337
+ headers: {
338
+ [name: string]: unknown;
339
+ };
340
+ content: {
341
+ "application/json": components["schemas"]["ErrorResponse"];
342
+ };
343
+ };
344
+ /** @description Resource not found (or not owned by the authenticated account). */
345
+ NotFound: {
346
+ headers: {
347
+ [name: string]: unknown;
348
+ };
349
+ content: {
350
+ "application/json": components["schemas"]["ErrorResponse"];
351
+ };
352
+ };
353
+ /** @description Not enough credits to create the schedule. */
354
+ InsufficientCredits: {
355
+ headers: {
356
+ [name: string]: unknown;
357
+ };
358
+ content: {
359
+ "application/json": components["schemas"]["ErrorResponse"];
360
+ };
361
+ };
362
+ /** @description Idempotency key conflict (request already in progress). */
363
+ Conflict: {
364
+ headers: {
365
+ [name: string]: unknown;
366
+ };
367
+ content: {
368
+ "application/json": components["schemas"]["ErrorResponse"];
369
+ };
370
+ };
371
+ };
372
+ parameters: {
373
+ /** @description Zero-based offset. Default 0. */
374
+ OffsetParam: number;
375
+ /** @description Page size. Default 20, maximum 100. */
376
+ LimitParam: number;
377
+ };
378
+ requestBodies: never;
379
+ headers: never;
380
+ pathItems: never;
381
+ }
382
+ export type $defs = Record<string, never>;
383
+ export interface operations {
384
+ listTools: {
385
+ parameters: {
386
+ query?: {
387
+ /** @description Search over name/slug/description/categories. */
388
+ q?: string;
389
+ /** @description Comma-separated category tokens. */
390
+ social?: string;
391
+ /** @description Comma-separated category tokens. */
392
+ leads?: string;
393
+ /** @description Comma-separated category tokens. */
394
+ searchSeo?: string;
395
+ /** @description Comma-separated category tokens. */
396
+ ecommerce?: string;
397
+ /** @description Comma-separated; `api` and/or `scraper`. */
398
+ feature?: string;
399
+ sort?: string;
400
+ /** @description Zero-based offset. Default 0. */
401
+ offset?: components["parameters"]["OffsetParam"];
402
+ /** @description Page size. Default 20, maximum 100. */
403
+ limit?: components["parameters"]["LimitParam"];
404
+ };
405
+ header?: never;
406
+ path?: never;
407
+ cookie?: never;
408
+ };
409
+ requestBody?: never;
410
+ responses: {
411
+ /** @description Tool collection */
412
+ 200: {
413
+ headers: {
414
+ [name: string]: unknown;
415
+ };
416
+ content: {
417
+ /**
418
+ * @example {
419
+ * "data": {
420
+ * "items": [
421
+ * {
422
+ * "publisher": "datadoping",
423
+ * "slug": "instagram-profile-scraper",
424
+ * "shortId": "abc123",
425
+ * "name": "Instagram Profile Scraper",
426
+ * "description": "Extract public Instagram profile data",
427
+ * "pricePerResult": 0.01,
428
+ * "features": [
429
+ * "API",
430
+ * "Scraper"
431
+ * ],
432
+ * "categories": [
433
+ * "Instagram"
434
+ * ],
435
+ * "rating": 4.8,
436
+ * "reviewCount": 12,
437
+ * "iconUrl": null,
438
+ * "lastModifiedAt": "2026-01-01T00:00:00.000Z",
439
+ * "developer": {
440
+ * "slug": "datadoping",
441
+ * "name": "Data Doping",
442
+ * "avatarUrl": null
443
+ * },
444
+ * "execution": {
445
+ * "apiUrl": "https://datadoping.p.scrapy.io/instagram-profile-scraper/v1/api",
446
+ * "scraperUrl": "https://datadoping.p.scrapy.io/instagram-profile-scraper/v1/scraper"
447
+ * }
448
+ * }
449
+ * ],
450
+ * "total": 42,
451
+ * "offset": 0,
452
+ * "limit": 20
453
+ * }
454
+ * }
455
+ */
456
+ "application/json": components["schemas"]["ToolSummaryCollectionResponse"];
457
+ };
458
+ };
459
+ 400: components["responses"]["ValidationError"];
460
+ 401: components["responses"]["Unauthorized"];
461
+ };
462
+ };
463
+ getTool: {
464
+ parameters: {
465
+ query?: never;
466
+ header?: never;
467
+ path: {
468
+ publisher: string;
469
+ slug: string;
470
+ };
471
+ cookie?: never;
472
+ };
473
+ requestBody?: never;
474
+ responses: {
475
+ /** @description Tool detail including inputSchema and datasetSchema */
476
+ 200: {
477
+ headers: {
478
+ [name: string]: unknown;
479
+ };
480
+ content: {
481
+ "application/json": components["schemas"]["ToolResponse"];
482
+ };
483
+ };
484
+ 401: components["responses"]["Unauthorized"];
485
+ 404: components["responses"]["NotFound"];
486
+ };
487
+ };
488
+ listRuns: {
489
+ parameters: {
490
+ query?: {
491
+ /** @description `api_sync` or alias `api`; `async_batch` or alias `scraper`. */
492
+ kind?: string;
493
+ toolId?: string;
494
+ /** @description Public status filter. `succeeded` maps to DB `completed` server-side. */
495
+ status?: string;
496
+ /** @description Zero-based offset. Default 0. */
497
+ offset?: components["parameters"]["OffsetParam"];
498
+ /** @description Page size. Default 20, maximum 100. */
499
+ limit?: components["parameters"]["LimitParam"];
500
+ };
501
+ header?: never;
502
+ path?: never;
503
+ cookie?: never;
504
+ };
505
+ requestBody?: never;
506
+ responses: {
507
+ /** @description Run collection */
508
+ 200: {
509
+ headers: {
510
+ [name: string]: unknown;
511
+ };
512
+ content: {
513
+ "application/json": components["schemas"]["RunCollectionResponse"];
514
+ };
515
+ };
516
+ 400: components["responses"]["ValidationError"];
517
+ 401: components["responses"]["Unauthorized"];
518
+ };
519
+ };
520
+ getRun: {
521
+ parameters: {
522
+ query?: never;
523
+ header?: never;
524
+ path: {
525
+ runId: string;
526
+ };
527
+ cookie?: never;
528
+ };
529
+ requestBody?: never;
530
+ responses: {
531
+ /** @description Run */
532
+ 200: {
533
+ headers: {
534
+ [name: string]: unknown;
535
+ };
536
+ content: {
537
+ "application/json": components["schemas"]["RunResponse"];
538
+ };
539
+ };
540
+ 401: components["responses"]["Unauthorized"];
541
+ 404: components["responses"]["NotFound"];
542
+ };
543
+ };
544
+ listRunDatasetItems: {
545
+ parameters: {
546
+ query?: {
547
+ /** @description Zero-based offset. Default 0. */
548
+ offset?: components["parameters"]["OffsetParam"];
549
+ /** @description Page size. Default 20, maximum 100. */
550
+ limit?: components["parameters"]["LimitParam"];
551
+ format?: string;
552
+ /** @description Comma-separated fields to include. */
553
+ fields?: string;
554
+ /** @description Alias for fields. */
555
+ columns?: string;
556
+ /** @description Comma-separated fields to omit. */
557
+ omit?: string;
558
+ /** @description If true/1/yes, drop keys starting with `#`. */
559
+ clean?: string;
560
+ /** @description If true/1/yes, reverse row order. */
561
+ desc?: string;
562
+ includeSerial?: string;
563
+ skipHeaderRow?: string;
564
+ feedTitle?: string;
565
+ /** @description Controls Content-Disposition for non-JSON exports. */
566
+ attachment?: string;
567
+ /** @description Comma-separated row `type` filter. */
568
+ types?: string;
569
+ /** @description Comma-separated row `category` filter. */
570
+ categories?: string;
571
+ };
572
+ header?: never;
573
+ path: {
574
+ runId: string;
575
+ };
576
+ cookie?: never;
577
+ };
578
+ requestBody?: never;
579
+ responses: {
580
+ /**
581
+ * @description When `format` is omitted or `json`: Platform collection envelope.
582
+ * Otherwise: raw export body (not wrapped in `{ data: ... }`).
583
+ */
584
+ 200: {
585
+ headers: {
586
+ [name: string]: unknown;
587
+ };
588
+ content: {
589
+ "application/json": components["schemas"]["DatasetItemsCollectionResponse"];
590
+ "application/x-ndjson": string;
591
+ "text/csv": string;
592
+ "application/xml": string;
593
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": string;
594
+ "text/html": string;
595
+ "application/rss+xml": string;
596
+ };
597
+ };
598
+ 400: components["responses"]["ValidationError"];
599
+ 401: components["responses"]["Unauthorized"];
600
+ 404: components["responses"]["NotFound"];
601
+ };
602
+ };
603
+ listSchedules: {
604
+ parameters: {
605
+ query?: {
606
+ /** @description Zero-based offset. Default 0. */
607
+ offset?: components["parameters"]["OffsetParam"];
608
+ /** @description Page size. Default 20, maximum 100. */
609
+ limit?: components["parameters"]["LimitParam"];
610
+ };
611
+ header?: never;
612
+ path?: never;
613
+ cookie?: never;
614
+ };
615
+ requestBody?: never;
616
+ responses: {
617
+ /** @description Schedule collection */
618
+ 200: {
619
+ headers: {
620
+ [name: string]: unknown;
621
+ };
622
+ content: {
623
+ "application/json": components["schemas"]["ScheduleCollectionResponse"];
624
+ };
625
+ };
626
+ 400: components["responses"]["ValidationError"];
627
+ 401: components["responses"]["Unauthorized"];
628
+ };
629
+ };
630
+ createSchedule: {
631
+ parameters: {
632
+ query?: never;
633
+ header?: {
634
+ "Idempotency-Key"?: string;
635
+ };
636
+ path?: never;
637
+ cookie?: never;
638
+ };
639
+ requestBody: {
640
+ content: {
641
+ /**
642
+ * @example {
643
+ * "publisher": "datadoping",
644
+ * "slug": "instagram-profile-scraper",
645
+ * "runName": "nightly-ig",
646
+ * "timezone": "America/New_York",
647
+ * "frequency": "repeatedly",
648
+ * "date": "2026-09-15",
649
+ * "time": "09:00",
650
+ * "repeatFrequency": "daily",
651
+ * "inputs": [
652
+ * "nasa",
653
+ * "spacex"
654
+ * ]
655
+ * }
656
+ */
657
+ "application/json": components["schemas"]["CreateScheduleRequest"];
658
+ };
659
+ };
660
+ responses: {
661
+ /** @description Created (or idempotent replay of a completed create) */
662
+ 201: {
663
+ headers: {
664
+ [name: string]: unknown;
665
+ };
666
+ content: {
667
+ "application/json": components["schemas"]["ScheduleResponse"];
668
+ };
669
+ };
670
+ 400: components["responses"]["ValidationError"];
671
+ 401: components["responses"]["Unauthorized"];
672
+ 402: components["responses"]["InsufficientCredits"];
673
+ 404: components["responses"]["NotFound"];
674
+ 409: components["responses"]["Conflict"];
675
+ };
676
+ };
677
+ getSchedule: {
678
+ parameters: {
679
+ query?: never;
680
+ header?: never;
681
+ path: {
682
+ scheduleId: string;
683
+ };
684
+ cookie?: never;
685
+ };
686
+ requestBody?: never;
687
+ responses: {
688
+ /** @description Schedule */
689
+ 200: {
690
+ headers: {
691
+ [name: string]: unknown;
692
+ };
693
+ content: {
694
+ "application/json": components["schemas"]["ScheduleResponse"];
695
+ };
696
+ };
697
+ 401: components["responses"]["Unauthorized"];
698
+ 404: components["responses"]["NotFound"];
699
+ };
700
+ };
701
+ deleteSchedule: {
702
+ parameters: {
703
+ query?: never;
704
+ header?: never;
705
+ path: {
706
+ scheduleId: string;
707
+ };
708
+ cookie?: never;
709
+ };
710
+ requestBody?: never;
711
+ responses: {
712
+ /** @description Deleted */
713
+ 200: {
714
+ headers: {
715
+ [name: string]: unknown;
716
+ };
717
+ content: {
718
+ /**
719
+ * @example {
720
+ * "data": {
721
+ * "ok": true
722
+ * }
723
+ * }
724
+ */
725
+ "application/json": components["schemas"]["DeleteScheduleResponse"];
726
+ };
727
+ };
728
+ 401: components["responses"]["Unauthorized"];
729
+ 404: components["responses"]["NotFound"];
730
+ };
731
+ };
732
+ updateSchedule: {
733
+ parameters: {
734
+ query?: never;
735
+ header?: never;
736
+ path: {
737
+ scheduleId: string;
738
+ };
739
+ cookie?: never;
740
+ };
741
+ requestBody: {
742
+ content: {
743
+ "application/json": components["schemas"]["UpdateScheduleRequest"];
744
+ };
745
+ };
746
+ responses: {
747
+ /** @description Updated schedule */
748
+ 200: {
749
+ headers: {
750
+ [name: string]: unknown;
751
+ };
752
+ content: {
753
+ "application/json": components["schemas"]["ScheduleResponse"];
754
+ };
755
+ };
756
+ 400: components["responses"]["ValidationError"];
757
+ 401: components["responses"]["Unauthorized"];
758
+ 404: components["responses"]["NotFound"];
759
+ };
760
+ };
761
+ }
762
+ //# sourceMappingURL=schema.d.ts.map