@bugbug-io/api-schema 13.39.1 → 14.0.2

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.
@@ -295,6 +295,26 @@ export interface paths {
295
295
  patch?: never;
296
296
  trace?: never;
297
297
  };
298
+ "/api/v2/project/import/check/": {
299
+ parameters: {
300
+ query?: never;
301
+ header?: never;
302
+ path?: never;
303
+ cookie?: never;
304
+ };
305
+ get?: never;
306
+ put?: never;
307
+ /**
308
+ * Check whether a project ZIP is importable (stateless)
309
+ * @description **Stateless, read-only** check: confirms the ZIP is a well-formed project export (has `project.yaml`, no folder/slug collisions). No DB writes, no draft or upload artifact created unlike `import/validate` - safe to call repeatedly. Does not check against this organization's existing data, so a `200` here doesn't guarantee `import/validate` + `import/run` will succeed. Use for pre-flight checks, including by LLM/agent callers, before committing to `import/validate`.
310
+ */
311
+ post: operations["v2_project_import_check_create"];
312
+ delete?: never;
313
+ options?: never;
314
+ head?: never;
315
+ patch?: never;
316
+ trace?: never;
317
+ };
298
318
  "/api/v2/project/import/run/": {
299
319
  parameters: {
300
320
  query?: never;
@@ -355,6 +375,46 @@ export interface paths {
355
375
  patch?: never;
356
376
  trace?: never;
357
377
  };
378
+ "/api/v2/projects/{project_pk}/backups/": {
379
+ parameters: {
380
+ query?: never;
381
+ header?: never;
382
+ path?: never;
383
+ cookie?: never;
384
+ };
385
+ /**
386
+ * List project backups
387
+ * @description Returns the backup schedule and unexpired backup archives for the selected project.
388
+ */
389
+ get: operations["v2_projects_backups_list"];
390
+ put?: never;
391
+ post?: never;
392
+ delete?: never;
393
+ options?: never;
394
+ head?: never;
395
+ patch?: never;
396
+ trace?: never;
397
+ };
398
+ "/api/v2/projects/{project_pk}/backups/{id}/download/": {
399
+ parameters: {
400
+ query?: never;
401
+ header?: never;
402
+ path?: never;
403
+ cookie?: never;
404
+ };
405
+ /**
406
+ * Download project backup
407
+ * @description Downloads an unexpired project backup as a ZIP archive.
408
+ */
409
+ get: operations["v2_projects_backups_download_retrieve"];
410
+ put?: never;
411
+ post?: never;
412
+ delete?: never;
413
+ options?: never;
414
+ head?: never;
415
+ patch?: never;
416
+ trace?: never;
417
+ };
358
418
  "/api/v2/projects/{project_pk}/settings/": {
359
419
  parameters: {
360
420
  query?: never;
@@ -1037,6 +1097,26 @@ export interface paths {
1037
1097
  patch?: never;
1038
1098
  trace?: never;
1039
1099
  };
1100
+ "/api/v2/tests/import/check/": {
1101
+ parameters: {
1102
+ query?: never;
1103
+ header?: never;
1104
+ path?: never;
1105
+ cookie?: never;
1106
+ };
1107
+ get?: never;
1108
+ put?: never;
1109
+ /**
1110
+ * Check whether a test YAML or ZIP is importable (stateless)
1111
+ * @description **Stateless, read-only** check: confirms the YAML/ZIP is a well-formed test export (right schema, no folder/slug collisions). No DB writes, unlike `import` which writes immediately whenever there's no slug conflict - safe to call repeatedly. Does not check against this project's existing tests/components, so a `200` here doesn't guarantee `import` will succeed. Use for pre-flight checks, including by LLM/agent callers, before committing to `import`.
1112
+ */
1113
+ post: operations["v2_tests_import_check_create"];
1114
+ delete?: never;
1115
+ options?: never;
1116
+ head?: never;
1117
+ patch?: never;
1118
+ trace?: never;
1119
+ };
1040
1120
  "/api/v2/variables/": {
1041
1121
  parameters: {
1042
1122
  query?: never;
@@ -1134,6 +1214,10 @@ export interface paths {
1134
1214
  delete: operations["v2_visual_regression_reference_screenshots_destroy"];
1135
1215
  options?: never;
1136
1216
  head?: never;
1217
+ /**
1218
+ * Update visual regression reference screenshot
1219
+ * @description Updates a visual regression reference screenshot.
1220
+ */
1137
1221
  patch: operations["v2_visual_regression_reference_screenshots_partial_update"];
1138
1222
  trace?: never;
1139
1223
  };
@@ -3260,6 +3344,7 @@ export interface components {
3260
3344
  PatchedV2SuiteCreate: {
3261
3345
  autoAddNewTests?: boolean;
3262
3346
  autoRetry?: number;
3347
+ beforeAfterAllEnabled?: boolean;
3263
3348
  /** Suite notes */
3264
3349
  notes?: string | null;
3265
3350
  name?: string | null;
@@ -3267,6 +3352,8 @@ export interface components {
3267
3352
  /** Format: uuid */
3268
3353
  runProfileId?: string;
3269
3354
  tests?: string[];
3355
+ beforeAll?: string[];
3356
+ afterAll?: string[];
3270
3357
  };
3271
3358
  PatchedV2TestCreate: {
3272
3359
  name?: string | null;
@@ -3282,31 +3369,51 @@ export interface components {
3282
3369
  /** Format: uuid */
3283
3370
  folderId?: string | null;
3284
3371
  };
3285
- PatchedV2VisualRegressionRefScreenshot: {
3286
- /** Format: uuid */
3287
- readonly id?: string;
3288
- /** Format: uuid */
3289
- readonly stepId?: string;
3290
- /** Format: uuid */
3291
- readonly projectArtifactId?: string | null;
3292
- readonly screenshotUrl?: string | null;
3293
- readonly browserName?: string | null;
3294
- readonly osName?: string | null;
3295
- readonly screenSizeType?: string | null;
3372
+ PatchedV2VisualRegressionRefScreenshotUpdate: {
3373
+ /** Format: uri */
3374
+ screenshot?: string;
3375
+ };
3376
+ ProjectBackup: {
3296
3377
  /** Format: uuid */
3297
- readonly runProfileId?: string | null;
3298
- readonly runProfileName?: string;
3378
+ readonly id: string;
3379
+ /** Format: date-time */
3380
+ readonly created: string;
3381
+ /** Format: date-time */
3382
+ expiresAt: string;
3383
+ readonly testsCount: number;
3384
+ readonly suitesCount: number;
3385
+ readonly retentionDays: number;
3299
3386
  /**
3300
- * @description * `server` - cloud
3301
- * * `local` - local
3302
- * * `recording` - recording
3303
- * @enum {string|null}
3387
+ * @description * `automatic` - Automatic
3388
+ * @enum {string}
3304
3389
  */
3305
- readonly runMode?: "server" | "local" | "recording" | null;
3306
- /** Format: date-time */
3307
- readonly created?: string;
3390
+ readonly triggeredBy: "automatic";
3391
+ };
3392
+ ProjectBackupList: {
3393
+ isActive: boolean;
3394
+ frequencyDays: number;
3395
+ retentionDays: number | null;
3308
3396
  /** Format: date-time */
3309
- readonly modified?: string;
3397
+ nextBackupAt: string | null;
3398
+ backups: components["schemas"]["ProjectBackup"][];
3399
+ };
3400
+ ProjectImportCheckRequest: {
3401
+ /**
3402
+ * Format: uri
3403
+ * @description Project ZIP file to check.
3404
+ */
3405
+ file: string;
3406
+ };
3407
+ ProjectImportCheckResult: {
3408
+ /** @description Always `true` when the response is 200. */
3409
+ valid: boolean;
3410
+ summary: components["schemas"]["ProjectImportCheckSummary"];
3411
+ };
3412
+ ProjectImportCheckSummary: {
3413
+ tests: number;
3414
+ components: number;
3415
+ suites: number;
3416
+ profiles: number;
3310
3417
  };
3311
3418
  ProjectImportRunRequest: {
3312
3419
  /**
@@ -3583,6 +3690,22 @@ export interface components {
3583
3690
  */
3584
3691
  value: "topFrame" | "iframe";
3585
3692
  };
3693
+ TestImportCheckRequest: {
3694
+ /**
3695
+ * Format: uri
3696
+ * @description YAML or ZIP file to check.
3697
+ */
3698
+ file: string;
3699
+ };
3700
+ TestImportCheckResult: {
3701
+ /** @description Always `true` when the response is 200. */
3702
+ valid: boolean;
3703
+ summary: components["schemas"]["TestImportCheckSummary"];
3704
+ };
3705
+ TestImportCheckSummary: {
3706
+ tests: number;
3707
+ components: number;
3708
+ };
3586
3709
  TestImportConflict: {
3587
3710
  /**
3588
3711
  * @description * `conflict` - conflict
@@ -3956,6 +4079,12 @@ export interface components {
3956
4079
  componentId?: string;
3957
4080
  atIndex?: number | null;
3958
4081
  };
4082
+ V2LatestRun: {
4083
+ /** Format: uuid */
4084
+ readonly id: string;
4085
+ readonly status: string;
4086
+ readonly webappUrl: string;
4087
+ };
3959
4088
  V2Organization: {
3960
4089
  /** Format: uuid */
3961
4090
  readonly id: string;
@@ -4589,17 +4718,26 @@ export interface components {
4589
4718
  readonly tests: {
4590
4719
  [key: string]: unknown;
4591
4720
  }[];
4721
+ readonly beforeAll: {
4722
+ [key: string]: unknown;
4723
+ }[];
4724
+ readonly afterAll: {
4725
+ [key: string]: unknown;
4726
+ }[];
4592
4727
  readonly autoAddNewTests: boolean;
4593
4728
  readonly autoRetry: number;
4729
+ readonly beforeAfterAllEnabled: boolean;
4594
4730
  /** Suite notes */
4595
4731
  readonly notes: string | null;
4596
4732
  readonly runInParallel: boolean;
4597
4733
  /** Format: uuid */
4598
4734
  readonly runProfileId: string | null;
4735
+ readonly latestRun: components["schemas"]["V2LatestRun"] | null;
4599
4736
  };
4600
4737
  V2SuiteCreate: {
4601
4738
  autoAddNewTests?: boolean;
4602
4739
  autoRetry?: number;
4740
+ beforeAfterAllEnabled?: boolean;
4603
4741
  /** Suite notes */
4604
4742
  notes?: string | null;
4605
4743
  name?: string | null;
@@ -4607,6 +4745,8 @@ export interface components {
4607
4745
  /** Format: uuid */
4608
4746
  runProfileId: string;
4609
4747
  tests?: string[];
4748
+ beforeAll?: string[];
4749
+ afterAll?: string[];
4610
4750
  };
4611
4751
  V2SuiteDetails: {
4612
4752
  /** Format: uuid */
@@ -4616,16 +4756,25 @@ export interface components {
4616
4756
  readonly tests: {
4617
4757
  [key: string]: unknown;
4618
4758
  }[];
4759
+ readonly beforeAll: {
4760
+ [key: string]: unknown;
4761
+ }[];
4762
+ readonly afterAll: {
4763
+ [key: string]: unknown;
4764
+ }[];
4619
4765
  readonly autoAddNewTests: boolean;
4620
4766
  readonly autoRetry: number;
4767
+ readonly beforeAfterAllEnabled: boolean;
4621
4768
  /** Suite notes */
4622
4769
  readonly notes: string | null;
4623
4770
  readonly runInParallel: boolean;
4624
4771
  /** Format: uuid */
4625
4772
  readonly runProfileId: string | null;
4773
+ readonly latestRun: components["schemas"]["V2LatestRun"] | null;
4626
4774
  readonly webappUrl: string;
4627
4775
  };
4628
4776
  V2SuiteRun: {
4777
+ readonly beforeAfterAllEnabled: boolean;
4629
4778
  readonly duration: string | null;
4630
4779
  /** Format: date-time */
4631
4780
  readonly ended: string | null;
@@ -4709,6 +4858,7 @@ export interface components {
4709
4858
  name?: string;
4710
4859
  /** Format: uuid */
4711
4860
  folderId?: string | null;
4861
+ readonly latestRun: components["schemas"]["V2LatestRun"] | null;
4712
4862
  };
4713
4863
  V2TestCreate: {
4714
4864
  name?: string | null;
@@ -4730,6 +4880,7 @@ export interface components {
4730
4880
  name?: string;
4731
4881
  /** Format: uuid */
4732
4882
  folderId?: string | null;
4883
+ readonly latestRun: components["schemas"]["V2LatestRun"] | null;
4733
4884
  readonly groups: string;
4734
4885
  /** Test notes */
4735
4886
  readonly notes: string | null;
@@ -4781,6 +4932,13 @@ export interface components {
4781
4932
  * @enum {string}
4782
4933
  */
4783
4934
  readonly screenSizeType: "desktop" | "mobile" | "custom";
4935
+ /**
4936
+ * @description * `main` - Main
4937
+ * * `before_all` - Before all
4938
+ * * `after_all` - After all
4939
+ * @enum {string}
4940
+ */
4941
+ readonly section: "main" | "before_all" | "after_all";
4784
4942
  readonly sequence: number | null;
4785
4943
  /** Format: date-time */
4786
4944
  readonly started: string | null;
@@ -5388,6 +5546,7 @@ export interface operations {
5388
5546
  v2_groups_list: {
5389
5547
  parameters: {
5390
5548
  query?: {
5549
+ folder?: string;
5391
5550
  folderId?: string;
5392
5551
  noFolder?: boolean;
5393
5552
  ordering?: "-created" | "-name" | "created" | "name";
@@ -5752,6 +5911,43 @@ export interface operations {
5752
5911
  };
5753
5912
  };
5754
5913
  };
5914
+ v2_project_import_check_create: {
5915
+ parameters: {
5916
+ query?: never;
5917
+ header?: never;
5918
+ path?: never;
5919
+ cookie?: never;
5920
+ };
5921
+ requestBody: {
5922
+ content: {
5923
+ "multipart/form-data": components["schemas"]["ProjectImportCheckRequest"];
5924
+ };
5925
+ };
5926
+ responses: {
5927
+ 200: {
5928
+ headers: {
5929
+ [name: string]: unknown;
5930
+ };
5931
+ content: {
5932
+ "application/json": components["schemas"]["ProjectImportCheckResult"];
5933
+ };
5934
+ };
5935
+ /** @description File missing, too large, or structurally invalid ZIP. See `message` for the reason. */
5936
+ 400: {
5937
+ headers: {
5938
+ [name: string]: unknown;
5939
+ };
5940
+ content?: never;
5941
+ };
5942
+ /** @description Authentication credentials were missing or invalid. */
5943
+ 401: {
5944
+ headers: {
5945
+ [name: string]: unknown;
5946
+ };
5947
+ content?: never;
5948
+ };
5949
+ };
5950
+ };
5755
5951
  v2_project_import_run_create: {
5756
5952
  parameters: {
5757
5953
  query?: never;
@@ -5861,6 +6057,79 @@ export interface operations {
5861
6057
  };
5862
6058
  };
5863
6059
  };
6060
+ v2_projects_backups_list: {
6061
+ parameters: {
6062
+ query?: never;
6063
+ header?: never;
6064
+ path: {
6065
+ project_pk: string;
6066
+ };
6067
+ cookie?: never;
6068
+ };
6069
+ requestBody?: never;
6070
+ responses: {
6071
+ 200: {
6072
+ headers: {
6073
+ [name: string]: unknown;
6074
+ };
6075
+ content: {
6076
+ "application/json": components["schemas"]["ProjectBackupList"][];
6077
+ };
6078
+ };
6079
+ /** @description Authentication credentials were not provided. */
6080
+ 401: {
6081
+ headers: {
6082
+ [name: string]: unknown;
6083
+ };
6084
+ content?: never;
6085
+ };
6086
+ /** @description Project not found. */
6087
+ 404: {
6088
+ headers: {
6089
+ [name: string]: unknown;
6090
+ };
6091
+ content?: never;
6092
+ };
6093
+ };
6094
+ };
6095
+ v2_projects_backups_download_retrieve: {
6096
+ parameters: {
6097
+ query?: never;
6098
+ header?: never;
6099
+ path: {
6100
+ /** @description A UUID string identifying this project backup. */
6101
+ id: string;
6102
+ project_pk: string;
6103
+ };
6104
+ cookie?: never;
6105
+ };
6106
+ requestBody?: never;
6107
+ responses: {
6108
+ /** @description ZIP archive download. Content-Type is `application/zip`. */
6109
+ 200: {
6110
+ headers: {
6111
+ [name: string]: unknown;
6112
+ };
6113
+ content: {
6114
+ "application/json": string;
6115
+ };
6116
+ };
6117
+ /** @description Authentication credentials were not provided. */
6118
+ 401: {
6119
+ headers: {
6120
+ [name: string]: unknown;
6121
+ };
6122
+ content?: never;
6123
+ };
6124
+ /** @description Project or backup not found. */
6125
+ 404: {
6126
+ headers: {
6127
+ [name: string]: unknown;
6128
+ };
6129
+ content?: never;
6130
+ };
6131
+ };
6132
+ };
5864
6133
  v2_projects_settings_list_2: {
5865
6134
  parameters: {
5866
6135
  query?: never;
@@ -6214,8 +6483,8 @@ export interface operations {
6214
6483
  v2_suiteruns_list: {
6215
6484
  parameters: {
6216
6485
  query?: {
6217
- /** @description Which field to use when ordering the results. */
6218
- ordering?: string;
6486
+ /** @description Sort list by param */
6487
+ ordering?: "-created" | "-started" | "created" | "started";
6219
6488
  /** @description A page number within the paginated result set. */
6220
6489
  page?: number;
6221
6490
  /** @description Number of results to return per page. */
@@ -6525,6 +6794,8 @@ export interface operations {
6525
6794
  v2_suites_list: {
6526
6795
  parameters: {
6527
6796
  query?: {
6797
+ /** @description Include the latest run summary for each suite. */
6798
+ latestRun?: boolean;
6528
6799
  ordering?: "-created" | "-name" | "created" | "name";
6529
6800
  /** @description A page number within the paginated result set. */
6530
6801
  page?: number;
@@ -6762,7 +7033,7 @@ export interface operations {
6762
7033
  parameters: {
6763
7034
  query?: {
6764
7035
  /** @description Sort list by param */
6765
- ordering?: "-started" | "started";
7036
+ ordering?: "-created" | "-started" | "created" | "started";
6766
7037
  /** @description A page number within the paginated result set. */
6767
7038
  page?: number;
6768
7039
  /** @description Number of results to return per page. */
@@ -7144,7 +7415,10 @@ export interface operations {
7144
7415
  v2_tests_list: {
7145
7416
  parameters: {
7146
7417
  query?: {
7418
+ folder?: string;
7147
7419
  folderId?: string;
7420
+ /** @description Include the latest run summary for each test. */
7421
+ latestRun?: boolean;
7148
7422
  noFolder?: boolean;
7149
7423
  ordering?: "-created" | "-name" | "created" | "name";
7150
7424
  /** @description A page number within the paginated result set. */
@@ -7564,6 +7838,43 @@ export interface operations {
7564
7838
  };
7565
7839
  };
7566
7840
  };
7841
+ v2_tests_import_check_create: {
7842
+ parameters: {
7843
+ query?: never;
7844
+ header?: never;
7845
+ path?: never;
7846
+ cookie?: never;
7847
+ };
7848
+ requestBody: {
7849
+ content: {
7850
+ "multipart/form-data": components["schemas"]["TestImportCheckRequest"];
7851
+ };
7852
+ };
7853
+ responses: {
7854
+ 200: {
7855
+ headers: {
7856
+ [name: string]: unknown;
7857
+ };
7858
+ content: {
7859
+ "application/json": components["schemas"]["TestImportCheckResult"];
7860
+ };
7861
+ };
7862
+ /** @description File missing, too large, or structurally invalid. See `message` for the reason. */
7863
+ 400: {
7864
+ headers: {
7865
+ [name: string]: unknown;
7866
+ };
7867
+ content?: never;
7868
+ };
7869
+ /** @description Authentication credentials were missing or invalid. */
7870
+ 401: {
7871
+ headers: {
7872
+ [name: string]: unknown;
7873
+ };
7874
+ content?: never;
7875
+ };
7876
+ };
7877
+ };
7567
7878
  v2_variables_list: {
7568
7879
  parameters: {
7569
7880
  query?: never;
@@ -7912,8 +8223,8 @@ export interface operations {
7912
8223
  };
7913
8224
  requestBody?: {
7914
8225
  content: {
7915
- "application/x-www-form-urlencoded": components["schemas"]["PatchedV2VisualRegressionRefScreenshot"];
7916
- "application/json": components["schemas"]["PatchedV2VisualRegressionRefScreenshot"];
8226
+ "application/x-www-form-urlencoded": components["schemas"]["PatchedV2VisualRegressionRefScreenshotUpdate"];
8227
+ "application/json": components["schemas"]["PatchedV2VisualRegressionRefScreenshotUpdate"];
7917
8228
  };
7918
8229
  };
7919
8230
  responses: {