@artifact-keeper/sdk 1.1.0-dev.2 → 1.1.0-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/types.gen.ts CHANGED
@@ -8,6 +8,10 @@ export type AcknowledgeRequest = {
8
8
  reason: string;
9
9
  };
10
10
 
11
+ export type AddArtifactLabelRequest = {
12
+ value?: string;
13
+ };
14
+
11
15
  export type AddBuildArtifactsRequest = {
12
16
  artifacts: Array<BuildArtifactInputPayload>;
13
17
  };
@@ -20,11 +24,28 @@ export type AddLabelRequest = {
20
24
  value?: string;
21
25
  };
22
26
 
27
+ export type AddPeerLabelRequest = {
28
+ value?: string;
29
+ };
30
+
23
31
  export type AddVirtualMemberRequest = {
24
32
  member_key: string;
25
33
  priority?: number | null;
26
34
  };
27
35
 
36
+ export type AdminUserResponse = {
37
+ auth_provider: string;
38
+ created_at: string;
39
+ display_name?: string | null;
40
+ email: string;
41
+ id: string;
42
+ is_active: boolean;
43
+ is_admin: boolean;
44
+ last_login_at?: string | null;
45
+ must_change_password: boolean;
46
+ username: string;
47
+ };
48
+
28
49
  export type AdvancedSearchResponse = {
29
50
  facets: FacetsResponse;
30
51
  items: Array<SearchResultItem>;
@@ -70,6 +91,112 @@ export type ApiTokenResponse = {
70
91
  token_prefix: string;
71
92
  };
72
93
 
94
+ export type ApprovalHistoryQuery = {
95
+ page?: number | null;
96
+ per_page?: number | null;
97
+ source_repository?: string | null;
98
+ status?: string | null;
99
+ };
100
+
101
+ export type ApprovalListResponse = {
102
+ items: Array<ApprovalResponse>;
103
+ pagination: Pagination;
104
+ };
105
+
106
+ export type ApprovalRequest = {
107
+ /**
108
+ * Artifact ID to promote
109
+ */
110
+ artifact_id: string;
111
+ /**
112
+ * Free-text justification
113
+ */
114
+ notes?: string | null;
115
+ /**
116
+ * Skip policy evaluation
117
+ */
118
+ skip_policy_check?: boolean;
119
+ /**
120
+ * Source staging repository key
121
+ */
122
+ source_repository: string;
123
+ /**
124
+ * Target release repository key
125
+ */
126
+ target_repository: string;
127
+ };
128
+
129
+ export type ApprovalResponse = {
130
+ artifact_id: string;
131
+ id: string;
132
+ notes?: string | null;
133
+ policy_result?: {
134
+ [key: string]: unknown;
135
+ } | null;
136
+ requested_at: string;
137
+ requested_by: string;
138
+ review_notes?: string | null;
139
+ reviewed_at?: string | null;
140
+ reviewed_by?: string | null;
141
+ source_repository: string;
142
+ status: string;
143
+ target_repository: string;
144
+ };
145
+
146
+ export type ArtifactEvalEntry = {
147
+ artifact_id: string;
148
+ passed: boolean;
149
+ violations: Array<string>;
150
+ };
151
+
152
+ export type ArtifactFilterSchema = {
153
+ exclude_paths?: Array<string>;
154
+ include_paths?: Array<string>;
155
+ /**
156
+ * Tag selectors (AND semantics). Key = tag key, value = required tag value.
157
+ * Empty value means "key must exist with any value".
158
+ */
159
+ match_tags?: {
160
+ [key: string]: string;
161
+ };
162
+ max_age_days?: number | null;
163
+ max_size_bytes?: number | null;
164
+ };
165
+
166
+ export type ArtifactHealthResponse = {
167
+ artifact_id: string;
168
+ checks: Array<CheckSummary>;
169
+ checks_passed: number;
170
+ checks_total: number;
171
+ critical_issues: number;
172
+ health_grade: string;
173
+ health_score: number;
174
+ last_checked_at?: string | null;
175
+ license_score?: number | null;
176
+ metadata_score?: number | null;
177
+ quality_score?: number | null;
178
+ security_score?: number | null;
179
+ total_issues: number;
180
+ };
181
+
182
+ export type ArtifactLabelEntrySchema = {
183
+ key: string;
184
+ value?: string;
185
+ };
186
+
187
+ export type ArtifactLabelResponse = {
188
+ artifact_id: string;
189
+ created_at: string;
190
+ id: string;
191
+ key: string;
192
+ value: string;
193
+ };
194
+
195
+ export type ArtifactLabelsListResponse = {
196
+ items: Array<ArtifactLabelResponse>;
197
+ total: number;
198
+ };
199
+
73
200
  export type ArtifactListResponse = {
74
201
  items: Array<ArtifactResponse>;
75
202
  pagination: Pagination;
@@ -244,6 +371,15 @@ export type BuildRow = {
244
371
  updated_at: string;
245
372
  };
246
373
 
374
+ export type BulkEvaluationResponse = {
375
+ failed: number;
376
+ passed: number;
377
+ results: Array<ArtifactEvalEntry>;
378
+ rule_id: string;
379
+ rule_name: string;
380
+ total_artifacts: number;
381
+ };
382
+
247
383
  export type BulkPromoteRequest = {
248
384
  artifact_ids: Array<string>;
249
385
  notes?: string | null;
@@ -268,11 +404,44 @@ export type CheckLicenseComplianceRequest = {
268
404
  repository_id?: string | null;
269
405
  };
270
406
 
407
+ export type CheckResponse = {
408
+ artifact_id: string;
409
+ check_type: string;
410
+ checker_version?: string | null;
411
+ completed_at?: string | null;
412
+ created_at: string;
413
+ critical_count: number;
414
+ details?: {
415
+ [key: string]: unknown;
416
+ } | null;
417
+ error_message?: string | null;
418
+ high_count: number;
419
+ id: string;
420
+ info_count: number;
421
+ issues_count: number;
422
+ low_count: number;
423
+ medium_count: number;
424
+ passed?: boolean | null;
425
+ repository_id: string;
426
+ score?: number | null;
427
+ started_at?: string | null;
428
+ status: string;
429
+ };
430
+
271
431
  export type CheckStatus = {
272
432
  message?: string | null;
273
433
  status: string;
274
434
  };
275
435
 
436
+ export type CheckSummary = {
437
+ check_type: string;
438
+ completed_at?: string | null;
439
+ issues_count: number;
440
+ passed?: boolean | null;
441
+ score?: number | null;
442
+ status: string;
443
+ };
444
+
276
445
  export type ChecksumArtifact = {
277
446
  checksum_sha256: string;
278
447
  content_type: string;
@@ -316,12 +485,14 @@ export type CleanupRequest = {
316
485
  cleanup_audit_logs?: boolean | null;
317
486
  cleanup_old_backups?: boolean | null;
318
487
  cleanup_stale_peers?: boolean | null;
488
+ cleanup_stale_uploads?: boolean | null;
319
489
  };
320
490
 
321
491
  export type CleanupResponse = {
322
492
  audit_logs_deleted: number;
323
493
  backups_deleted: number;
324
494
  peers_marked_offline: number;
495
+ stale_uploads_deleted: number;
325
496
  };
326
497
 
327
498
  export type CompleteChunkBody = {
@@ -451,6 +622,23 @@ export type CreateConnectionRequest = {
451
622
  url: string;
452
623
  };
453
624
 
625
+ export type CreateGateRequest = {
626
+ action?: string;
627
+ description?: string | null;
628
+ enforce_on_download?: boolean;
629
+ enforce_on_promotion?: boolean;
630
+ max_critical_issues?: number | null;
631
+ max_high_issues?: number | null;
632
+ max_medium_issues?: number | null;
633
+ min_health_score?: number | null;
634
+ min_metadata_score?: number | null;
635
+ min_quality_score?: number | null;
636
+ min_security_score?: number | null;
637
+ name: string;
638
+ repository_id?: string | null;
639
+ required_checks?: Array<string>;
640
+ };
641
+
454
642
  export type CreateGroupRequest = {
455
643
  description?: string | null;
456
644
  name: string;
@@ -522,14 +710,21 @@ export type CreatePermissionRequest = {
522
710
  export type CreatePolicyRequest = {
523
711
  block_on_fail: boolean;
524
712
  block_unscanned: boolean;
713
+ max_artifact_age_days?: number | null;
525
714
  max_severity: string;
715
+ min_staging_hours?: number | null;
526
716
  name: string;
527
717
  repository_id?: string | null;
718
+ require_signature?: boolean;
528
719
  };
529
720
 
530
721
  export type CreateRepositoryRequest = {
531
722
  description?: string | null;
532
723
  format: string;
724
+ /**
725
+ * Custom format key for WASM plugin format handlers (e.g. "rpm-custom").
726
+ */
727
+ format_key?: string | null;
533
728
  is_public?: boolean | null;
534
729
  key: string;
535
730
  name: string;
@@ -538,6 +733,20 @@ export type CreateRepositoryRequest = {
538
733
  upstream_url?: string | null;
539
734
  };
540
735
 
736
+ export type CreateRuleRequest = {
737
+ allowed_licenses?: Array<string> | null;
738
+ auto_promote?: boolean;
739
+ is_enabled?: boolean;
740
+ max_artifact_age_days?: number | null;
741
+ max_cve_severity?: string | null;
742
+ min_health_score?: number | null;
743
+ min_staging_hours?: number | null;
744
+ name: string;
745
+ require_signature?: boolean;
746
+ source_repo_id: string;
747
+ target_repo_id: string;
748
+ };
749
+
541
750
  export type CreateSamlConfigRequest = {
542
751
  admin_group?: string | null;
543
752
  attribute_mapping?: {
@@ -555,11 +764,66 @@ export type CreateSamlConfigRequest = {
555
764
  sso_url: string;
556
765
  };
557
766
 
767
+ export type CreateServiceAccountRequest = {
768
+ /**
769
+ * Optional description
770
+ */
771
+ description?: string | null;
772
+ /**
773
+ * Name for the service account (will be prefixed with "svc-")
774
+ */
775
+ name: string;
776
+ };
777
+
778
+ export type CreateSyncPolicyPayload = {
779
+ artifact_filter?: {
780
+ [key: string]: unknown;
781
+ };
782
+ description?: string;
783
+ enabled?: boolean;
784
+ name: string;
785
+ peer_selector?: {
786
+ [key: string]: unknown;
787
+ };
788
+ precedence?: number;
789
+ priority?: number;
790
+ replication_mode?: string;
791
+ repo_selector?: {
792
+ [key: string]: unknown;
793
+ };
794
+ };
795
+
558
796
  export type CreateTicketRequest = {
559
797
  purpose: string;
560
798
  resource_path?: string | null;
561
799
  };
562
800
 
801
+ export type CreateTokenRequest = {
802
+ description?: string | null;
803
+ expires_in_days?: number | null;
804
+ name: string;
805
+ /**
806
+ * Dynamic repository selector (match by labels, formats, name pattern).
807
+ * Mutually exclusive with `repository_ids`. When set, matched repos are
808
+ * resolved at auth time so new repos that match the selector are picked up
809
+ * automatically.
810
+ */
811
+ repo_selector?: {
812
+ [key: string]: unknown;
813
+ } | null;
814
+ /**
815
+ * Explicit repository IDs to restrict access to. Mutually exclusive with `repo_selector`.
816
+ */
817
+ repository_ids?: Array<string> | null;
818
+ scopes: Array<string>;
819
+ };
820
+
821
+ export type CreateTokenResponse = {
822
+ id: string;
823
+ name: string;
824
+ token: string;
825
+ };
826
+
563
827
  export type CreateUserRequest = {
564
828
  display_name?: string | null;
565
829
  email: string;
@@ -570,7 +834,7 @@ export type CreateUserRequest = {
570
834
 
571
835
  export type CreateUserResponse = {
572
836
  generated_password?: string | null;
573
- user: UserResponse;
837
+ user: AdminUserResponse;
574
838
  };
575
839
 
576
840
  export type CreateWebhookRequest = {
@@ -679,6 +943,16 @@ export type DateRangeQuery = {
679
943
  to?: string | null;
680
944
  };
681
945
 
946
+ /**
947
+ * Database connection pool statistics.
948
+ */
949
+ export type DbPoolStats = {
950
+ active_connections: number;
951
+ idle_connections: number;
952
+ max_connections: number;
953
+ size: number;
954
+ };
955
+
682
956
  export type DeliveryListResponse = {
683
957
  items: Array<DeliveryResponse>;
684
958
  total: number;
@@ -942,6 +1216,14 @@ export type ErrorResponse = {
942
1216
  message: string;
943
1217
  };
944
1218
 
1219
+ export type EvaluationResultResponse = {
1220
+ created: number;
1221
+ policies_evaluated: number;
1222
+ removed: number;
1223
+ retroactive_tasks_queued: number;
1224
+ updated: number;
1225
+ };
1226
+
945
1227
  export type EventsQuery = {
946
1228
  limit?: number | null;
947
1229
  };
@@ -1030,6 +1312,46 @@ export type FormatHandlerResponse = {
1030
1312
  */
1031
1313
  export type FormatHandlerType = 'Core' | 'Wasm';
1032
1314
 
1315
+ export type GateEvaluationResponse = {
1316
+ action: string;
1317
+ component_scores: {
1318
+ [key: string]: unknown;
1319
+ };
1320
+ gate_name: string;
1321
+ health_grade: string;
1322
+ health_score: number;
1323
+ passed: boolean;
1324
+ violations: Array<GateViolationResponse>;
1325
+ };
1326
+
1327
+ export type GateResponse = {
1328
+ action: string;
1329
+ created_at: string;
1330
+ description?: string | null;
1331
+ enforce_on_download: boolean;
1332
+ enforce_on_promotion: boolean;
1333
+ id: string;
1334
+ is_enabled: boolean;
1335
+ max_critical_issues?: number | null;
1336
+ max_high_issues?: number | null;
1337
+ max_medium_issues?: number | null;
1338
+ min_health_score?: number | null;
1339
+ min_metadata_score?: number | null;
1340
+ min_quality_score?: number | null;
1341
+ min_security_score?: number | null;
1342
+ name: string;
1343
+ repository_id?: string | null;
1344
+ required_checks: Array<string>;
1345
+ updated_at: string;
1346
+ };
1347
+
1348
+ export type GateViolationResponse = {
1349
+ actual: string;
1350
+ expected: string;
1351
+ message: string;
1352
+ rule: string;
1353
+ };
1354
+
1033
1355
  export type GenerateSbomRequest = {
1034
1356
  artifact_id: string;
1035
1357
  force_regenerate?: boolean;
@@ -1087,8 +1409,21 @@ export type HealthChecks = {
1087
1409
  storage: CheckStatus;
1088
1410
  };
1089
1411
 
1412
+ export type HealthDashboardResponse = {
1413
+ avg_health_score: number;
1414
+ repos_grade_a: number;
1415
+ repos_grade_b: number;
1416
+ repos_grade_c: number;
1417
+ repos_grade_d: number;
1418
+ repos_grade_f: number;
1419
+ repositories: Array<RepoHealthResponse>;
1420
+ total_artifacts_evaluated: number;
1421
+ total_repositories: number;
1422
+ };
1423
+
1090
1424
  export type HealthResponse = {
1091
1425
  checks: HealthChecks;
1426
+ db_pool?: null | DbPoolStats;
1092
1427
  demo_mode: boolean;
1093
1428
  status: string;
1094
1429
  version: string;
@@ -1135,6 +1470,22 @@ export type InstallFromLocalRequest = {
1135
1470
  path: string;
1136
1471
  };
1137
1472
 
1473
+ export type IssueResponse = {
1474
+ artifact_id: string;
1475
+ category: string;
1476
+ check_result_id: string;
1477
+ created_at: string;
1478
+ description?: string | null;
1479
+ id: string;
1480
+ is_suppressed: boolean;
1481
+ location?: string | null;
1482
+ severity: string;
1483
+ suppressed_at?: string | null;
1484
+ suppressed_by?: string | null;
1485
+ suppressed_reason?: string | null;
1486
+ title: string;
1487
+ };
1488
+
1138
1489
  export type KeyListResponse = {
1139
1490
  keys: Array<SigningKeyPublic>;
1140
1491
  total: number;
@@ -1293,6 +1644,13 @@ export type ListUsersQuery = {
1293
1644
  search?: string | null;
1294
1645
  };
1295
1646
 
1647
+ /**
1648
+ * Lightweight liveness response.
1649
+ */
1650
+ export type LivezResponse = {
1651
+ status: string;
1652
+ };
1653
+
1296
1654
  export type LoginRequest = {
1297
1655
  password: string;
1298
1656
  username: string;
@@ -1308,6 +1666,27 @@ export type LoginResponse = {
1308
1666
  totp_token?: string | null;
1309
1667
  };
1310
1668
 
1669
+ export type MatchedPeerSchema = {
1670
+ id: string;
1671
+ name: string;
1672
+ region?: string | null;
1673
+ };
1674
+
1675
+ /**
1676
+ * A single matched repository in the preview response.
1677
+ */
1678
+ export type MatchedRepoResponse = {
1679
+ format: string;
1680
+ id: string;
1681
+ key: string;
1682
+ };
1683
+
1684
+ export type MatchedRepoSchema = {
1685
+ format: string;
1686
+ id: string;
1687
+ key: string;
1688
+ };
1689
+
1311
1690
  export type MembersRequest = {
1312
1691
  user_ids: Array<string>;
1313
1692
  };
@@ -1559,6 +1938,24 @@ export type PeerInstanceResponse = {
1559
1938
  status: string;
1560
1939
  };
1561
1940
 
1941
+ export type PeerLabelEntrySchema = {
1942
+ key: string;
1943
+ value?: string;
1944
+ };
1945
+
1946
+ export type PeerLabelResponse = {
1947
+ created_at: string;
1948
+ id: string;
1949
+ key: string;
1950
+ peer_instance_id: string;
1951
+ value: string;
1952
+ };
1953
+
1954
+ export type PeerLabelsListResponse = {
1955
+ items: Array<PeerLabelResponse>;
1956
+ total: number;
1957
+ };
1958
+
1562
1959
  export type PeerResponse = {
1563
1960
  bandwidth_estimate_bps?: number | null;
1564
1961
  bytes_transferred_total: number;
@@ -1574,6 +1971,21 @@ export type PeerResponse = {
1574
1971
  transfer_success_count: number;
1575
1972
  };
1576
1973
 
1974
+ export type PeerSelectorSchema = {
1975
+ all?: boolean;
1976
+ match_labels?: {
1977
+ [key: string]: string;
1978
+ };
1979
+ match_peers?: Array<string>;
1980
+ match_region?: string | null;
1981
+ };
1982
+
1983
+ export type PendingQuery = {
1984
+ page?: number | null;
1985
+ per_page?: number | null;
1986
+ source_repository?: string | null;
1987
+ };
1988
+
1577
1989
  export type PermissionListResponse = {
1578
1990
  items: Array<PermissionResponse>;
1579
1991
  pagination: Pagination;
@@ -1676,9 +2088,12 @@ export type PolicyResponse = {
1676
2088
  created_at: string;
1677
2089
  id: string;
1678
2090
  is_enabled: boolean;
2091
+ max_artifact_age_days?: number | null;
1679
2092
  max_severity: string;
2093
+ min_staging_hours?: number | null;
1680
2094
  name: string;
1681
2095
  repository_id?: string | null;
2096
+ require_signature: boolean;
1682
2097
  updated_at: string;
1683
2098
  };
1684
2099
 
@@ -1688,6 +2103,50 @@ export type PolicyViolation = {
1688
2103
  severity: string;
1689
2104
  };
1690
2105
 
2106
+ export type PreviewPolicyPayload = {
2107
+ artifact_filter?: {
2108
+ [key: string]: unknown;
2109
+ };
2110
+ description?: string;
2111
+ enabled?: boolean;
2112
+ name: string;
2113
+ peer_selector?: {
2114
+ [key: string]: unknown;
2115
+ };
2116
+ precedence?: number;
2117
+ priority?: number;
2118
+ replication_mode?: string;
2119
+ repo_selector?: {
2120
+ [key: string]: unknown;
2121
+ };
2122
+ };
2123
+
2124
+ /**
2125
+ * Request body for previewing which repositories a selector matches.
2126
+ */
2127
+ export type PreviewRepoSelectorRequest = {
2128
+ /**
2129
+ * The repository selector to evaluate.
2130
+ */
2131
+ repo_selector: {
2132
+ [key: string]: unknown;
2133
+ };
2134
+ };
2135
+
2136
+ /**
2137
+ * Response for the repo selector preview endpoint.
2138
+ */
2139
+ export type PreviewRepoSelectorResponse = {
2140
+ matched_repositories: Array<MatchedRepoResponse>;
2141
+ total: number;
2142
+ };
2143
+
2144
+ export type PreviewResultResponse = {
2145
+ matched_peers: Array<MatchedPeerSchema>;
2146
+ matched_repositories: Array<MatchedRepoSchema>;
2147
+ subscription_count: number;
2148
+ };
2149
+
1691
2150
  export type ProbeBody = {
1692
2151
  bandwidth_estimate_bps?: number | null;
1693
2152
  latency_ms: number;
@@ -1711,7 +2170,9 @@ export type PromotionHistoryEntry = {
1711
2170
  } | null;
1712
2171
  promoted_by?: string | null;
1713
2172
  promoted_by_username?: string | null;
2173
+ rejection_reason?: string | null;
1714
2174
  source_repo_key: string;
2175
+ status: string;
1715
2176
  target_repo_key: string;
1716
2177
  };
1717
2178
 
@@ -1719,6 +2180,7 @@ export type PromotionHistoryQuery = {
1719
2180
  artifact_id?: string | null;
1720
2181
  page?: number | null;
1721
2182
  per_page?: number | null;
2183
+ status?: string | null;
1722
2184
  };
1723
2185
 
1724
2186
  export type PromotionHistoryResponse = {
@@ -1735,8 +2197,44 @@ export type PromotionResponse = {
1735
2197
  target: string;
1736
2198
  };
1737
2199
 
1738
- export type QuickSearchResponse = {
1739
- results: Array<SearchResultItem>;
2200
+ export type PromotionRuleListResponse = {
2201
+ items: Array<PromotionRuleResponse>;
2202
+ total: number;
2203
+ };
2204
+
2205
+ export type PromotionRuleResponse = {
2206
+ allowed_licenses?: Array<string> | null;
2207
+ auto_promote: boolean;
2208
+ created_at: string;
2209
+ id: string;
2210
+ is_enabled: boolean;
2211
+ max_artifact_age_days?: number | null;
2212
+ max_cve_severity?: string | null;
2213
+ min_health_score?: number | null;
2214
+ min_staging_hours?: number | null;
2215
+ name: string;
2216
+ require_signature: boolean;
2217
+ source_repo_id: string;
2218
+ target_repo_id: string;
2219
+ updated_at: string;
2220
+ };
2221
+
2222
+ export type QuickSearchResponse = {
2223
+ results: Array<SearchResultItem>;
2224
+ };
2225
+
2226
+ export type ReadyzChecks = {
2227
+ database: CheckStatus;
2228
+ migrations: CheckStatus;
2229
+ setup_complete: CheckStatus;
2230
+ };
2231
+
2232
+ /**
2233
+ * Readiness response with per-check detail.
2234
+ */
2235
+ export type ReadyzResponse = {
2236
+ checks: ReadyzChecks;
2237
+ status: string;
1740
2238
  };
1741
2239
 
1742
2240
  export type RefreshTokenRequest = {
@@ -1760,6 +2258,19 @@ export type ReindexResponse = {
1760
2258
  repositories_indexed: number;
1761
2259
  };
1762
2260
 
2261
+ export type RejectArtifactRequest = {
2262
+ notes?: string | null;
2263
+ reason: string;
2264
+ };
2265
+
2266
+ export type RejectionResponse = {
2267
+ artifact_id: string;
2268
+ reason: string;
2269
+ rejected: boolean;
2270
+ rejection_id: string;
2271
+ source: string;
2272
+ };
2273
+
1763
2274
  export type RemoteInstanceResponse = {
1764
2275
  created_at: string;
1765
2276
  id: string;
@@ -1767,11 +2278,35 @@ export type RemoteInstanceResponse = {
1767
2278
  url: string;
1768
2279
  };
1769
2280
 
2281
+ export type RepoHealthResponse = {
2282
+ artifacts_evaluated: number;
2283
+ artifacts_failing: number;
2284
+ artifacts_passing: number;
2285
+ avg_license_score?: number | null;
2286
+ avg_metadata_score?: number | null;
2287
+ avg_quality_score?: number | null;
2288
+ avg_security_score?: number | null;
2289
+ health_grade: string;
2290
+ health_score: number;
2291
+ last_evaluated_at?: string | null;
2292
+ repository_id: string;
2293
+ repository_key: string;
2294
+ };
2295
+
1770
2296
  export type RepoSecurityResponse = {
1771
2297
  config?: null | ScanConfigResponse;
1772
2298
  score?: null | ScoreResponse;
1773
2299
  };
1774
2300
 
2301
+ export type RepoSelectorSchema = {
2302
+ match_formats?: Array<string>;
2303
+ match_labels?: {
2304
+ [key: string]: string;
2305
+ };
2306
+ match_pattern?: string | null;
2307
+ match_repos?: Array<string>;
2308
+ };
2309
+
1775
2310
  export type RepositoryAssessment = {
1776
2311
  artifact_count: number;
1777
2312
  compatibility: string;
@@ -1861,6 +2396,13 @@ export type RestoreResponse = {
1861
2396
  tables_restored: Array<string>;
1862
2397
  };
1863
2398
 
2399
+ export type ReviewRequest = {
2400
+ /**
2401
+ * Optional reviewer notes
2402
+ */
2403
+ notes?: string | null;
2404
+ };
2405
+
1864
2406
  export type RoleListResponse = {
1865
2407
  items: Array<RoleResponse>;
1866
2408
  };
@@ -1872,6 +2414,13 @@ export type RoleResponse = {
1872
2414
  permissions: Array<string>;
1873
2415
  };
1874
2416
 
2417
+ export type RuleEvaluationResponse = {
2418
+ passed: boolean;
2419
+ rule_id: string;
2420
+ rule_name: string;
2421
+ violations: Array<string>;
2422
+ };
2423
+
1875
2424
  export type SamlAcsForm = {
1876
2425
  RelayState?: string | null;
1877
2426
  SAMLResponse: string;
@@ -1999,6 +2548,29 @@ export type SearchResultItem = {
1999
2548
  version?: string | null;
2000
2549
  };
2001
2550
 
2551
+ export type ServiceAccountListResponse = {
2552
+ items: Array<ServiceAccountSummaryResponse>;
2553
+ };
2554
+
2555
+ export type ServiceAccountResponse = {
2556
+ created_at: string;
2557
+ display_name?: string | null;
2558
+ id: string;
2559
+ is_active: boolean;
2560
+ updated_at: string;
2561
+ username: string;
2562
+ };
2563
+
2564
+ export type ServiceAccountSummaryResponse = {
2565
+ created_at: string;
2566
+ display_name?: string | null;
2567
+ id: string;
2568
+ is_active: boolean;
2569
+ token_count: number;
2570
+ updated_at: string;
2571
+ username: string;
2572
+ };
2573
+
2002
2574
  /**
2003
2575
  * A health check result for a single service.
2004
2576
  */
@@ -2011,10 +2583,18 @@ export type ServiceHealthEntry = {
2011
2583
  status: string;
2012
2584
  };
2013
2585
 
2586
+ export type SetArtifactLabelsRequest = {
2587
+ labels: Array<ArtifactLabelEntrySchema>;
2588
+ };
2589
+
2014
2590
  export type SetLabelsRequest = {
2015
2591
  labels: Array<LabelEntrySchema>;
2016
2592
  };
2017
2593
 
2594
+ export type SetPeerLabelsRequest = {
2595
+ labels: Array<PeerLabelEntrySchema>;
2596
+ };
2597
+
2018
2598
  /**
2019
2599
  * Response body for the setup status endpoint.
2020
2600
  */
@@ -2101,6 +2681,27 @@ export type StaleQuery = {
2101
2681
  limit?: number | null;
2102
2682
  };
2103
2683
 
2684
+ /**
2685
+ * Request body for storage GC.
2686
+ */
2687
+ export type StorageGcRequest = {
2688
+ /**
2689
+ * When true, report what would be deleted without actually deleting.
2690
+ */
2691
+ dry_run?: boolean;
2692
+ };
2693
+
2694
+ /**
2695
+ * Result of a storage GC run.
2696
+ */
2697
+ export type StorageGcResult = {
2698
+ artifacts_removed: number;
2699
+ bytes_freed: number;
2700
+ dry_run: boolean;
2701
+ errors: Array<string>;
2702
+ storage_keys_deleted: number;
2703
+ };
2704
+
2104
2705
  /**
2105
2706
  * A single day's storage metrics snapshot.
2106
2707
  */
@@ -2125,11 +2726,41 @@ export type SuggestResponse = {
2125
2726
  suggestions: Array<string>;
2126
2727
  };
2127
2728
 
2729
+ export type SuppressIssueRequest = {
2730
+ reason: string;
2731
+ };
2732
+
2128
2733
  export type SuppressRequest = {
2129
2734
  service_name: string;
2130
2735
  until: string;
2131
2736
  };
2132
2737
 
2738
+ export type SyncPolicyListResponse = {
2739
+ items: Array<SyncPolicyResponse>;
2740
+ total: number;
2741
+ };
2742
+
2743
+ export type SyncPolicyResponse = {
2744
+ artifact_filter: {
2745
+ [key: string]: unknown;
2746
+ };
2747
+ created_at: string;
2748
+ description: string;
2749
+ enabled: boolean;
2750
+ id: string;
2751
+ name: string;
2752
+ peer_selector: {
2753
+ [key: string]: unknown;
2754
+ };
2755
+ precedence: number;
2756
+ priority: number;
2757
+ replication_mode: string;
2758
+ repo_selector: {
2759
+ [key: string]: unknown;
2760
+ };
2761
+ updated_at: string;
2762
+ };
2763
+
2133
2764
  export type SyncTaskResponse = {
2134
2765
  artifact_id: string;
2135
2766
  artifact_size: number;
@@ -2226,10 +2857,39 @@ export type TicketResponse = {
2226
2857
  ticket: string;
2227
2858
  };
2228
2859
 
2860
+ export type TogglePolicyPayload = {
2861
+ enabled: boolean;
2862
+ };
2863
+
2229
2864
  export type ToggleRequest = {
2230
2865
  enabled: boolean;
2231
2866
  };
2232
2867
 
2868
+ export type TokenInfoResponse = {
2869
+ created_at: string;
2870
+ expires_at?: string | null;
2871
+ id: string;
2872
+ is_expired: boolean;
2873
+ last_used_at?: string | null;
2874
+ name: string;
2875
+ /**
2876
+ * Dynamic repository selector, if configured.
2877
+ */
2878
+ repo_selector?: {
2879
+ [key: string]: unknown;
2880
+ } | null;
2881
+ /**
2882
+ * Explicit repository IDs this token is restricted to (from join table).
2883
+ */
2884
+ repository_ids: Array<string>;
2885
+ scopes: Array<string>;
2886
+ token_prefix: string;
2887
+ };
2888
+
2889
+ export type TokenListResponse = {
2890
+ items: Array<TokenInfoResponse>;
2891
+ };
2892
+
2233
2893
  export type TotpCodeRequest = {
2234
2894
  code: string;
2235
2895
  };
@@ -2282,6 +2942,16 @@ export type TreeResponse = {
2282
2942
  nodes: Array<TreeNodeResponse>;
2283
2943
  };
2284
2944
 
2945
+ export type TriggerChecksRequest = {
2946
+ artifact_id?: string | null;
2947
+ repository_id?: string | null;
2948
+ };
2949
+
2950
+ export type TriggerChecksResponse = {
2951
+ artifacts_queued: number;
2952
+ message: string;
2953
+ };
2954
+
2285
2955
  export type TriggerScanRequest = {
2286
2956
  artifact_id?: string | null;
2287
2957
  repository_id?: string | null;
@@ -2324,6 +2994,23 @@ export type UpdateCveStatusRequest = {
2324
2994
  status: string;
2325
2995
  };
2326
2996
 
2997
+ export type UpdateGateRequest = {
2998
+ action?: string | null;
2999
+ description?: string | null;
3000
+ enforce_on_download?: boolean | null;
3001
+ enforce_on_promotion?: boolean | null;
3002
+ is_enabled?: boolean | null;
3003
+ max_critical_issues?: number | null;
3004
+ max_high_issues?: number | null;
3005
+ max_medium_issues?: number | null;
3006
+ min_health_score?: number | null;
3007
+ min_metadata_score?: number | null;
3008
+ min_quality_score?: number | null;
3009
+ min_security_score?: number | null;
3010
+ name?: string | null;
3011
+ required_checks?: Array<string> | null;
3012
+ };
3013
+
2327
3014
  export type UpdateLdapConfigRequest = {
2328
3015
  admin_group_dn?: string | null;
2329
3016
  bind_dn?: string | null;
@@ -2366,17 +3053,33 @@ export type UpdatePolicyRequest = {
2366
3053
  block_on_fail: boolean;
2367
3054
  block_unscanned: boolean;
2368
3055
  is_enabled: boolean;
3056
+ max_artifact_age_days?: number | null;
2369
3057
  max_severity: string;
3058
+ min_staging_hours?: number | null;
2370
3059
  name: string;
3060
+ require_signature?: boolean;
2371
3061
  };
2372
3062
 
2373
3063
  export type UpdateRepositoryRequest = {
2374
3064
  description?: string | null;
2375
3065
  is_public?: boolean | null;
3066
+ key?: string | null;
2376
3067
  name?: string | null;
2377
3068
  quota_bytes?: number | null;
2378
3069
  };
2379
3070
 
3071
+ export type UpdateRuleRequest = {
3072
+ allowed_licenses?: Array<string> | null;
3073
+ auto_promote?: boolean | null;
3074
+ is_enabled?: boolean | null;
3075
+ max_artifact_age_days?: number | null;
3076
+ max_cve_severity?: string | null;
3077
+ min_health_score?: number | null;
3078
+ min_staging_hours?: number | null;
3079
+ name?: string | null;
3080
+ require_signature?: boolean | null;
3081
+ };
3082
+
2380
3083
  export type UpdateSamlConfigRequest = {
2381
3084
  admin_group?: string | null;
2382
3085
  attribute_mapping?: {
@@ -2394,6 +3097,11 @@ export type UpdateSamlConfigRequest = {
2394
3097
  sso_url?: string | null;
2395
3098
  };
2396
3099
 
3100
+ export type UpdateServiceAccountRequest = {
3101
+ display_name?: string | null;
3102
+ is_active?: boolean | null;
3103
+ };
3104
+
2397
3105
  export type UpdateSigningConfigPayload = {
2398
3106
  require_signatures?: boolean | null;
2399
3107
  sign_metadata?: boolean | null;
@@ -2401,6 +3109,24 @@ export type UpdateSigningConfigPayload = {
2401
3109
  signing_key_id?: string | null;
2402
3110
  };
2403
3111
 
3112
+ export type UpdateSyncPolicyPayload = {
3113
+ artifact_filter?: {
3114
+ [key: string]: unknown;
3115
+ };
3116
+ description?: string | null;
3117
+ enabled?: boolean | null;
3118
+ name?: string | null;
3119
+ peer_selector?: {
3120
+ [key: string]: unknown;
3121
+ };
3122
+ precedence?: number | null;
3123
+ priority?: number | null;
3124
+ replication_mode?: string | null;
3125
+ repo_selector?: {
3126
+ [key: string]: unknown;
3127
+ };
3128
+ };
3129
+
2404
3130
  export type UpdateUserRequest = {
2405
3131
  display_name?: string | null;
2406
3132
  email?: string | null;
@@ -2435,7 +3161,7 @@ export type UpsertScanConfigRequest = {
2435
3161
  };
2436
3162
 
2437
3163
  export type UserListResponse = {
2438
- items: Array<UserResponse>;
3164
+ items: Array<AdminUserResponse>;
2439
3165
  pagination: Pagination;
2440
3166
  };
2441
3167
 
@@ -3814,6 +4540,22 @@ export type GetSystemStatsResponses = {
3814
4540
 
3815
4541
  export type GetSystemStatsResponse = GetSystemStatsResponses[keyof GetSystemStatsResponses];
3816
4542
 
4543
+ export type RunStorageGcData = {
4544
+ body: StorageGcRequest;
4545
+ path?: never;
4546
+ query?: never;
4547
+ url: '/api/v1/admin/storage-gc';
4548
+ };
4549
+
4550
+ export type RunStorageGcResponses = {
4551
+ /**
4552
+ * GC result
4553
+ */
4554
+ 200: StorageGcResult;
4555
+ };
4556
+
4557
+ export type RunStorageGcResponse = RunStorageGcResponses[keyof RunStorageGcResponses];
4558
+
3817
4559
  export type ListCrashesData = {
3818
4560
  body?: never;
3819
4561
  path?: never;
@@ -3937,102 +4679,423 @@ export type UpdateTelemetrySettingsResponses = {
3937
4679
 
3938
4680
  export type UpdateTelemetrySettingsResponse = UpdateTelemetrySettingsResponses[keyof UpdateTelemetrySettingsResponses];
3939
4681
 
3940
- export type GetArtifactData = {
4682
+ export type ListApprovalHistoryData = {
3941
4683
  body?: never;
3942
- path: {
4684
+ path?: never;
4685
+ query?: {
3943
4686
  /**
3944
- * Artifact ID
4687
+ * Page number (1-indexed)
3945
4688
  */
3946
- id: string;
4689
+ page?: number;
4690
+ /**
4691
+ * Items per page (max 100)
4692
+ */
4693
+ per_page?: number;
4694
+ /**
4695
+ * Filter by status (pending, approved, rejected)
4696
+ */
4697
+ status?: string;
4698
+ /**
4699
+ * Filter by source repository key
4700
+ */
4701
+ source_repository?: string;
4702
+ };
4703
+ url: '/api/v1/approval/history';
4704
+ };
4705
+
4706
+ export type ListApprovalHistoryResponses = {
4707
+ /**
4708
+ * Approval history
4709
+ */
4710
+ 200: ApprovalListResponse;
4711
+ };
4712
+
4713
+ export type ListApprovalHistoryResponse = ListApprovalHistoryResponses[keyof ListApprovalHistoryResponses];
4714
+
4715
+ export type ListPendingApprovalsData = {
4716
+ body?: never;
4717
+ path?: never;
4718
+ query?: {
4719
+ /**
4720
+ * Page number (1-indexed)
4721
+ */
4722
+ page?: number;
4723
+ /**
4724
+ * Items per page (max 100)
4725
+ */
4726
+ per_page?: number;
4727
+ /**
4728
+ * Filter by source repository key
4729
+ */
4730
+ source_repository?: string;
3947
4731
  };
4732
+ url: '/api/v1/approval/pending';
4733
+ };
4734
+
4735
+ export type ListPendingApprovalsResponses = {
4736
+ /**
4737
+ * Pending approval requests
4738
+ */
4739
+ 200: ApprovalListResponse;
4740
+ };
4741
+
4742
+ export type ListPendingApprovalsResponse = ListPendingApprovalsResponses[keyof ListPendingApprovalsResponses];
4743
+
4744
+ export type RequestApprovalData = {
4745
+ body: ApprovalRequest;
4746
+ path?: never;
3948
4747
  query?: never;
3949
- url: '/api/v1/artifacts/{id}';
4748
+ url: '/api/v1/approval/request';
3950
4749
  };
3951
4750
 
3952
- export type GetArtifactErrors = {
4751
+ export type RequestApprovalErrors = {
3953
4752
  /**
3954
- * Artifact not found
4753
+ * Artifact or repository not found
3955
4754
  */
3956
4755
  404: ErrorResponse;
4756
+ /**
4757
+ * Pending approval already exists
4758
+ */
4759
+ 409: ErrorResponse;
4760
+ /**
4761
+ * Validation error
4762
+ */
4763
+ 422: ErrorResponse;
3957
4764
  };
3958
4765
 
3959
- export type GetArtifactError = GetArtifactErrors[keyof GetArtifactErrors];
4766
+ export type RequestApprovalError = RequestApprovalErrors[keyof RequestApprovalErrors];
3960
4767
 
3961
- export type GetArtifactResponses = {
4768
+ export type RequestApprovalResponses = {
3962
4769
  /**
3963
- * Artifact details
4770
+ * Approval request created
3964
4771
  */
3965
- 200: ArtifactResponse;
4772
+ 201: ApprovalResponse;
3966
4773
  };
3967
4774
 
3968
- export type GetArtifactResponse = GetArtifactResponses[keyof GetArtifactResponses];
4775
+ export type RequestApprovalResponse = RequestApprovalResponses[keyof RequestApprovalResponses];
3969
4776
 
3970
- export type GetArtifactMetadataData = {
4777
+ export type GetApprovalData = {
3971
4778
  body?: never;
3972
4779
  path: {
3973
4780
  /**
3974
- * Artifact ID
4781
+ * Approval request ID
3975
4782
  */
3976
4783
  id: string;
3977
4784
  };
3978
4785
  query?: never;
3979
- url: '/api/v1/artifacts/{id}/metadata';
4786
+ url: '/api/v1/approval/{id}';
3980
4787
  };
3981
4788
 
3982
- export type GetArtifactMetadataErrors = {
4789
+ export type GetApprovalErrors = {
3983
4790
  /**
3984
- * Artifact or metadata not found
4791
+ * Approval request not found
3985
4792
  */
3986
4793
  404: ErrorResponse;
3987
4794
  };
3988
4795
 
3989
- export type GetArtifactMetadataError = GetArtifactMetadataErrors[keyof GetArtifactMetadataErrors];
4796
+ export type GetApprovalError = GetApprovalErrors[keyof GetApprovalErrors];
3990
4797
 
3991
- export type GetArtifactMetadataResponses = {
4798
+ export type GetApprovalResponses = {
3992
4799
  /**
3993
- * Artifact metadata
4800
+ * Approval request details
3994
4801
  */
3995
- 200: ArtifactMetadataResponse;
4802
+ 200: ApprovalResponse;
3996
4803
  };
3997
4804
 
3998
- export type GetArtifactMetadataResponse = GetArtifactMetadataResponses[keyof GetArtifactMetadataResponses];
4805
+ export type GetApprovalResponse = GetApprovalResponses[keyof GetApprovalResponses];
3999
4806
 
4000
- export type GetArtifactStatsData = {
4001
- body?: never;
4807
+ export type ApprovePromotionData = {
4808
+ body: ReviewRequest;
4002
4809
  path: {
4003
4810
  /**
4004
- * Artifact ID
4811
+ * Approval request ID
4005
4812
  */
4006
4813
  id: string;
4007
4814
  };
4008
4815
  query?: never;
4009
- url: '/api/v1/artifacts/{id}/stats';
4816
+ url: '/api/v1/approval/{id}/approve';
4010
4817
  };
4011
4818
 
4012
- export type GetArtifactStatsErrors = {
4819
+ export type ApprovePromotionErrors = {
4013
4820
  /**
4014
- * Artifact not found
4821
+ * Admin access required
4822
+ */
4823
+ 403: ErrorResponse;
4824
+ /**
4825
+ * Approval request not found
4015
4826
  */
4016
4827
  404: ErrorResponse;
4828
+ /**
4829
+ * Approval already reviewed
4830
+ */
4831
+ 409: ErrorResponse;
4017
4832
  };
4018
4833
 
4019
- export type GetArtifactStatsError = GetArtifactStatsErrors[keyof GetArtifactStatsErrors];
4834
+ export type ApprovePromotionError = ApprovePromotionErrors[keyof ApprovePromotionErrors];
4020
4835
 
4021
- export type GetArtifactStatsResponses = {
4836
+ export type ApprovePromotionResponses = {
4022
4837
  /**
4023
- * Artifact download statistics
4838
+ * Promotion approved and executed
4024
4839
  */
4025
- 200: ArtifactStatsResponse;
4840
+ 200: ApprovalResponse;
4026
4841
  };
4027
4842
 
4028
- export type GetArtifactStatsResponse = GetArtifactStatsResponses[keyof GetArtifactStatsResponses];
4843
+ export type ApprovePromotionResponse = ApprovePromotionResponses[keyof ApprovePromotionResponses];
4029
4844
 
4030
- export type LoginData = {
4031
- body: LoginRequest;
4032
- path?: never;
4033
- query?: never;
4034
- url: '/api/v1/auth/login';
4035
- };
4845
+ export type RejectPromotionData = {
4846
+ body: ReviewRequest;
4847
+ path: {
4848
+ /**
4849
+ * Approval request ID
4850
+ */
4851
+ id: string;
4852
+ };
4853
+ query?: never;
4854
+ url: '/api/v1/approval/{id}/reject';
4855
+ };
4856
+
4857
+ export type RejectPromotionErrors = {
4858
+ /**
4859
+ * Admin access required
4860
+ */
4861
+ 403: ErrorResponse;
4862
+ /**
4863
+ * Approval request not found
4864
+ */
4865
+ 404: ErrorResponse;
4866
+ /**
4867
+ * Approval already reviewed
4868
+ */
4869
+ 409: ErrorResponse;
4870
+ };
4871
+
4872
+ export type RejectPromotionError = RejectPromotionErrors[keyof RejectPromotionErrors];
4873
+
4874
+ export type RejectPromotionResponses = {
4875
+ /**
4876
+ * Promotion rejected
4877
+ */
4878
+ 200: ApprovalResponse;
4879
+ };
4880
+
4881
+ export type RejectPromotionResponse = RejectPromotionResponses[keyof RejectPromotionResponses];
4882
+
4883
+ export type GetArtifactData = {
4884
+ body?: never;
4885
+ path: {
4886
+ /**
4887
+ * Artifact ID
4888
+ */
4889
+ id: string;
4890
+ };
4891
+ query?: never;
4892
+ url: '/api/v1/artifacts/{id}';
4893
+ };
4894
+
4895
+ export type GetArtifactErrors = {
4896
+ /**
4897
+ * Artifact not found
4898
+ */
4899
+ 404: ErrorResponse;
4900
+ };
4901
+
4902
+ export type GetArtifactError = GetArtifactErrors[keyof GetArtifactErrors];
4903
+
4904
+ export type GetArtifactResponses = {
4905
+ /**
4906
+ * Artifact details
4907
+ */
4908
+ 200: ArtifactResponse;
4909
+ };
4910
+
4911
+ export type GetArtifactResponse = GetArtifactResponses[keyof GetArtifactResponses];
4912
+
4913
+ export type ListArtifactLabelsData = {
4914
+ body?: never;
4915
+ path: {
4916
+ /**
4917
+ * Artifact ID
4918
+ */
4919
+ id: string;
4920
+ };
4921
+ query?: never;
4922
+ url: '/api/v1/artifacts/{id}/labels';
4923
+ };
4924
+
4925
+ export type ListArtifactLabelsErrors = {
4926
+ /**
4927
+ * Artifact not found
4928
+ */
4929
+ 404: unknown;
4930
+ };
4931
+
4932
+ export type ListArtifactLabelsResponses = {
4933
+ /**
4934
+ * Labels retrieved
4935
+ */
4936
+ 200: ArtifactLabelsListResponse;
4937
+ };
4938
+
4939
+ export type ListArtifactLabelsResponse = ListArtifactLabelsResponses[keyof ListArtifactLabelsResponses];
4940
+
4941
+ export type SetArtifactLabelsData = {
4942
+ body: SetArtifactLabelsRequest;
4943
+ path: {
4944
+ /**
4945
+ * Artifact ID
4946
+ */
4947
+ id: string;
4948
+ };
4949
+ query?: never;
4950
+ url: '/api/v1/artifacts/{id}/labels';
4951
+ };
4952
+
4953
+ export type SetArtifactLabelsErrors = {
4954
+ /**
4955
+ * Artifact not found
4956
+ */
4957
+ 404: unknown;
4958
+ };
4959
+
4960
+ export type SetArtifactLabelsResponses = {
4961
+ /**
4962
+ * Labels updated
4963
+ */
4964
+ 200: ArtifactLabelsListResponse;
4965
+ };
4966
+
4967
+ export type SetArtifactLabelsResponse = SetArtifactLabelsResponses[keyof SetArtifactLabelsResponses];
4968
+
4969
+ export type DeleteArtifactLabelData = {
4970
+ body?: never;
4971
+ path: {
4972
+ /**
4973
+ * Artifact ID
4974
+ */
4975
+ id: string;
4976
+ /**
4977
+ * Label key to remove
4978
+ */
4979
+ label_key: string;
4980
+ };
4981
+ query?: never;
4982
+ url: '/api/v1/artifacts/{id}/labels/{label_key}';
4983
+ };
4984
+
4985
+ export type DeleteArtifactLabelErrors = {
4986
+ /**
4987
+ * Artifact not found
4988
+ */
4989
+ 404: unknown;
4990
+ };
4991
+
4992
+ export type DeleteArtifactLabelResponses = {
4993
+ /**
4994
+ * Label removed
4995
+ */
4996
+ 204: void;
4997
+ };
4998
+
4999
+ export type DeleteArtifactLabelResponse = DeleteArtifactLabelResponses[keyof DeleteArtifactLabelResponses];
5000
+
5001
+ export type AddArtifactLabelData = {
5002
+ body: AddArtifactLabelRequest;
5003
+ path: {
5004
+ /**
5005
+ * Artifact ID
5006
+ */
5007
+ id: string;
5008
+ /**
5009
+ * Label key to set
5010
+ */
5011
+ label_key: string;
5012
+ };
5013
+ query?: never;
5014
+ url: '/api/v1/artifacts/{id}/labels/{label_key}';
5015
+ };
5016
+
5017
+ export type AddArtifactLabelErrors = {
5018
+ /**
5019
+ * Artifact not found
5020
+ */
5021
+ 404: unknown;
5022
+ };
5023
+
5024
+ export type AddArtifactLabelResponses = {
5025
+ /**
5026
+ * Label added/updated
5027
+ */
5028
+ 200: ArtifactLabelResponse;
5029
+ };
5030
+
5031
+ export type AddArtifactLabelResponse = AddArtifactLabelResponses[keyof AddArtifactLabelResponses];
5032
+
5033
+ export type GetArtifactMetadataData = {
5034
+ body?: never;
5035
+ path: {
5036
+ /**
5037
+ * Artifact ID
5038
+ */
5039
+ id: string;
5040
+ };
5041
+ query?: never;
5042
+ url: '/api/v1/artifacts/{id}/metadata';
5043
+ };
5044
+
5045
+ export type GetArtifactMetadataErrors = {
5046
+ /**
5047
+ * Artifact or metadata not found
5048
+ */
5049
+ 404: ErrorResponse;
5050
+ };
5051
+
5052
+ export type GetArtifactMetadataError = GetArtifactMetadataErrors[keyof GetArtifactMetadataErrors];
5053
+
5054
+ export type GetArtifactMetadataResponses = {
5055
+ /**
5056
+ * Artifact metadata
5057
+ */
5058
+ 200: ArtifactMetadataResponse;
5059
+ };
5060
+
5061
+ export type GetArtifactMetadataResponse = GetArtifactMetadataResponses[keyof GetArtifactMetadataResponses];
5062
+
5063
+ export type GetArtifactStatsData = {
5064
+ body?: never;
5065
+ path: {
5066
+ /**
5067
+ * Artifact ID
5068
+ */
5069
+ id: string;
5070
+ };
5071
+ query?: never;
5072
+ url: '/api/v1/artifacts/{id}/stats';
5073
+ };
5074
+
5075
+ export type GetArtifactStatsErrors = {
5076
+ /**
5077
+ * Artifact not found
5078
+ */
5079
+ 404: ErrorResponse;
5080
+ };
5081
+
5082
+ export type GetArtifactStatsError = GetArtifactStatsErrors[keyof GetArtifactStatsErrors];
5083
+
5084
+ export type GetArtifactStatsResponses = {
5085
+ /**
5086
+ * Artifact download statistics
5087
+ */
5088
+ 200: ArtifactStatsResponse;
5089
+ };
5090
+
5091
+ export type GetArtifactStatsResponse = GetArtifactStatsResponses[keyof GetArtifactStatsResponses];
5092
+
5093
+ export type LoginData = {
5094
+ body: LoginRequest;
5095
+ path?: never;
5096
+ query?: never;
5097
+ url: '/api/v1/auth/login';
5098
+ };
4036
5099
 
4037
5100
  export type LoginErrors = {
4038
5101
  /**
@@ -6358,8 +7421,8 @@ export type HeartbeatResponses = {
6358
7421
  200: unknown;
6359
7422
  };
6360
7423
 
6361
- export type UpdateNetworkProfileData = {
6362
- body: NetworkProfileBody;
7424
+ export type ListLabelsData = {
7425
+ body?: never;
6363
7426
  path: {
6364
7427
  /**
6365
7428
  * Peer instance ID
@@ -6367,18 +7430,27 @@ export type UpdateNetworkProfileData = {
6367
7430
  id: string;
6368
7431
  };
6369
7432
  query?: never;
6370
- url: '/api/v1/peers/{id}/network-profile';
7433
+ url: '/api/v1/peers/{id}/labels';
6371
7434
  };
6372
7435
 
6373
- export type UpdateNetworkProfileResponses = {
7436
+ export type ListLabelsErrors = {
6374
7437
  /**
6375
- * Network profile updated
7438
+ * Peer instance not found
6376
7439
  */
6377
- 200: unknown;
7440
+ 404: unknown;
6378
7441
  };
6379
7442
 
6380
- export type GetAssignedReposData = {
6381
- body?: never;
7443
+ export type ListLabelsResponses = {
7444
+ /**
7445
+ * Labels retrieved
7446
+ */
7447
+ 200: PeerLabelsListResponse;
7448
+ };
7449
+
7450
+ export type ListLabelsResponse = ListLabelsResponses[keyof ListLabelsResponses];
7451
+
7452
+ export type SetLabelsData = {
7453
+ body: SetPeerLabelsRequest;
6382
7454
  path: {
6383
7455
  /**
6384
7456
  * Peer instance ID
@@ -6386,37 +7458,148 @@ export type GetAssignedReposData = {
6386
7458
  id: string;
6387
7459
  };
6388
7460
  query?: never;
6389
- url: '/api/v1/peers/{id}/repositories';
7461
+ url: '/api/v1/peers/{id}/labels';
6390
7462
  };
6391
7463
 
6392
- export type GetAssignedReposErrors = {
7464
+ export type SetLabelsErrors = {
6393
7465
  /**
6394
7466
  * Peer instance not found
6395
7467
  */
6396
7468
  404: unknown;
6397
- /**
6398
- * Internal server error
6399
- */
6400
- 500: unknown;
6401
7469
  };
6402
7470
 
6403
- export type GetAssignedReposResponses = {
7471
+ export type SetLabelsResponses = {
6404
7472
  /**
6405
- * List of assigned repository IDs
7473
+ * Labels updated
6406
7474
  */
6407
- 200: Array<string>;
7475
+ 200: PeerLabelsListResponse;
6408
7476
  };
6409
7477
 
6410
- export type GetAssignedReposResponse = GetAssignedReposResponses[keyof GetAssignedReposResponses];
7478
+ export type SetLabelsResponse = SetLabelsResponses[keyof SetLabelsResponses];
6411
7479
 
6412
- export type AssignRepoData = {
6413
- body: AssignRepoRequest;
7480
+ export type DeleteLabelData = {
7481
+ body?: never;
6414
7482
  path: {
6415
7483
  /**
6416
7484
  * Peer instance ID
6417
7485
  */
6418
7486
  id: string;
6419
- };
7487
+ /**
7488
+ * Label key to remove
7489
+ */
7490
+ label_key: string;
7491
+ };
7492
+ query?: never;
7493
+ url: '/api/v1/peers/{id}/labels/{label_key}';
7494
+ };
7495
+
7496
+ export type DeleteLabelErrors = {
7497
+ /**
7498
+ * Peer instance or label not found
7499
+ */
7500
+ 404: unknown;
7501
+ };
7502
+
7503
+ export type DeleteLabelResponses = {
7504
+ /**
7505
+ * Label removed
7506
+ */
7507
+ 204: void;
7508
+ };
7509
+
7510
+ export type DeleteLabelResponse = DeleteLabelResponses[keyof DeleteLabelResponses];
7511
+
7512
+ export type AddLabelData = {
7513
+ body: AddPeerLabelRequest;
7514
+ path: {
7515
+ /**
7516
+ * Peer instance ID
7517
+ */
7518
+ id: string;
7519
+ /**
7520
+ * Label key to set
7521
+ */
7522
+ label_key: string;
7523
+ };
7524
+ query?: never;
7525
+ url: '/api/v1/peers/{id}/labels/{label_key}';
7526
+ };
7527
+
7528
+ export type AddLabelErrors = {
7529
+ /**
7530
+ * Peer instance not found
7531
+ */
7532
+ 404: unknown;
7533
+ };
7534
+
7535
+ export type AddLabelResponses = {
7536
+ /**
7537
+ * Label added/updated
7538
+ */
7539
+ 200: PeerLabelResponse;
7540
+ };
7541
+
7542
+ export type AddLabelResponse = AddLabelResponses[keyof AddLabelResponses];
7543
+
7544
+ export type UpdateNetworkProfileData = {
7545
+ body: NetworkProfileBody;
7546
+ path: {
7547
+ /**
7548
+ * Peer instance ID
7549
+ */
7550
+ id: string;
7551
+ };
7552
+ query?: never;
7553
+ url: '/api/v1/peers/{id}/network-profile';
7554
+ };
7555
+
7556
+ export type UpdateNetworkProfileResponses = {
7557
+ /**
7558
+ * Network profile updated
7559
+ */
7560
+ 200: unknown;
7561
+ };
7562
+
7563
+ export type GetAssignedReposData = {
7564
+ body?: never;
7565
+ path: {
7566
+ /**
7567
+ * Peer instance ID
7568
+ */
7569
+ id: string;
7570
+ };
7571
+ query?: never;
7572
+ url: '/api/v1/peers/{id}/repositories';
7573
+ };
7574
+
7575
+ export type GetAssignedReposErrors = {
7576
+ /**
7577
+ * Peer instance not found
7578
+ */
7579
+ 404: unknown;
7580
+ /**
7581
+ * Internal server error
7582
+ */
7583
+ 500: unknown;
7584
+ };
7585
+
7586
+ export type GetAssignedReposResponses = {
7587
+ /**
7588
+ * List of assigned repository IDs
7589
+ */
7590
+ 200: Array<string>;
7591
+ };
7592
+
7593
+ export type GetAssignedReposResponse = GetAssignedReposResponses[keyof GetAssignedReposResponses];
7594
+
7595
+ export type AssignRepoData = {
7596
+ body: AssignRepoRequest;
7597
+ path: {
7598
+ /**
7599
+ * Peer instance ID
7600
+ */
7601
+ id: string;
7602
+ };
6420
7603
  query?: never;
6421
7604
  url: '/api/v1/peers/{id}/repositories';
6422
7605
  };
@@ -7209,6 +8392,178 @@ export type ReloadPluginResponses = {
7209
8392
 
7210
8393
  export type ReloadPluginResponse = ReloadPluginResponses[keyof ReloadPluginResponses];
7211
8394
 
8395
+ export type ListRulesData = {
8396
+ body?: never;
8397
+ path?: never;
8398
+ query?: {
8399
+ source_repo_id?: string | null;
8400
+ };
8401
+ url: '/api/v1/promotion-rules';
8402
+ };
8403
+
8404
+ export type ListRulesErrors = {
8405
+ /**
8406
+ * Internal server error
8407
+ */
8408
+ 500: unknown;
8409
+ };
8410
+
8411
+ export type ListRulesResponses = {
8412
+ /**
8413
+ * List of promotion rules
8414
+ */
8415
+ 200: PromotionRuleListResponse;
8416
+ };
8417
+
8418
+ export type ListRulesResponse = ListRulesResponses[keyof ListRulesResponses];
8419
+
8420
+ export type CreateRuleData = {
8421
+ body: CreateRuleRequest;
8422
+ path?: never;
8423
+ query?: never;
8424
+ url: '/api/v1/promotion-rules';
8425
+ };
8426
+
8427
+ export type CreateRuleErrors = {
8428
+ /**
8429
+ * Validation error
8430
+ */
8431
+ 400: ErrorResponse;
8432
+ /**
8433
+ * Internal server error
8434
+ */
8435
+ 500: unknown;
8436
+ };
8437
+
8438
+ export type CreateRuleError = CreateRuleErrors[keyof CreateRuleErrors];
8439
+
8440
+ export type CreateRuleResponses = {
8441
+ /**
8442
+ * Promotion rule created
8443
+ */
8444
+ 200: PromotionRuleResponse;
8445
+ };
8446
+
8447
+ export type CreateRuleResponse = CreateRuleResponses[keyof CreateRuleResponses];
8448
+
8449
+ export type DeleteRuleData = {
8450
+ body?: never;
8451
+ path: {
8452
+ /**
8453
+ * Promotion rule ID
8454
+ */
8455
+ id: string;
8456
+ };
8457
+ query?: never;
8458
+ url: '/api/v1/promotion-rules/{id}';
8459
+ };
8460
+
8461
+ export type DeleteRuleErrors = {
8462
+ /**
8463
+ * Rule not found
8464
+ */
8465
+ 404: ErrorResponse;
8466
+ };
8467
+
8468
+ export type DeleteRuleError = DeleteRuleErrors[keyof DeleteRuleErrors];
8469
+
8470
+ export type DeleteRuleResponses = {
8471
+ /**
8472
+ * Promotion rule deleted
8473
+ */
8474
+ 200: unknown;
8475
+ };
8476
+
8477
+ export type GetRuleData = {
8478
+ body?: never;
8479
+ path: {
8480
+ /**
8481
+ * Promotion rule ID
8482
+ */
8483
+ id: string;
8484
+ };
8485
+ query?: never;
8486
+ url: '/api/v1/promotion-rules/{id}';
8487
+ };
8488
+
8489
+ export type GetRuleErrors = {
8490
+ /**
8491
+ * Rule not found
8492
+ */
8493
+ 404: ErrorResponse;
8494
+ };
8495
+
8496
+ export type GetRuleError = GetRuleErrors[keyof GetRuleErrors];
8497
+
8498
+ export type GetRuleResponses = {
8499
+ /**
8500
+ * Promotion rule details
8501
+ */
8502
+ 200: PromotionRuleResponse;
8503
+ };
8504
+
8505
+ export type GetRuleResponse = GetRuleResponses[keyof GetRuleResponses];
8506
+
8507
+ export type UpdateRuleData = {
8508
+ body: UpdateRuleRequest;
8509
+ path: {
8510
+ /**
8511
+ * Promotion rule ID
8512
+ */
8513
+ id: string;
8514
+ };
8515
+ query?: never;
8516
+ url: '/api/v1/promotion-rules/{id}';
8517
+ };
8518
+
8519
+ export type UpdateRuleErrors = {
8520
+ /**
8521
+ * Rule not found
8522
+ */
8523
+ 404: ErrorResponse;
8524
+ };
8525
+
8526
+ export type UpdateRuleError = UpdateRuleErrors[keyof UpdateRuleErrors];
8527
+
8528
+ export type UpdateRuleResponses = {
8529
+ /**
8530
+ * Promotion rule updated
8531
+ */
8532
+ 200: PromotionRuleResponse;
8533
+ };
8534
+
8535
+ export type UpdateRuleResponse = UpdateRuleResponses[keyof UpdateRuleResponses];
8536
+
8537
+ export type EvaluateRuleData = {
8538
+ body?: never;
8539
+ path: {
8540
+ /**
8541
+ * Promotion rule ID to evaluate
8542
+ */
8543
+ id: string;
8544
+ };
8545
+ query?: never;
8546
+ url: '/api/v1/promotion-rules/{id}/evaluate';
8547
+ };
8548
+
8549
+ export type EvaluateRuleErrors = {
8550
+ /**
8551
+ * Rule not found
8552
+ */
8553
+ 404: ErrorResponse;
8554
+ };
8555
+
8556
+ export type EvaluateRuleError = EvaluateRuleErrors[keyof EvaluateRuleErrors];
8557
+
8558
+ export type EvaluateRuleResponses = {
8559
+ /**
8560
+ * Evaluation results
8561
+ */
8562
+ 200: BulkEvaluationResponse;
8563
+ };
8564
+
8565
+ export type EvaluateRuleResponse = EvaluateRuleResponses[keyof EvaluateRuleResponses];
8566
+
7212
8567
  export type PromoteArtifactData = {
7213
8568
  body: PromoteArtifactRequest;
7214
8569
  path: {
@@ -7251,82 +8606,529 @@ export type PromoteArtifactResponses = {
7251
8606
 
7252
8607
  export type PromoteArtifactResponse = PromoteArtifactResponses[keyof PromoteArtifactResponses];
7253
8608
 
8609
+ export type RejectArtifactData = {
8610
+ body: RejectArtifactRequest;
8611
+ path: {
8612
+ /**
8613
+ * Source repository key
8614
+ */
8615
+ key: string;
8616
+ /**
8617
+ * Artifact ID to reject
8618
+ */
8619
+ artifact_id: string;
8620
+ };
8621
+ query?: never;
8622
+ url: '/api/v1/promotion/repositories/{key}/artifacts/{artifact_id}/reject';
8623
+ };
8624
+
8625
+ export type RejectArtifactErrors = {
8626
+ /**
8627
+ * Artifact or repository not found
8628
+ */
8629
+ 404: ErrorResponse;
8630
+ /**
8631
+ * Validation error
8632
+ */
8633
+ 422: ErrorResponse;
8634
+ };
8635
+
8636
+ export type RejectArtifactError = RejectArtifactErrors[keyof RejectArtifactErrors];
8637
+
8638
+ export type RejectArtifactResponses = {
8639
+ /**
8640
+ * Artifact rejection result
8641
+ */
8642
+ 200: RejectionResponse;
8643
+ };
8644
+
8645
+ export type RejectArtifactResponse = RejectArtifactResponses[keyof RejectArtifactResponses];
8646
+
7254
8647
  export type PromoteArtifactsBulkData = {
7255
8648
  body: BulkPromoteRequest;
7256
8649
  path: {
7257
8650
  /**
7258
- * Source repository key
8651
+ * Source repository key
8652
+ */
8653
+ key: string;
8654
+ };
8655
+ query?: never;
8656
+ url: '/api/v1/promotion/repositories/{key}/promote';
8657
+ };
8658
+
8659
+ export type PromoteArtifactsBulkErrors = {
8660
+ /**
8661
+ * Repository not found
8662
+ */
8663
+ 404: ErrorResponse;
8664
+ /**
8665
+ * Validation error (repo type/format mismatch)
8666
+ */
8667
+ 422: ErrorResponse;
8668
+ };
8669
+
8670
+ export type PromoteArtifactsBulkError = PromoteArtifactsBulkErrors[keyof PromoteArtifactsBulkErrors];
8671
+
8672
+ export type PromoteArtifactsBulkResponses = {
8673
+ /**
8674
+ * Bulk promotion results
8675
+ */
8676
+ 200: BulkPromotionResponse;
8677
+ };
8678
+
8679
+ export type PromoteArtifactsBulkResponse = PromoteArtifactsBulkResponses[keyof PromoteArtifactsBulkResponses];
8680
+
8681
+ export type PromotionHistoryData = {
8682
+ body?: never;
8683
+ path: {
8684
+ /**
8685
+ * Repository key
8686
+ */
8687
+ key: string;
8688
+ };
8689
+ query?: {
8690
+ /**
8691
+ * Page number (1-indexed)
8692
+ */
8693
+ page?: number;
8694
+ /**
8695
+ * Items per page (max 100)
8696
+ */
8697
+ per_page?: number;
8698
+ /**
8699
+ * Filter by artifact ID
8700
+ */
8701
+ artifact_id?: string;
8702
+ /**
8703
+ * Filter by status (promoted, rejected, pending_approval)
8704
+ */
8705
+ status?: string;
8706
+ };
8707
+ url: '/api/v1/promotion/repositories/{key}/promotion-history';
8708
+ };
8709
+
8710
+ export type PromotionHistoryErrors = {
8711
+ /**
8712
+ * Repository not found
8713
+ */
8714
+ 404: ErrorResponse;
8715
+ };
8716
+
8717
+ export type PromotionHistoryError = PromotionHistoryErrors[keyof PromotionHistoryErrors];
8718
+
8719
+ export type PromotionHistoryResponses = {
8720
+ /**
8721
+ * Promotion history for repository
8722
+ */
8723
+ 200: PromotionHistoryResponse;
8724
+ };
8725
+
8726
+ export type PromotionHistoryResponse2 = PromotionHistoryResponses[keyof PromotionHistoryResponses];
8727
+
8728
+ export type ListChecksData = {
8729
+ body?: never;
8730
+ path?: never;
8731
+ query?: {
8732
+ artifact_id?: string | null;
8733
+ repository_id?: string | null;
8734
+ };
8735
+ url: '/api/v1/quality/checks';
8736
+ };
8737
+
8738
+ export type ListChecksResponses = {
8739
+ /**
8740
+ * List of quality check results
8741
+ */
8742
+ 200: Array<CheckResponse>;
8743
+ };
8744
+
8745
+ export type ListChecksResponse = ListChecksResponses[keyof ListChecksResponses];
8746
+
8747
+ export type TriggerChecksData = {
8748
+ body: TriggerChecksRequest;
8749
+ path?: never;
8750
+ query?: never;
8751
+ url: '/api/v1/quality/checks/trigger';
8752
+ };
8753
+
8754
+ export type TriggerChecksErrors = {
8755
+ /**
8756
+ * Validation error
8757
+ */
8758
+ 400: ErrorResponse;
8759
+ };
8760
+
8761
+ export type TriggerChecksError = TriggerChecksErrors[keyof TriggerChecksErrors];
8762
+
8763
+ export type TriggerChecksResponses = {
8764
+ /**
8765
+ * Quality checks triggered
8766
+ */
8767
+ 200: TriggerChecksResponse;
8768
+ };
8769
+
8770
+ export type TriggerChecksResponse2 = TriggerChecksResponses[keyof TriggerChecksResponses];
8771
+
8772
+ export type GetCheckData = {
8773
+ body?: never;
8774
+ path: {
8775
+ /**
8776
+ * Check result ID
8777
+ */
8778
+ id: string;
8779
+ };
8780
+ query?: never;
8781
+ url: '/api/v1/quality/checks/{id}';
8782
+ };
8783
+
8784
+ export type GetCheckErrors = {
8785
+ /**
8786
+ * Check result not found
8787
+ */
8788
+ 404: ErrorResponse;
8789
+ };
8790
+
8791
+ export type GetCheckError = GetCheckErrors[keyof GetCheckErrors];
8792
+
8793
+ export type GetCheckResponses = {
8794
+ /**
8795
+ * Check result details
8796
+ */
8797
+ 200: CheckResponse;
8798
+ };
8799
+
8800
+ export type GetCheckResponse = GetCheckResponses[keyof GetCheckResponses];
8801
+
8802
+ export type ListCheckIssuesData = {
8803
+ body?: never;
8804
+ path: {
8805
+ /**
8806
+ * Check result ID
8807
+ */
8808
+ id: string;
8809
+ };
8810
+ query?: never;
8811
+ url: '/api/v1/quality/checks/{id}/issues';
8812
+ };
8813
+
8814
+ export type ListCheckIssuesErrors = {
8815
+ /**
8816
+ * Check result not found
8817
+ */
8818
+ 404: ErrorResponse;
8819
+ };
8820
+
8821
+ export type ListCheckIssuesError = ListCheckIssuesErrors[keyof ListCheckIssuesErrors];
8822
+
8823
+ export type ListCheckIssuesResponses = {
8824
+ /**
8825
+ * List of issues for a check result
8826
+ */
8827
+ 200: Array<IssueResponse>;
8828
+ };
8829
+
8830
+ export type ListCheckIssuesResponse = ListCheckIssuesResponses[keyof ListCheckIssuesResponses];
8831
+
8832
+ export type ListGatesData = {
8833
+ body?: never;
8834
+ path?: never;
8835
+ query?: never;
8836
+ url: '/api/v1/quality/gates';
8837
+ };
8838
+
8839
+ export type ListGatesResponses = {
8840
+ /**
8841
+ * List of quality gates
8842
+ */
8843
+ 200: Array<GateResponse>;
8844
+ };
8845
+
8846
+ export type ListGatesResponse = ListGatesResponses[keyof ListGatesResponses];
8847
+
8848
+ export type CreateGateData = {
8849
+ body: CreateGateRequest;
8850
+ path?: never;
8851
+ query?: never;
8852
+ url: '/api/v1/quality/gates';
8853
+ };
8854
+
8855
+ export type CreateGateErrors = {
8856
+ /**
8857
+ * Validation error
8858
+ */
8859
+ 422: ErrorResponse;
8860
+ };
8861
+
8862
+ export type CreateGateError = CreateGateErrors[keyof CreateGateErrors];
8863
+
8864
+ export type CreateGateResponses = {
8865
+ /**
8866
+ * Quality gate created
8867
+ */
8868
+ 200: GateResponse;
8869
+ };
8870
+
8871
+ export type CreateGateResponse = CreateGateResponses[keyof CreateGateResponses];
8872
+
8873
+ export type EvaluateGateData = {
8874
+ body?: never;
8875
+ path: {
8876
+ /**
8877
+ * Artifact ID to evaluate
8878
+ */
8879
+ artifact_id: string;
8880
+ };
8881
+ query?: {
8882
+ repository_id?: string | null;
8883
+ };
8884
+ url: '/api/v1/quality/gates/evaluate/{artifact_id}';
8885
+ };
8886
+
8887
+ export type EvaluateGateErrors = {
8888
+ /**
8889
+ * Artifact or gate not found
8890
+ */
8891
+ 404: ErrorResponse;
8892
+ };
8893
+
8894
+ export type EvaluateGateError = EvaluateGateErrors[keyof EvaluateGateErrors];
8895
+
8896
+ export type EvaluateGateResponses = {
8897
+ /**
8898
+ * Gate evaluation result
8899
+ */
8900
+ 200: GateEvaluationResponse;
8901
+ };
8902
+
8903
+ export type EvaluateGateResponse = EvaluateGateResponses[keyof EvaluateGateResponses];
8904
+
8905
+ export type DeleteGateData = {
8906
+ body?: never;
8907
+ path: {
8908
+ /**
8909
+ * Quality gate ID
8910
+ */
8911
+ id: string;
8912
+ };
8913
+ query?: never;
8914
+ url: '/api/v1/quality/gates/{id}';
8915
+ };
8916
+
8917
+ export type DeleteGateErrors = {
8918
+ /**
8919
+ * Quality gate not found
8920
+ */
8921
+ 404: ErrorResponse;
8922
+ };
8923
+
8924
+ export type DeleteGateError = DeleteGateErrors[keyof DeleteGateErrors];
8925
+
8926
+ export type DeleteGateResponses = {
8927
+ /**
8928
+ * Quality gate deleted
8929
+ */
8930
+ 200: {
8931
+ [key: string]: unknown;
8932
+ };
8933
+ };
8934
+
8935
+ export type DeleteGateResponse = DeleteGateResponses[keyof DeleteGateResponses];
8936
+
8937
+ export type GetGateData = {
8938
+ body?: never;
8939
+ path: {
8940
+ /**
8941
+ * Quality gate ID
8942
+ */
8943
+ id: string;
8944
+ };
8945
+ query?: never;
8946
+ url: '/api/v1/quality/gates/{id}';
8947
+ };
8948
+
8949
+ export type GetGateErrors = {
8950
+ /**
8951
+ * Quality gate not found
8952
+ */
8953
+ 404: ErrorResponse;
8954
+ };
8955
+
8956
+ export type GetGateError = GetGateErrors[keyof GetGateErrors];
8957
+
8958
+ export type GetGateResponses = {
8959
+ /**
8960
+ * Quality gate details
8961
+ */
8962
+ 200: GateResponse;
8963
+ };
8964
+
8965
+ export type GetGateResponse = GetGateResponses[keyof GetGateResponses];
8966
+
8967
+ export type UpdateGateData = {
8968
+ body: UpdateGateRequest;
8969
+ path: {
8970
+ /**
8971
+ * Quality gate ID
8972
+ */
8973
+ id: string;
8974
+ };
8975
+ query?: never;
8976
+ url: '/api/v1/quality/gates/{id}';
8977
+ };
8978
+
8979
+ export type UpdateGateErrors = {
8980
+ /**
8981
+ * Quality gate not found
8982
+ */
8983
+ 404: ErrorResponse;
8984
+ };
8985
+
8986
+ export type UpdateGateError = UpdateGateErrors[keyof UpdateGateErrors];
8987
+
8988
+ export type UpdateGateResponses = {
8989
+ /**
8990
+ * Quality gate updated
8991
+ */
8992
+ 200: GateResponse;
8993
+ };
8994
+
8995
+ export type UpdateGateResponse = UpdateGateResponses[keyof UpdateGateResponses];
8996
+
8997
+ export type GetArtifactHealthData = {
8998
+ body?: never;
8999
+ path: {
9000
+ /**
9001
+ * Artifact ID
9002
+ */
9003
+ artifact_id: string;
9004
+ };
9005
+ query?: never;
9006
+ url: '/api/v1/quality/health/artifacts/{artifact_id}';
9007
+ };
9008
+
9009
+ export type GetArtifactHealthErrors = {
9010
+ /**
9011
+ * Artifact not found
9012
+ */
9013
+ 404: ErrorResponse;
9014
+ };
9015
+
9016
+ export type GetArtifactHealthError = GetArtifactHealthErrors[keyof GetArtifactHealthErrors];
9017
+
9018
+ export type GetArtifactHealthResponses = {
9019
+ /**
9020
+ * Artifact health score
9021
+ */
9022
+ 200: ArtifactHealthResponse;
9023
+ };
9024
+
9025
+ export type GetArtifactHealthResponse = GetArtifactHealthResponses[keyof GetArtifactHealthResponses];
9026
+
9027
+ export type GetHealthDashboardData = {
9028
+ body?: never;
9029
+ path?: never;
9030
+ query?: never;
9031
+ url: '/api/v1/quality/health/dashboard';
9032
+ };
9033
+
9034
+ export type GetHealthDashboardResponses = {
9035
+ /**
9036
+ * Health dashboard summary
9037
+ */
9038
+ 200: HealthDashboardResponse;
9039
+ };
9040
+
9041
+ export type GetHealthDashboardResponse = GetHealthDashboardResponses[keyof GetHealthDashboardResponses];
9042
+
9043
+ export type GetRepoHealthData = {
9044
+ body?: never;
9045
+ path: {
9046
+ /**
9047
+ * Repository key
9048
+ */
9049
+ key: string;
9050
+ };
9051
+ query?: never;
9052
+ url: '/api/v1/quality/health/repositories/{key}';
9053
+ };
9054
+
9055
+ export type GetRepoHealthErrors = {
9056
+ /**
9057
+ * Repository not found
9058
+ */
9059
+ 404: ErrorResponse;
9060
+ };
9061
+
9062
+ export type GetRepoHealthError = GetRepoHealthErrors[keyof GetRepoHealthErrors];
9063
+
9064
+ export type GetRepoHealthResponses = {
9065
+ /**
9066
+ * Repository health score
9067
+ */
9068
+ 200: RepoHealthResponse;
9069
+ };
9070
+
9071
+ export type GetRepoHealthResponse = GetRepoHealthResponses[keyof GetRepoHealthResponses];
9072
+
9073
+ export type UnsuppressIssueData = {
9074
+ body?: never;
9075
+ path: {
9076
+ /**
9077
+ * Issue ID
7259
9078
  */
7260
- key: string;
9079
+ id: string;
7261
9080
  };
7262
9081
  query?: never;
7263
- url: '/api/v1/promotion/repositories/{key}/promote';
9082
+ url: '/api/v1/quality/issues/{id}/suppress';
7264
9083
  };
7265
9084
 
7266
- export type PromoteArtifactsBulkErrors = {
9085
+ export type UnsuppressIssueErrors = {
7267
9086
  /**
7268
- * Repository not found
9087
+ * Issue not found
7269
9088
  */
7270
9089
  404: ErrorResponse;
7271
- /**
7272
- * Validation error (repo type/format mismatch)
7273
- */
7274
- 422: ErrorResponse;
7275
9090
  };
7276
9091
 
7277
- export type PromoteArtifactsBulkError = PromoteArtifactsBulkErrors[keyof PromoteArtifactsBulkErrors];
9092
+ export type UnsuppressIssueError = UnsuppressIssueErrors[keyof UnsuppressIssueErrors];
7278
9093
 
7279
- export type PromoteArtifactsBulkResponses = {
9094
+ export type UnsuppressIssueResponses = {
7280
9095
  /**
7281
- * Bulk promotion results
9096
+ * Issue unsuppressed
7282
9097
  */
7283
- 200: BulkPromotionResponse;
9098
+ 200: IssueResponse;
7284
9099
  };
7285
9100
 
7286
- export type PromoteArtifactsBulkResponse = PromoteArtifactsBulkResponses[keyof PromoteArtifactsBulkResponses];
9101
+ export type UnsuppressIssueResponse = UnsuppressIssueResponses[keyof UnsuppressIssueResponses];
7287
9102
 
7288
- export type PromotionHistoryData = {
7289
- body?: never;
9103
+ export type SuppressIssueData = {
9104
+ body: SuppressIssueRequest;
7290
9105
  path: {
7291
9106
  /**
7292
- * Repository key
7293
- */
7294
- key: string;
7295
- };
7296
- query?: {
7297
- /**
7298
- * Page number (1-indexed)
7299
- */
7300
- page?: number;
7301
- /**
7302
- * Items per page (max 100)
7303
- */
7304
- per_page?: number;
7305
- /**
7306
- * Filter by artifact ID
9107
+ * Issue ID
7307
9108
  */
7308
- artifact_id?: string;
9109
+ id: string;
7309
9110
  };
7310
- url: '/api/v1/promotion/repositories/{key}/promotion-history';
9111
+ query?: never;
9112
+ url: '/api/v1/quality/issues/{id}/suppress';
7311
9113
  };
7312
9114
 
7313
- export type PromotionHistoryErrors = {
9115
+ export type SuppressIssueErrors = {
7314
9116
  /**
7315
- * Repository not found
9117
+ * Issue not found
7316
9118
  */
7317
9119
  404: ErrorResponse;
7318
9120
  };
7319
9121
 
7320
- export type PromotionHistoryError = PromotionHistoryErrors[keyof PromotionHistoryErrors];
9122
+ export type SuppressIssueError = SuppressIssueErrors[keyof SuppressIssueErrors];
7321
9123
 
7322
- export type PromotionHistoryResponses = {
9124
+ export type SuppressIssueResponses = {
7323
9125
  /**
7324
- * Promotion history for repository
9126
+ * Issue suppressed
7325
9127
  */
7326
- 200: PromotionHistoryResponse;
9128
+ 200: IssueResponse;
7327
9129
  };
7328
9130
 
7329
- export type PromotionHistoryResponse2 = PromotionHistoryResponses[keyof PromotionHistoryResponses];
9131
+ export type SuppressIssueResponse = SuppressIssueResponses[keyof SuppressIssueResponses];
7330
9132
 
7331
9133
  export type ListRepositoriesData = {
7332
9134
  body?: never;
@@ -7456,6 +9258,10 @@ export type UpdateRepositoryErrors = {
7456
9258
  * Repository not found
7457
9259
  */
7458
9260
  404: unknown;
9261
+ /**
9262
+ * Repository key already exists
9263
+ */
9264
+ 409: unknown;
7459
9265
  };
7460
9266
 
7461
9267
  export type UpdateRepositoryResponses = {
@@ -7634,7 +9440,7 @@ export type DownloadArtifactResponses = {
7634
9440
 
7635
9441
  export type DownloadArtifactResponse = DownloadArtifactResponses[keyof DownloadArtifactResponses];
7636
9442
 
7637
- export type ListLabelsData = {
9443
+ export type ListRepoLabelsData = {
7638
9444
  body?: never;
7639
9445
  path: {
7640
9446
  /**
@@ -7646,23 +9452,23 @@ export type ListLabelsData = {
7646
9452
  url: '/api/v1/repositories/{key}/labels';
7647
9453
  };
7648
9454
 
7649
- export type ListLabelsErrors = {
9455
+ export type ListRepoLabelsErrors = {
7650
9456
  /**
7651
9457
  * Repository not found
7652
9458
  */
7653
9459
  404: unknown;
7654
9460
  };
7655
9461
 
7656
- export type ListLabelsResponses = {
9462
+ export type ListRepoLabelsResponses = {
7657
9463
  /**
7658
9464
  * Labels retrieved
7659
9465
  */
7660
9466
  200: LabelsListResponse;
7661
9467
  };
7662
9468
 
7663
- export type ListLabelsResponse = ListLabelsResponses[keyof ListLabelsResponses];
9469
+ export type ListRepoLabelsResponse = ListRepoLabelsResponses[keyof ListRepoLabelsResponses];
7664
9470
 
7665
- export type SetLabelsData = {
9471
+ export type SetRepoLabelsData = {
7666
9472
  body: SetLabelsRequest;
7667
9473
  path: {
7668
9474
  /**
@@ -7674,23 +9480,23 @@ export type SetLabelsData = {
7674
9480
  url: '/api/v1/repositories/{key}/labels';
7675
9481
  };
7676
9482
 
7677
- export type SetLabelsErrors = {
9483
+ export type SetRepoLabelsErrors = {
7678
9484
  /**
7679
9485
  * Repository not found
7680
9486
  */
7681
9487
  404: unknown;
7682
9488
  };
7683
9489
 
7684
- export type SetLabelsResponses = {
9490
+ export type SetRepoLabelsResponses = {
7685
9491
  /**
7686
9492
  * Labels updated
7687
9493
  */
7688
9494
  200: LabelsListResponse;
7689
9495
  };
7690
9496
 
7691
- export type SetLabelsResponse = SetLabelsResponses[keyof SetLabelsResponses];
9497
+ export type SetRepoLabelsResponse = SetRepoLabelsResponses[keyof SetRepoLabelsResponses];
7692
9498
 
7693
- export type DeleteLabelData = {
9499
+ export type DeleteRepoLabelData = {
7694
9500
  body?: never;
7695
9501
  path: {
7696
9502
  /**
@@ -7706,23 +9512,23 @@ export type DeleteLabelData = {
7706
9512
  url: '/api/v1/repositories/{key}/labels/{label_key}';
7707
9513
  };
7708
9514
 
7709
- export type DeleteLabelErrors = {
9515
+ export type DeleteRepoLabelErrors = {
7710
9516
  /**
7711
9517
  * Repository or label not found
7712
9518
  */
7713
9519
  404: unknown;
7714
9520
  };
7715
9521
 
7716
- export type DeleteLabelResponses = {
9522
+ export type DeleteRepoLabelResponses = {
7717
9523
  /**
7718
9524
  * Label removed
7719
9525
  */
7720
9526
  204: void;
7721
9527
  };
7722
9528
 
7723
- export type DeleteLabelResponse = DeleteLabelResponses[keyof DeleteLabelResponses];
9529
+ export type DeleteRepoLabelResponse = DeleteRepoLabelResponses[keyof DeleteRepoLabelResponses];
7724
9530
 
7725
- export type AddLabelData = {
9531
+ export type AddRepoLabelData = {
7726
9532
  body: AddLabelRequest;
7727
9533
  path: {
7728
9534
  /**
@@ -7738,21 +9544,21 @@ export type AddLabelData = {
7738
9544
  url: '/api/v1/repositories/{key}/labels/{label_key}';
7739
9545
  };
7740
9546
 
7741
- export type AddLabelErrors = {
9547
+ export type AddRepoLabelErrors = {
7742
9548
  /**
7743
9549
  * Repository not found
7744
9550
  */
7745
9551
  404: unknown;
7746
9552
  };
7747
9553
 
7748
- export type AddLabelResponses = {
9554
+ export type AddRepoLabelResponses = {
7749
9555
  /**
7750
9556
  * Label added/updated
7751
9557
  */
7752
9558
  200: LabelResponse;
7753
9559
  };
7754
9560
 
7755
- export type AddLabelResponse = AddLabelResponses[keyof AddLabelResponses];
9561
+ export type AddRepoLabelResponse = AddRepoLabelResponses[keyof AddRepoLabelResponses];
7756
9562
 
7757
9563
  export type ListVirtualMembersData = {
7758
9564
  body?: never;
@@ -8810,108 +10616,357 @@ export type TriggerScanResponses = {
8810
10616
  200: TriggerScanResponse;
8811
10617
  };
8812
10618
 
8813
- export type TriggerScanResponse2 = TriggerScanResponses[keyof TriggerScanResponses];
10619
+ export type TriggerScanResponse2 = TriggerScanResponses[keyof TriggerScanResponses];
10620
+
10621
+ export type ListScansData = {
10622
+ body?: never;
10623
+ path?: never;
10624
+ query?: {
10625
+ repository_id?: string | null;
10626
+ artifact_id?: string | null;
10627
+ status?: string | null;
10628
+ page?: number | null;
10629
+ per_page?: number | null;
10630
+ };
10631
+ url: '/api/v1/security/scans';
10632
+ };
10633
+
10634
+ export type ListScansResponses = {
10635
+ /**
10636
+ * Paginated list of scans
10637
+ */
10638
+ 200: ScanListResponse;
10639
+ };
10640
+
10641
+ export type ListScansResponse = ListScansResponses[keyof ListScansResponses];
10642
+
10643
+ export type GetScanData = {
10644
+ body?: never;
10645
+ path: {
10646
+ /**
10647
+ * Scan result ID
10648
+ */
10649
+ id: string;
10650
+ };
10651
+ query?: never;
10652
+ url: '/api/v1/security/scans/{id}';
10653
+ };
10654
+
10655
+ export type GetScanErrors = {
10656
+ /**
10657
+ * Scan not found
10658
+ */
10659
+ 404: ErrorResponse;
10660
+ };
10661
+
10662
+ export type GetScanError = GetScanErrors[keyof GetScanErrors];
10663
+
10664
+ export type GetScanResponses = {
10665
+ /**
10666
+ * Scan details
10667
+ */
10668
+ 200: ScanResponse;
10669
+ };
10670
+
10671
+ export type GetScanResponse = GetScanResponses[keyof GetScanResponses];
10672
+
10673
+ export type ListFindingsData = {
10674
+ body?: never;
10675
+ path: {
10676
+ /**
10677
+ * Scan result ID
10678
+ */
10679
+ id: string;
10680
+ };
10681
+ query?: {
10682
+ page?: number | null;
10683
+ per_page?: number | null;
10684
+ };
10685
+ url: '/api/v1/security/scans/{id}/findings';
10686
+ };
10687
+
10688
+ export type ListFindingsErrors = {
10689
+ /**
10690
+ * Scan not found
10691
+ */
10692
+ 404: ErrorResponse;
10693
+ };
10694
+
10695
+ export type ListFindingsError = ListFindingsErrors[keyof ListFindingsErrors];
10696
+
10697
+ export type ListFindingsResponses = {
10698
+ /**
10699
+ * Paginated list of findings for a scan
10700
+ */
10701
+ 200: FindingListResponse;
10702
+ };
10703
+
10704
+ export type ListFindingsResponse = ListFindingsResponses[keyof ListFindingsResponses];
10705
+
10706
+ export type GetAllScoresData = {
10707
+ body?: never;
10708
+ path?: never;
10709
+ query?: never;
10710
+ url: '/api/v1/security/scores';
10711
+ };
10712
+
10713
+ export type GetAllScoresResponses = {
10714
+ /**
10715
+ * All repository security scores
10716
+ */
10717
+ 200: Array<ScoreResponse>;
10718
+ };
10719
+
10720
+ export type GetAllScoresResponse = GetAllScoresResponses[keyof GetAllScoresResponses];
10721
+
10722
+ export type ListServiceAccountsData = {
10723
+ body?: never;
10724
+ path?: never;
10725
+ query?: never;
10726
+ url: '/api/v1/service-accounts';
10727
+ };
10728
+
10729
+ export type ListServiceAccountsErrors = {
10730
+ /**
10731
+ * Not admin
10732
+ */
10733
+ 403: unknown;
10734
+ };
10735
+
10736
+ export type ListServiceAccountsResponses = {
10737
+ /**
10738
+ * List of service accounts
10739
+ */
10740
+ 200: ServiceAccountListResponse;
10741
+ };
10742
+
10743
+ export type ListServiceAccountsResponse = ListServiceAccountsResponses[keyof ListServiceAccountsResponses];
10744
+
10745
+ export type CreateServiceAccountData = {
10746
+ body: CreateServiceAccountRequest;
10747
+ path?: never;
10748
+ query?: never;
10749
+ url: '/api/v1/service-accounts';
10750
+ };
10751
+
10752
+ export type CreateServiceAccountErrors = {
10753
+ /**
10754
+ * Validation error
10755
+ */
10756
+ 400: unknown;
10757
+ /**
10758
+ * Not admin
10759
+ */
10760
+ 403: unknown;
10761
+ };
10762
+
10763
+ export type CreateServiceAccountResponses = {
10764
+ /**
10765
+ * Service account created
10766
+ */
10767
+ 201: ServiceAccountResponse;
10768
+ };
10769
+
10770
+ export type CreateServiceAccountResponse = CreateServiceAccountResponses[keyof CreateServiceAccountResponses];
10771
+
10772
+ export type PreviewRepoSelectorData = {
10773
+ body: PreviewRepoSelectorRequest;
10774
+ path?: never;
10775
+ query?: never;
10776
+ url: '/api/v1/service-accounts/repo-selector/preview';
10777
+ };
10778
+
10779
+ export type PreviewRepoSelectorErrors = {
10780
+ /**
10781
+ * Invalid selector
10782
+ */
10783
+ 400: unknown;
10784
+ /**
10785
+ * Not admin
10786
+ */
10787
+ 403: unknown;
10788
+ };
10789
+
10790
+ export type PreviewRepoSelectorResponses = {
10791
+ /**
10792
+ * Matched repositories
10793
+ */
10794
+ 200: PreviewRepoSelectorResponse;
10795
+ };
10796
+
10797
+ export type PreviewRepoSelectorResponse2 = PreviewRepoSelectorResponses[keyof PreviewRepoSelectorResponses];
10798
+
10799
+ export type DeleteServiceAccountData = {
10800
+ body?: never;
10801
+ path: {
10802
+ /**
10803
+ * Service account ID
10804
+ */
10805
+ id: string;
10806
+ };
10807
+ query?: never;
10808
+ url: '/api/v1/service-accounts/{id}';
10809
+ };
10810
+
10811
+ export type DeleteServiceAccountErrors = {
10812
+ /**
10813
+ * Not found
10814
+ */
10815
+ 404: unknown;
10816
+ };
10817
+
10818
+ export type DeleteServiceAccountResponses = {
10819
+ /**
10820
+ * Deleted
10821
+ */
10822
+ 204: void;
10823
+ };
10824
+
10825
+ export type DeleteServiceAccountResponse = DeleteServiceAccountResponses[keyof DeleteServiceAccountResponses];
10826
+
10827
+ export type GetServiceAccountData = {
10828
+ body?: never;
10829
+ path: {
10830
+ /**
10831
+ * Service account ID
10832
+ */
10833
+ id: string;
10834
+ };
10835
+ query?: never;
10836
+ url: '/api/v1/service-accounts/{id}';
10837
+ };
10838
+
10839
+ export type GetServiceAccountErrors = {
10840
+ /**
10841
+ * Not found
10842
+ */
10843
+ 404: unknown;
10844
+ };
10845
+
10846
+ export type GetServiceAccountResponses = {
10847
+ /**
10848
+ * Service account details
10849
+ */
10850
+ 200: ServiceAccountResponse;
10851
+ };
10852
+
10853
+ export type GetServiceAccountResponse = GetServiceAccountResponses[keyof GetServiceAccountResponses];
8814
10854
 
8815
- export type ListScansData = {
8816
- body?: never;
8817
- path?: never;
8818
- query?: {
8819
- repository_id?: string | null;
8820
- artifact_id?: string | null;
8821
- status?: string | null;
8822
- page?: number | null;
8823
- per_page?: number | null;
10855
+ export type UpdateServiceAccountData = {
10856
+ body: UpdateServiceAccountRequest;
10857
+ path: {
10858
+ /**
10859
+ * Service account ID
10860
+ */
10861
+ id: string;
8824
10862
  };
8825
- url: '/api/v1/security/scans';
10863
+ query?: never;
10864
+ url: '/api/v1/service-accounts/{id}';
8826
10865
  };
8827
10866
 
8828
- export type ListScansResponses = {
10867
+ export type UpdateServiceAccountErrors = {
8829
10868
  /**
8830
- * Paginated list of scans
10869
+ * Not found
8831
10870
  */
8832
- 200: ScanListResponse;
10871
+ 404: unknown;
8833
10872
  };
8834
10873
 
8835
- export type ListScansResponse = ListScansResponses[keyof ListScansResponses];
10874
+ export type UpdateServiceAccountResponses = {
10875
+ /**
10876
+ * Updated
10877
+ */
10878
+ 200: ServiceAccountResponse;
10879
+ };
8836
10880
 
8837
- export type GetScanData = {
10881
+ export type UpdateServiceAccountResponse = UpdateServiceAccountResponses[keyof UpdateServiceAccountResponses];
10882
+
10883
+ export type ListTokensData = {
8838
10884
  body?: never;
8839
10885
  path: {
8840
10886
  /**
8841
- * Scan result ID
10887
+ * Service account ID
8842
10888
  */
8843
10889
  id: string;
8844
10890
  };
8845
10891
  query?: never;
8846
- url: '/api/v1/security/scans/{id}';
10892
+ url: '/api/v1/service-accounts/{id}/tokens';
8847
10893
  };
8848
10894
 
8849
- export type GetScanErrors = {
10895
+ export type ListTokensErrors = {
8850
10896
  /**
8851
- * Scan not found
10897
+ * Service account not found
8852
10898
  */
8853
- 404: ErrorResponse;
10899
+ 404: unknown;
8854
10900
  };
8855
10901
 
8856
- export type GetScanError = GetScanErrors[keyof GetScanErrors];
8857
-
8858
- export type GetScanResponses = {
10902
+ export type ListTokensResponses = {
8859
10903
  /**
8860
- * Scan details
10904
+ * Token list
8861
10905
  */
8862
- 200: ScanResponse;
10906
+ 200: TokenListResponse;
8863
10907
  };
8864
10908
 
8865
- export type GetScanResponse = GetScanResponses[keyof GetScanResponses];
10909
+ export type ListTokensResponse = ListTokensResponses[keyof ListTokensResponses];
8866
10910
 
8867
- export type ListFindingsData = {
8868
- body?: never;
10911
+ export type CreateTokenData = {
10912
+ body: CreateTokenRequest;
8869
10913
  path: {
8870
10914
  /**
8871
- * Scan result ID
10915
+ * Service account ID
8872
10916
  */
8873
10917
  id: string;
8874
10918
  };
8875
- query?: {
8876
- page?: number | null;
8877
- per_page?: number | null;
8878
- };
8879
- url: '/api/v1/security/scans/{id}/findings';
10919
+ query?: never;
10920
+ url: '/api/v1/service-accounts/{id}/tokens';
8880
10921
  };
8881
10922
 
8882
- export type ListFindingsErrors = {
10923
+ export type CreateTokenErrors = {
8883
10924
  /**
8884
- * Scan not found
10925
+ * Service account not found
8885
10926
  */
8886
- 404: ErrorResponse;
10927
+ 404: unknown;
8887
10928
  };
8888
10929
 
8889
- export type ListFindingsError = ListFindingsErrors[keyof ListFindingsErrors];
8890
-
8891
- export type ListFindingsResponses = {
10930
+ export type CreateTokenResponses = {
8892
10931
  /**
8893
- * Paginated list of findings for a scan
10932
+ * Token created (value shown once)
8894
10933
  */
8895
- 200: FindingListResponse;
10934
+ 200: CreateTokenResponse;
8896
10935
  };
8897
10936
 
8898
- export type ListFindingsResponse = ListFindingsResponses[keyof ListFindingsResponses];
10937
+ export type CreateTokenResponse2 = CreateTokenResponses[keyof CreateTokenResponses];
8899
10938
 
8900
- export type GetAllScoresData = {
10939
+ export type RevokeTokenData = {
8901
10940
  body?: never;
8902
- path?: never;
10941
+ path: {
10942
+ /**
10943
+ * Service account ID
10944
+ */
10945
+ id: string;
10946
+ /**
10947
+ * Token ID
10948
+ */
10949
+ token_id: string;
10950
+ };
8903
10951
  query?: never;
8904
- url: '/api/v1/security/scores';
10952
+ url: '/api/v1/service-accounts/{id}/tokens/{token_id}';
8905
10953
  };
8906
10954
 
8907
- export type GetAllScoresResponses = {
10955
+ export type RevokeTokenErrors = {
8908
10956
  /**
8909
- * All repository security scores
10957
+ * Not found
8910
10958
  */
8911
- 200: Array<ScoreResponse>;
10959
+ 404: unknown;
8912
10960
  };
8913
10961
 
8914
- export type GetAllScoresResponse = GetAllScoresResponses[keyof GetAllScoresResponses];
10962
+ export type RevokeTokenResponses = {
10963
+ /**
10964
+ * Token revoked
10965
+ */
10966
+ 204: void;
10967
+ };
10968
+
10969
+ export type RevokeTokenResponse = RevokeTokenResponses[keyof RevokeTokenResponses];
8915
10970
 
8916
10971
  export type SetupStatusData = {
8917
10972
  body?: never;
@@ -9252,6 +11307,238 @@ export type GetRepoPublicKeyResponses = {
9252
11307
 
9253
11308
  export type GetRepoPublicKeyResponse = GetRepoPublicKeyResponses[keyof GetRepoPublicKeyResponses];
9254
11309
 
11310
+ export type ListSyncPoliciesData = {
11311
+ body?: never;
11312
+ path?: never;
11313
+ query?: never;
11314
+ url: '/api/v1/sync-policies';
11315
+ };
11316
+
11317
+ export type ListSyncPoliciesErrors = {
11318
+ /**
11319
+ * Internal server error
11320
+ */
11321
+ 500: unknown;
11322
+ };
11323
+
11324
+ export type ListSyncPoliciesResponses = {
11325
+ /**
11326
+ * List of sync policies
11327
+ */
11328
+ 200: SyncPolicyListResponse;
11329
+ };
11330
+
11331
+ export type ListSyncPoliciesResponse = ListSyncPoliciesResponses[keyof ListSyncPoliciesResponses];
11332
+
11333
+ export type CreateSyncPolicyData = {
11334
+ body: CreateSyncPolicyPayload;
11335
+ path?: never;
11336
+ query?: never;
11337
+ url: '/api/v1/sync-policies';
11338
+ };
11339
+
11340
+ export type CreateSyncPolicyErrors = {
11341
+ /**
11342
+ * Validation error
11343
+ */
11344
+ 400: unknown;
11345
+ /**
11346
+ * Policy name already exists
11347
+ */
11348
+ 409: unknown;
11349
+ /**
11350
+ * Internal server error
11351
+ */
11352
+ 500: unknown;
11353
+ };
11354
+
11355
+ export type CreateSyncPolicyResponses = {
11356
+ /**
11357
+ * Sync policy created
11358
+ */
11359
+ 200: SyncPolicyResponse;
11360
+ };
11361
+
11362
+ export type CreateSyncPolicyResponse = CreateSyncPolicyResponses[keyof CreateSyncPolicyResponses];
11363
+
11364
+ export type EvaluatePoliciesData = {
11365
+ body?: never;
11366
+ path?: never;
11367
+ query?: never;
11368
+ url: '/api/v1/sync-policies/evaluate';
11369
+ };
11370
+
11371
+ export type EvaluatePoliciesErrors = {
11372
+ /**
11373
+ * Internal server error
11374
+ */
11375
+ 500: unknown;
11376
+ };
11377
+
11378
+ export type EvaluatePoliciesResponses = {
11379
+ /**
11380
+ * Evaluation completed
11381
+ */
11382
+ 200: EvaluationResultResponse;
11383
+ };
11384
+
11385
+ export type EvaluatePoliciesResponse = EvaluatePoliciesResponses[keyof EvaluatePoliciesResponses];
11386
+
11387
+ export type PreviewSyncPolicyData = {
11388
+ body: PreviewPolicyPayload;
11389
+ path?: never;
11390
+ query?: never;
11391
+ url: '/api/v1/sync-policies/preview';
11392
+ };
11393
+
11394
+ export type PreviewSyncPolicyErrors = {
11395
+ /**
11396
+ * Internal server error
11397
+ */
11398
+ 500: unknown;
11399
+ };
11400
+
11401
+ export type PreviewSyncPolicyResponses = {
11402
+ /**
11403
+ * Preview result
11404
+ */
11405
+ 200: PreviewResultResponse;
11406
+ };
11407
+
11408
+ export type PreviewSyncPolicyResponse = PreviewSyncPolicyResponses[keyof PreviewSyncPolicyResponses];
11409
+
11410
+ export type DeleteSyncPolicyData = {
11411
+ body?: never;
11412
+ path: {
11413
+ /**
11414
+ * Sync policy ID
11415
+ */
11416
+ id: string;
11417
+ };
11418
+ query?: never;
11419
+ url: '/api/v1/sync-policies/{id}';
11420
+ };
11421
+
11422
+ export type DeleteSyncPolicyErrors = {
11423
+ /**
11424
+ * Sync policy not found
11425
+ */
11426
+ 404: unknown;
11427
+ /**
11428
+ * Internal server error
11429
+ */
11430
+ 500: unknown;
11431
+ };
11432
+
11433
+ export type DeleteSyncPolicyResponses = {
11434
+ /**
11435
+ * Sync policy deleted
11436
+ */
11437
+ 204: void;
11438
+ };
11439
+
11440
+ export type DeleteSyncPolicyResponse = DeleteSyncPolicyResponses[keyof DeleteSyncPolicyResponses];
11441
+
11442
+ export type GetSyncPolicyData = {
11443
+ body?: never;
11444
+ path: {
11445
+ /**
11446
+ * Sync policy ID
11447
+ */
11448
+ id: string;
11449
+ };
11450
+ query?: never;
11451
+ url: '/api/v1/sync-policies/{id}';
11452
+ };
11453
+
11454
+ export type GetSyncPolicyErrors = {
11455
+ /**
11456
+ * Sync policy not found
11457
+ */
11458
+ 404: unknown;
11459
+ /**
11460
+ * Internal server error
11461
+ */
11462
+ 500: unknown;
11463
+ };
11464
+
11465
+ export type GetSyncPolicyResponses = {
11466
+ /**
11467
+ * Sync policy details
11468
+ */
11469
+ 200: SyncPolicyResponse;
11470
+ };
11471
+
11472
+ export type GetSyncPolicyResponse = GetSyncPolicyResponses[keyof GetSyncPolicyResponses];
11473
+
11474
+ export type UpdateSyncPolicyData = {
11475
+ body: UpdateSyncPolicyPayload;
11476
+ path: {
11477
+ /**
11478
+ * Sync policy ID
11479
+ */
11480
+ id: string;
11481
+ };
11482
+ query?: never;
11483
+ url: '/api/v1/sync-policies/{id}';
11484
+ };
11485
+
11486
+ export type UpdateSyncPolicyErrors = {
11487
+ /**
11488
+ * Sync policy not found
11489
+ */
11490
+ 404: unknown;
11491
+ /**
11492
+ * Policy name already exists
11493
+ */
11494
+ 409: unknown;
11495
+ /**
11496
+ * Internal server error
11497
+ */
11498
+ 500: unknown;
11499
+ };
11500
+
11501
+ export type UpdateSyncPolicyResponses = {
11502
+ /**
11503
+ * Sync policy updated
11504
+ */
11505
+ 200: SyncPolicyResponse;
11506
+ };
11507
+
11508
+ export type UpdateSyncPolicyResponse = UpdateSyncPolicyResponses[keyof UpdateSyncPolicyResponses];
11509
+
11510
+ export type TogglePolicyData = {
11511
+ body: TogglePolicyPayload;
11512
+ path: {
11513
+ /**
11514
+ * Sync policy ID
11515
+ */
11516
+ id: string;
11517
+ };
11518
+ query?: never;
11519
+ url: '/api/v1/sync-policies/{id}/toggle';
11520
+ };
11521
+
11522
+ export type TogglePolicyErrors = {
11523
+ /**
11524
+ * Sync policy not found
11525
+ */
11526
+ 404: unknown;
11527
+ /**
11528
+ * Internal server error
11529
+ */
11530
+ 500: unknown;
11531
+ };
11532
+
11533
+ export type TogglePolicyResponses = {
11534
+ /**
11535
+ * Sync policy toggled
11536
+ */
11537
+ 200: SyncPolicyResponse;
11538
+ };
11539
+
11540
+ export type TogglePolicyResponse = TogglePolicyResponses[keyof TogglePolicyResponses];
11541
+
9255
11542
  export type GetTreeData = {
9256
11543
  body?: never;
9257
11544
  path?: never;
@@ -9396,7 +11683,7 @@ export type GetUserResponses = {
9396
11683
  /**
9397
11684
  * User details
9398
11685
  */
9399
- 200: UserResponse;
11686
+ 200: AdminUserResponse;
9400
11687
  };
9401
11688
 
9402
11689
  export type GetUserResponse = GetUserResponses[keyof GetUserResponses];
@@ -9424,7 +11711,7 @@ export type UpdateUserResponses = {
9424
11711
  /**
9425
11712
  * User updated successfully
9426
11713
  */
9427
- 200: UserResponse;
11714
+ 200: AdminUserResponse;
9428
11715
  };
9429
11716
 
9430
11717
  export type UpdateUserResponse = UpdateUserResponses[keyof UpdateUserResponses];
@@ -9937,23 +12224,43 @@ export type HealthCheckResponses = {
9937
12224
 
9938
12225
  export type HealthCheckResponse = HealthCheckResponses[keyof HealthCheckResponses];
9939
12226
 
12227
+ export type LivenessCheckData = {
12228
+ body?: never;
12229
+ path?: never;
12230
+ query?: never;
12231
+ url: '/livez';
12232
+ };
12233
+
12234
+ export type LivenessCheckResponses = {
12235
+ /**
12236
+ * Process is alive
12237
+ */
12238
+ 200: LivezResponse;
12239
+ };
12240
+
12241
+ export type LivenessCheckResponse = LivenessCheckResponses[keyof LivenessCheckResponses];
12242
+
9940
12243
  export type ReadinessCheckData = {
9941
12244
  body?: never;
9942
12245
  path?: never;
9943
12246
  query?: never;
9944
- url: '/ready';
12247
+ url: '/readyz';
9945
12248
  };
9946
12249
 
9947
12250
  export type ReadinessCheckErrors = {
9948
12251
  /**
9949
12252
  * Service is not ready
9950
12253
  */
9951
- 503: unknown;
12254
+ 503: ReadyzResponse;
9952
12255
  };
9953
12256
 
12257
+ export type ReadinessCheckError = ReadinessCheckErrors[keyof ReadinessCheckErrors];
12258
+
9954
12259
  export type ReadinessCheckResponses = {
9955
12260
  /**
9956
- * Service is ready to accept traffic
12261
+ * Service is ready
9957
12262
  */
9958
- 200: unknown;
12263
+ 200: ReadyzResponse;
9959
12264
  };
12265
+
12266
+ export type ReadinessCheckResponse = ReadinessCheckResponses[keyof ReadinessCheckResponses];