@artifact-keeper/sdk 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/types.gen.ts CHANGED
@@ -52,6 +52,32 @@ export type AdvancedSearchResponse = {
52
52
  pagination: PaginationInfo;
53
53
  };
54
54
 
55
+ export type AgeGateConfigResponse = {
56
+ enabled: boolean;
57
+ min_age_days: number;
58
+ repository_key: string;
59
+ };
60
+
61
+ export type AgeGateReviewListResponse = {
62
+ items: Array<AgeGateReviewResponse>;
63
+ pagination: Pagination;
64
+ };
65
+
66
+ export type AgeGateReviewResponse = {
67
+ id: string;
68
+ last_requested_at: string;
69
+ package_name: string;
70
+ package_version: string;
71
+ repository_key: string;
72
+ request_count: number;
73
+ requested_at: string;
74
+ review_reason?: string | null;
75
+ reviewed_at?: string | null;
76
+ reviewed_by?: string | null;
77
+ status: string;
78
+ upstream_published_at?: string | null;
79
+ };
80
+
55
81
  /**
56
82
  * Alert state for a service.
57
83
  */
@@ -218,6 +244,19 @@ export type ArtifactMetadataResponse = {
218
244
  };
219
245
 
220
246
  export type ArtifactResponse = {
247
+ /**
248
+ * Whether this artifact can have an SBOM generated or a security scan
249
+ * run against it. `false` for proxy-cached (Remote) objects: those are
250
+ * listed with a synthetic, SHA-256-derived id (see
251
+ * [`cached_artifact_id`]) and have no row in the `artifacts` table
252
+ * (#1280/#1278), so SBOM/scan lookups by `artifacts.id` cannot resolve
253
+ * them and `sbom_documents`/`scan_results` cannot reference them.
254
+ * `true` for hosted artifacts, which carry a real DB id. The web UI
255
+ * uses this to hide/disable the "Generate SBOM" / "Scan" actions where
256
+ * they cannot work; clients that predate the field should treat an
257
+ * absent value as `true` so hosted artifacts are never hidden. (#2227)
258
+ */
259
+ analyzable: boolean;
221
260
  /**
222
261
  * When the proxy cache entry for this artifact was last written.
223
262
  * Only populated for Remote (proxy) repositories whose proxy service is
@@ -552,6 +591,67 @@ export type ChunkResponse = {
552
591
  chunks_remaining: number;
553
592
  };
554
593
 
594
+ export type CiOidcMappingResponse = {
595
+ allowed_repo_ids?: Array<string> | null;
596
+ claim_filters: unknown;
597
+ created_at: string;
598
+ id: string;
599
+ is_enabled: boolean;
600
+ name: string;
601
+ priority: number;
602
+ provider_id: string;
603
+ updated_at: string;
604
+ };
605
+
606
+ export type CiOidcProviderResponse = {
607
+ audience: string;
608
+ created_at: string;
609
+ id: string;
610
+ is_enabled: boolean;
611
+ issuer_url: string;
612
+ mapping_count: number;
613
+ name: string;
614
+ provider_type: string;
615
+ updated_at: string;
616
+ };
617
+
618
+ /**
619
+ * Body for toggle endpoint.
620
+ */
621
+ export type CiOidcToggleRequest = {
622
+ enabled: boolean;
623
+ };
624
+
625
+ export type CiTokenRequest = {
626
+ /**
627
+ * UUID of the `ci_oidc_providers` row to use for validation.
628
+ */
629
+ provider_id: string;
630
+ };
631
+
632
+ export type CiTokenResponse = {
633
+ /**
634
+ * Short-lived Artifact Keeper access token.
635
+ */
636
+ access_token: string;
637
+ /**
638
+ * Lifetime in seconds (default 900 = 15 min).
639
+ *
640
+ * Docker caches credentials and does not auto-refresh. Re-exchange the
641
+ * CI JWT before each `docker push` step if the pipeline runs longer
642
+ * than this window.
643
+ */
644
+ expires_in: number;
645
+ token_type: string;
646
+ /**
647
+ * The provisioned CI service-account username.
648
+ *
649
+ * Use this directly as `docker login --username` — no separate
650
+ * `GET /api/v1/auth/me` call is needed.
651
+ */
652
+ username: string;
653
+ };
654
+
555
655
  export type CleanupRequest = {
556
656
  cleanup_audit_logs?: boolean | null;
557
657
  cleanup_old_backups?: boolean | null;
@@ -689,6 +789,22 @@ export type CreateBuildRequest = {
689
789
  vcs_url?: string | null;
690
790
  };
691
791
 
792
+ export type CreateCiOidcMappingRequest = {
793
+ allowed_repo_ids?: Array<string> | null;
794
+ claim_filters: unknown;
795
+ is_enabled?: boolean | null;
796
+ name: string;
797
+ priority?: number | null;
798
+ };
799
+
800
+ export type CreateCiOidcProviderRequest = {
801
+ audience?: string | null;
802
+ is_enabled?: boolean | null;
803
+ issuer_url: string;
804
+ name: string;
805
+ provider_type?: string | null;
806
+ };
807
+
692
808
  export type CreateConnectionRequest = {
693
809
  auth_type: string;
694
810
  credentials: ConnectionCredentials;
@@ -778,6 +894,14 @@ export type CreateMigrationRequest = {
778
894
  };
779
895
 
780
896
  export type CreateOidcConfigRequest = {
897
+ /**
898
+ * Opt-in compatibility flag (migration 144): when `true` the provider
899
+ * accepts ID tokens signed with RSA keys shorter than 2048 bits via a
900
+ * restricted RS256/384/512 PKCS#1 v1.5 fallback path. Defaults to
901
+ * `false`. Below the OWASP ASVS 4.0 baseline; only enable for legacy
902
+ * IdPs such as Lark AnyCross.
903
+ */
904
+ allow_legacy_rsa_keys?: boolean | null;
781
905
  attribute_mapping?: {
782
906
  [key: string]: unknown;
783
907
  } | null;
@@ -891,6 +1015,19 @@ export type CreateRepositoryRequest = {
891
1015
  * Defaults to false (no behavior change for existing repositories).
892
1016
  */
893
1017
  promotion_only?: boolean | null;
1018
+ /**
1019
+ * Override the PyPI simple-index prefix for upstreams that do not follow
1020
+ * the standard PEP 503 `/simple/` layout (issue #1546).
1021
+ *
1022
+ * - Omit or `"simple"` — standard PEP 503 (pypi.org, devpi, Nexus). Default.
1023
+ * - `""` (empty) — flat CDN (e.g. `https://download.pytorch.org/whl/cpu`):
1024
+ * package files are served directly under the upstream root with no prefix.
1025
+ * - Any other non-empty string — custom index prefix.
1026
+ *
1027
+ * Stored in `repository_config` under `pypi_upstream_index_path`.
1028
+ * Only meaningful for PyPI / Poetry / Conda Remote repositories.
1029
+ */
1030
+ pypi_upstream_index_path?: string | null;
894
1031
  quota_bytes?: number | null;
895
1032
  repo_type: string;
896
1033
  /**
@@ -2441,6 +2578,13 @@ export type OciBlobRepoFootprint = {
2441
2578
  };
2442
2579
 
2443
2580
  export type OidcConfigResponse = {
2581
+ /**
2582
+ * Opt-in compatibility flag (migration 144): when true the OIDC
2583
+ * provider accepts ID tokens signed with RSA keys shorter than
2584
+ * 2048 bits via a restricted RS256/384/512 PKCS#1 v1.5 path.
2585
+ * Below the OWASP ASVS 4.0 baseline; only enable for legacy IdPs.
2586
+ */
2587
+ allow_legacy_rsa_keys: boolean;
2444
2588
  attribute_mapping: {
2445
2589
  [key: string]: unknown;
2446
2590
  };
@@ -3227,6 +3371,17 @@ export type RestoreResponse = {
3227
3371
  tables_restored: Array<string>;
3228
3372
  };
3229
3373
 
3374
+ export type ReviewActionRequest = {
3375
+ reason?: string | null;
3376
+ };
3377
+
3378
+ export type ReviewListQuery = {
3379
+ page?: number | null;
3380
+ per_page?: number | null;
3381
+ repository_key?: string | null;
3382
+ status?: string | null;
3383
+ };
3384
+
3230
3385
  export type ReviewRequest = {
3231
3386
  /**
3232
3387
  * Optional reviewer notes
@@ -4120,6 +4275,11 @@ export type UninstallQuery = {
4120
4275
  force?: boolean | null;
4121
4276
  };
4122
4277
 
4278
+ export type UpdateAgeGateConfigRequest = {
4279
+ enabled: boolean;
4280
+ min_age_days: number;
4281
+ };
4282
+
4123
4283
  export type UpdateAnalysisBody = {
4124
4284
  component_uuid: string;
4125
4285
  details?: string | null;
@@ -4140,6 +4300,22 @@ export type UpdateChunkAvailabilityBody = {
4140
4300
  total_chunks: number;
4141
4301
  };
4142
4302
 
4303
+ export type UpdateCiOidcMappingRequest = {
4304
+ allowed_repo_ids?: Array<string> | null;
4305
+ claim_filters?: unknown;
4306
+ is_enabled?: boolean | null;
4307
+ name?: string | null;
4308
+ priority?: number | null;
4309
+ };
4310
+
4311
+ export type UpdateCiOidcProviderRequest = {
4312
+ audience?: string | null;
4313
+ is_enabled?: boolean | null;
4314
+ issuer_url?: string | null;
4315
+ name?: string | null;
4316
+ provider_type?: string | null;
4317
+ };
4318
+
4143
4319
  export type UpdateCveStatusRequest = {
4144
4320
  reason?: string | null;
4145
4321
  status: string;
@@ -4182,6 +4358,7 @@ export type UpdateLdapConfigRequest = {
4182
4358
  };
4183
4359
 
4184
4360
  export type UpdateOidcConfigRequest = {
4361
+ allow_legacy_rsa_keys?: boolean | null;
4185
4362
  /**
4186
4363
  * Partial update for `attribute_mapping`. Keys present in this object
4187
4364
  * overwrite the matching keys in the stored mapping. Keys not present
@@ -4267,6 +4444,13 @@ export type UpdateRepositoryRequest = {
4267
4444
  * repository (admin-only). When omitted, the flag is left unchanged.
4268
4445
  */
4269
4446
  promotion_only?: boolean | null;
4447
+ /**
4448
+ * Update the PyPI simple-index prefix (stored in `repository_config` under
4449
+ * `pypi_upstream_index_path`). Pass `""` for flat CDN layout, `"simple"` to
4450
+ * restore the PEP 503 default, or any other non-empty string for a custom prefix.
4451
+ * Only meaningful for PyPI / Poetry / Conda Remote repositories.
4452
+ */
4453
+ pypi_upstream_index_path?: string | null;
4270
4454
  /**
4271
4455
  * Quarantine hold duration in minutes for this repository.
4272
4456
  * Stored in `repository_config` under `quarantine_duration_minutes`.
@@ -4473,7 +4657,7 @@ export type WasmPluginResponse = {
4473
4657
  /**
4474
4658
  * Webhook event types
4475
4659
  */
4476
- export type WebhookEvent = 'artifact_uploaded' | 'artifact_deleted' | 'repository_created' | 'repository_deleted' | 'user_created' | 'user_deleted' | 'build_started' | 'build_completed' | 'build_failed';
4660
+ export type WebhookEvent = 'artifact_uploaded' | 'artifact_deleted' | 'repository_created' | 'repository_deleted' | 'user_created' | 'user_deleted' | 'build_started' | 'build_completed' | 'build_failed' | 'age_gate_queued' | 'age_gate_approved' | 'age_gate_rejected';
4477
4661
 
4478
4662
  export type WebhookListResponse = {
4479
4663
  items: Array<WebhookResponse>;
@@ -4532,6 +4716,69 @@ export type WebhookSecretCreatedResponse = WebhookResponse & {
4532
4716
  secret?: string | null;
4533
4717
  };
4534
4718
 
4719
+ export type ListReviewsData = {
4720
+ body?: never;
4721
+ path?: never;
4722
+ query?: {
4723
+ repository_key?: string;
4724
+ status?: string;
4725
+ page?: number;
4726
+ per_page?: number;
4727
+ };
4728
+ url: '/api/v1/admin/age-gate/reviews';
4729
+ };
4730
+
4731
+ export type ListReviewsResponses = {
4732
+ 200: AgeGateReviewListResponse;
4733
+ };
4734
+
4735
+ export type ListReviewsResponse = ListReviewsResponses[keyof ListReviewsResponses];
4736
+
4737
+ export type GetReviewData = {
4738
+ body?: never;
4739
+ path: {
4740
+ id: string;
4741
+ };
4742
+ query?: never;
4743
+ url: '/api/v1/admin/age-gate/reviews/{id}';
4744
+ };
4745
+
4746
+ export type GetReviewResponses = {
4747
+ 200: AgeGateReviewResponse;
4748
+ };
4749
+
4750
+ export type GetReviewResponse = GetReviewResponses[keyof GetReviewResponses];
4751
+
4752
+ export type ApproveReviewData = {
4753
+ body: ReviewActionRequest;
4754
+ path: {
4755
+ id: string;
4756
+ };
4757
+ query?: never;
4758
+ url: '/api/v1/admin/age-gate/reviews/{id}/approve';
4759
+ };
4760
+
4761
+ export type ApproveReviewResponses = {
4762
+ 200: AgeGateReviewResponse;
4763
+ };
4764
+
4765
+ export type ApproveReviewResponse = ApproveReviewResponses[keyof ApproveReviewResponses];
4766
+
4767
+ export type RejectReviewData = {
4768
+ body: ReviewActionRequest;
4769
+ path: {
4770
+ id: string;
4771
+ };
4772
+ query?: never;
4773
+ url: '/api/v1/admin/age-gate/reviews/{id}/reject';
4774
+ };
4775
+
4776
+ export type RejectReviewResponses = {
4777
+ 200: AgeGateReviewResponse;
4778
+ };
4779
+
4780
+ export type RejectReviewResponse = RejectReviewResponses[keyof RejectReviewResponses];
4781
+
4535
4782
  export type GetStaleArtifactsData = {
4536
4783
  body?: never;
4537
4784
  path?: never;
@@ -4713,167 +4960,641 @@ export type CreateBackupResponses = {
4713
4960
  200: BackupResponse;
4714
4961
  };
4715
4962
 
4716
- export type CreateBackupResponse = CreateBackupResponses[keyof CreateBackupResponses];
4963
+ export type CreateBackupResponse = CreateBackupResponses[keyof CreateBackupResponses];
4964
+
4965
+ export type DeleteBackupData = {
4966
+ body?: never;
4967
+ path: {
4968
+ /**
4969
+ * Backup ID
4970
+ */
4971
+ id: string;
4972
+ };
4973
+ query?: never;
4974
+ url: '/api/v1/admin/backups/{id}';
4975
+ };
4976
+
4977
+ export type DeleteBackupErrors = {
4978
+ /**
4979
+ * Backup not found
4980
+ */
4981
+ 404: unknown;
4982
+ /**
4983
+ * Internal server error
4984
+ */
4985
+ 500: unknown;
4986
+ };
4987
+
4988
+ export type DeleteBackupResponses = {
4989
+ /**
4990
+ * Backup deleted
4991
+ */
4992
+ 200: unknown;
4993
+ };
4994
+
4995
+ export type GetBackupData = {
4996
+ body?: never;
4997
+ path: {
4998
+ /**
4999
+ * Backup ID
5000
+ */
5001
+ id: string;
5002
+ };
5003
+ query?: never;
5004
+ url: '/api/v1/admin/backups/{id}';
5005
+ };
5006
+
5007
+ export type GetBackupErrors = {
5008
+ /**
5009
+ * Backup not found
5010
+ */
5011
+ 404: unknown;
5012
+ /**
5013
+ * Internal server error
5014
+ */
5015
+ 500: unknown;
5016
+ };
5017
+
5018
+ export type GetBackupResponses = {
5019
+ /**
5020
+ * Backup details
5021
+ */
5022
+ 200: BackupResponse;
5023
+ };
5024
+
5025
+ export type GetBackupResponse = GetBackupResponses[keyof GetBackupResponses];
5026
+
5027
+ export type CancelBackupData = {
5028
+ body?: never;
5029
+ path: {
5030
+ /**
5031
+ * Backup ID
5032
+ */
5033
+ id: string;
5034
+ };
5035
+ query?: never;
5036
+ url: '/api/v1/admin/backups/{id}/cancel';
5037
+ };
5038
+
5039
+ export type CancelBackupErrors = {
5040
+ /**
5041
+ * Backup not found
5042
+ */
5043
+ 404: unknown;
5044
+ /**
5045
+ * Backup is not in a cancellable state
5046
+ */
5047
+ 409: unknown;
5048
+ /**
5049
+ * Internal server error
5050
+ */
5051
+ 500: unknown;
5052
+ };
5053
+
5054
+ export type CancelBackupResponses = {
5055
+ /**
5056
+ * Backup cancelled
5057
+ */
5058
+ 200: unknown;
5059
+ };
5060
+
5061
+ export type ExecuteBackupData = {
5062
+ body?: never;
5063
+ path: {
5064
+ /**
5065
+ * Backup ID
5066
+ */
5067
+ id: string;
5068
+ };
5069
+ query?: never;
5070
+ url: '/api/v1/admin/backups/{id}/execute';
5071
+ };
5072
+
5073
+ export type ExecuteBackupErrors = {
5074
+ /**
5075
+ * Backup not found
5076
+ */
5077
+ 404: unknown;
5078
+ /**
5079
+ * Internal server error
5080
+ */
5081
+ 500: unknown;
5082
+ };
5083
+
5084
+ export type ExecuteBackupResponses = {
5085
+ /**
5086
+ * Backup executed
5087
+ */
5088
+ 200: BackupResponse;
5089
+ };
5090
+
5091
+ export type ExecuteBackupResponse = ExecuteBackupResponses[keyof ExecuteBackupResponses];
5092
+
5093
+ export type RestoreBackupData = {
5094
+ body: RestoreRequest;
5095
+ path: {
5096
+ /**
5097
+ * Backup ID
5098
+ */
5099
+ id: string;
5100
+ };
5101
+ query?: never;
5102
+ url: '/api/v1/admin/backups/{id}/restore';
5103
+ };
5104
+
5105
+ export type RestoreBackupErrors = {
5106
+ /**
5107
+ * Backup not found
5108
+ */
5109
+ 404: unknown;
5110
+ /**
5111
+ * Internal server error
5112
+ */
5113
+ 500: unknown;
5114
+ };
5115
+
5116
+ export type RestoreBackupResponses = {
5117
+ /**
5118
+ * Backup restored
5119
+ */
5120
+ 200: RestoreResponse;
5121
+ };
5122
+
5123
+ export type RestoreBackupResponse = RestoreBackupResponses[keyof RestoreBackupResponses];
5124
+
5125
+ export type CiOidcListProvidersData = {
5126
+ body?: never;
5127
+ path?: never;
5128
+ query?: never;
5129
+ url: '/api/v1/admin/ci-oidc/';
5130
+ };
5131
+
5132
+ export type CiOidcListProvidersErrors = {
5133
+ /**
5134
+ * Unauthorized
5135
+ */
5136
+ 401: ErrorResponse;
5137
+ /**
5138
+ * Admin required
5139
+ */
5140
+ 403: ErrorResponse;
5141
+ };
5142
+
5143
+ export type CiOidcListProvidersError = CiOidcListProvidersErrors[keyof CiOidcListProvidersErrors];
5144
+
5145
+ export type CiOidcListProvidersResponses = {
5146
+ /**
5147
+ * List CI OIDC providers
5148
+ */
5149
+ 200: Array<CiOidcProviderResponse>;
5150
+ };
5151
+
5152
+ export type CiOidcListProvidersResponse = CiOidcListProvidersResponses[keyof CiOidcListProvidersResponses];
5153
+
5154
+ export type CreateProviderData = {
5155
+ body: CreateCiOidcProviderRequest;
5156
+ path?: never;
5157
+ query?: never;
5158
+ url: '/api/v1/admin/ci-oidc/';
5159
+ };
5160
+
5161
+ export type CreateProviderErrors = {
5162
+ /**
5163
+ * Invalid request
5164
+ */
5165
+ 400: ErrorResponse;
5166
+ /**
5167
+ * Unauthorized
5168
+ */
5169
+ 401: ErrorResponse;
5170
+ /**
5171
+ * Admin required
5172
+ */
5173
+ 403: ErrorResponse;
5174
+ };
5175
+
5176
+ export type CreateProviderError = CreateProviderErrors[keyof CreateProviderErrors];
5177
+
5178
+ export type CreateProviderResponses = {
5179
+ /**
5180
+ * Create CI OIDC provider
5181
+ */
5182
+ 200: CiOidcProviderResponse;
5183
+ };
5184
+
5185
+ export type CreateProviderResponse = CreateProviderResponses[keyof CreateProviderResponses];
5186
+
5187
+ export type DeleteProviderData = {
5188
+ body?: never;
5189
+ path: {
5190
+ /**
5191
+ * CI OIDC provider ID
5192
+ */
5193
+ id: string;
5194
+ };
5195
+ query?: never;
5196
+ url: '/api/v1/admin/ci-oidc/{id}';
5197
+ };
5198
+
5199
+ export type DeleteProviderErrors = {
5200
+ /**
5201
+ * Unauthorized
5202
+ */
5203
+ 401: ErrorResponse;
5204
+ /**
5205
+ * Admin required
5206
+ */
5207
+ 403: ErrorResponse;
5208
+ /**
5209
+ * Provider not found
5210
+ */
5211
+ 404: ErrorResponse;
5212
+ };
5213
+
5214
+ export type DeleteProviderError = DeleteProviderErrors[keyof DeleteProviderErrors];
5215
+
5216
+ export type DeleteProviderResponses = {
5217
+ /**
5218
+ * Delete CI OIDC provider
5219
+ */
5220
+ 200: unknown;
5221
+ };
5222
+
5223
+ export type GetProviderData = {
5224
+ body?: never;
5225
+ path: {
5226
+ /**
5227
+ * CI OIDC provider ID
5228
+ */
5229
+ id: string;
5230
+ };
5231
+ query?: never;
5232
+ url: '/api/v1/admin/ci-oidc/{id}';
5233
+ };
5234
+
5235
+ export type GetProviderErrors = {
5236
+ /**
5237
+ * Unauthorized
5238
+ */
5239
+ 401: ErrorResponse;
5240
+ /**
5241
+ * Admin required
5242
+ */
5243
+ 403: ErrorResponse;
5244
+ /**
5245
+ * Provider not found
5246
+ */
5247
+ 404: ErrorResponse;
5248
+ };
5249
+
5250
+ export type GetProviderError = GetProviderErrors[keyof GetProviderErrors];
5251
+
5252
+ export type GetProviderResponses = {
5253
+ /**
5254
+ * Get CI OIDC provider
5255
+ */
5256
+ 200: CiOidcProviderResponse;
5257
+ };
5258
+
5259
+ export type GetProviderResponse = GetProviderResponses[keyof GetProviderResponses];
5260
+
5261
+ export type UpdateProviderData = {
5262
+ body: UpdateCiOidcProviderRequest;
5263
+ path: {
5264
+ /**
5265
+ * CI OIDC provider ID
5266
+ */
5267
+ id: string;
5268
+ };
5269
+ query?: never;
5270
+ url: '/api/v1/admin/ci-oidc/{id}';
5271
+ };
5272
+
5273
+ export type UpdateProviderErrors = {
5274
+ /**
5275
+ * Invalid request
5276
+ */
5277
+ 400: ErrorResponse;
5278
+ /**
5279
+ * Unauthorized
5280
+ */
5281
+ 401: ErrorResponse;
5282
+ /**
5283
+ * Admin required
5284
+ */
5285
+ 403: ErrorResponse;
5286
+ /**
5287
+ * Provider not found
5288
+ */
5289
+ 404: ErrorResponse;
5290
+ };
5291
+
5292
+ export type UpdateProviderError = UpdateProviderErrors[keyof UpdateProviderErrors];
5293
+
5294
+ export type UpdateProviderResponses = {
5295
+ /**
5296
+ * Update CI OIDC provider
5297
+ */
5298
+ 200: CiOidcProviderResponse;
5299
+ };
5300
+
5301
+ export type UpdateProviderResponse = UpdateProviderResponses[keyof UpdateProviderResponses];
5302
+
5303
+ export type ListMappingsData = {
5304
+ body?: never;
5305
+ path: {
5306
+ /**
5307
+ * CI OIDC provider ID
5308
+ */
5309
+ id: string;
5310
+ };
5311
+ query?: never;
5312
+ url: '/api/v1/admin/ci-oidc/{id}/mappings';
5313
+ };
5314
+
5315
+ export type ListMappingsErrors = {
5316
+ /**
5317
+ * Unauthorized
5318
+ */
5319
+ 401: ErrorResponse;
5320
+ /**
5321
+ * Admin required
5322
+ */
5323
+ 403: ErrorResponse;
5324
+ /**
5325
+ * Provider not found
5326
+ */
5327
+ 404: ErrorResponse;
5328
+ };
5329
+
5330
+ export type ListMappingsError = ListMappingsErrors[keyof ListMappingsErrors];
5331
+
5332
+ export type ListMappingsResponses = {
5333
+ /**
5334
+ * List identity mappings for provider
5335
+ */
5336
+ 200: Array<CiOidcMappingResponse>;
5337
+ };
5338
+
5339
+ export type ListMappingsResponse = ListMappingsResponses[keyof ListMappingsResponses];
5340
+
5341
+ export type CreateMappingData = {
5342
+ body: CreateCiOidcMappingRequest;
5343
+ path: {
5344
+ /**
5345
+ * CI OIDC provider ID
5346
+ */
5347
+ id: string;
5348
+ };
5349
+ query?: never;
5350
+ url: '/api/v1/admin/ci-oidc/{id}/mappings';
5351
+ };
5352
+
5353
+ export type CreateMappingErrors = {
5354
+ /**
5355
+ * Invalid request
5356
+ */
5357
+ 400: ErrorResponse;
5358
+ /**
5359
+ * Unauthorized
5360
+ */
5361
+ 401: ErrorResponse;
5362
+ /**
5363
+ * Admin required
5364
+ */
5365
+ 403: ErrorResponse;
5366
+ /**
5367
+ * Provider not found
5368
+ */
5369
+ 404: ErrorResponse;
5370
+ };
5371
+
5372
+ export type CreateMappingError = CreateMappingErrors[keyof CreateMappingErrors];
5373
+
5374
+ export type CreateMappingResponses = {
5375
+ /**
5376
+ * Create identity mapping
5377
+ */
5378
+ 200: CiOidcMappingResponse;
5379
+ };
5380
+
5381
+ export type CreateMappingResponse = CreateMappingResponses[keyof CreateMappingResponses];
4717
5382
 
4718
- export type DeleteBackupData = {
5383
+ export type DeleteMappingData = {
4719
5384
  body?: never;
4720
5385
  path: {
4721
5386
  /**
4722
- * Backup ID
5387
+ * CI OIDC provider ID
4723
5388
  */
4724
5389
  id: string;
5390
+ /**
5391
+ * Identity mapping ID
5392
+ */
5393
+ mid: string;
4725
5394
  };
4726
5395
  query?: never;
4727
- url: '/api/v1/admin/backups/{id}';
5396
+ url: '/api/v1/admin/ci-oidc/{id}/mappings/{mid}';
4728
5397
  };
4729
5398
 
4730
- export type DeleteBackupErrors = {
5399
+ export type DeleteMappingErrors = {
4731
5400
  /**
4732
- * Backup not found
5401
+ * Unauthorized
4733
5402
  */
4734
- 404: unknown;
5403
+ 401: ErrorResponse;
4735
5404
  /**
4736
- * Internal server error
5405
+ * Admin required
4737
5406
  */
4738
- 500: unknown;
5407
+ 403: ErrorResponse;
5408
+ /**
5409
+ * Mapping not found
5410
+ */
5411
+ 404: ErrorResponse;
4739
5412
  };
4740
5413
 
4741
- export type DeleteBackupResponses = {
5414
+ export type DeleteMappingError = DeleteMappingErrors[keyof DeleteMappingErrors];
5415
+
5416
+ export type DeleteMappingResponses = {
4742
5417
  /**
4743
- * Backup deleted
5418
+ * Delete identity mapping
4744
5419
  */
4745
5420
  200: unknown;
4746
5421
  };
4747
5422
 
4748
- export type GetBackupData = {
5423
+ export type GetMappingData = {
4749
5424
  body?: never;
4750
5425
  path: {
4751
5426
  /**
4752
- * Backup ID
5427
+ * CI OIDC provider ID
4753
5428
  */
4754
5429
  id: string;
5430
+ /**
5431
+ * Identity mapping ID
5432
+ */
5433
+ mid: string;
4755
5434
  };
4756
5435
  query?: never;
4757
- url: '/api/v1/admin/backups/{id}';
5436
+ url: '/api/v1/admin/ci-oidc/{id}/mappings/{mid}';
4758
5437
  };
4759
5438
 
4760
- export type GetBackupErrors = {
5439
+ export type GetMappingErrors = {
4761
5440
  /**
4762
- * Backup not found
5441
+ * Unauthorized
4763
5442
  */
4764
- 404: unknown;
5443
+ 401: ErrorResponse;
4765
5444
  /**
4766
- * Internal server error
5445
+ * Admin required
4767
5446
  */
4768
- 500: unknown;
5447
+ 403: ErrorResponse;
5448
+ /**
5449
+ * Mapping not found
5450
+ */
5451
+ 404: ErrorResponse;
4769
5452
  };
4770
5453
 
4771
- export type GetBackupResponses = {
5454
+ export type GetMappingError = GetMappingErrors[keyof GetMappingErrors];
5455
+
5456
+ export type GetMappingResponses = {
4772
5457
  /**
4773
- * Backup details
5458
+ * Get identity mapping
4774
5459
  */
4775
- 200: BackupResponse;
5460
+ 200: CiOidcMappingResponse;
4776
5461
  };
4777
5462
 
4778
- export type GetBackupResponse = GetBackupResponses[keyof GetBackupResponses];
5463
+ export type GetMappingResponse = GetMappingResponses[keyof GetMappingResponses];
4779
5464
 
4780
- export type CancelBackupData = {
4781
- body?: never;
5465
+ export type UpdateMappingData = {
5466
+ body: UpdateCiOidcMappingRequest;
4782
5467
  path: {
4783
5468
  /**
4784
- * Backup ID
5469
+ * CI OIDC provider ID
4785
5470
  */
4786
5471
  id: string;
5472
+ /**
5473
+ * Identity mapping ID
5474
+ */
5475
+ mid: string;
4787
5476
  };
4788
5477
  query?: never;
4789
- url: '/api/v1/admin/backups/{id}/cancel';
5478
+ url: '/api/v1/admin/ci-oidc/{id}/mappings/{mid}';
4790
5479
  };
4791
5480
 
4792
- export type CancelBackupErrors = {
5481
+ export type UpdateMappingErrors = {
4793
5482
  /**
4794
- * Backup not found
5483
+ * Invalid request
4795
5484
  */
4796
- 404: unknown;
5485
+ 400: ErrorResponse;
4797
5486
  /**
4798
- * Backup is not in a cancellable state
5487
+ * Unauthorized
4799
5488
  */
4800
- 409: unknown;
5489
+ 401: ErrorResponse;
4801
5490
  /**
4802
- * Internal server error
5491
+ * Admin required
4803
5492
  */
4804
- 500: unknown;
5493
+ 403: ErrorResponse;
5494
+ /**
5495
+ * Mapping not found
5496
+ */
5497
+ 404: ErrorResponse;
4805
5498
  };
4806
5499
 
4807
- export type CancelBackupResponses = {
5500
+ export type UpdateMappingError = UpdateMappingErrors[keyof UpdateMappingErrors];
5501
+
5502
+ export type UpdateMappingResponses = {
4808
5503
  /**
4809
- * Backup cancelled
5504
+ * Update identity mapping
4810
5505
  */
4811
- 200: unknown;
5506
+ 200: CiOidcMappingResponse;
4812
5507
  };
4813
5508
 
4814
- export type ExecuteBackupData = {
4815
- body?: never;
5509
+ export type UpdateMappingResponse = UpdateMappingResponses[keyof UpdateMappingResponses];
5510
+
5511
+ export type ToggleMappingData = {
5512
+ body: CiOidcToggleRequest;
4816
5513
  path: {
4817
5514
  /**
4818
- * Backup ID
5515
+ * CI OIDC provider ID
4819
5516
  */
4820
5517
  id: string;
5518
+ /**
5519
+ * Identity mapping ID
5520
+ */
5521
+ mid: string;
4821
5522
  };
4822
5523
  query?: never;
4823
- url: '/api/v1/admin/backups/{id}/execute';
5524
+ url: '/api/v1/admin/ci-oidc/{id}/mappings/{mid}/toggle';
4824
5525
  };
4825
5526
 
4826
- export type ExecuteBackupErrors = {
5527
+ export type ToggleMappingErrors = {
4827
5528
  /**
4828
- * Backup not found
5529
+ * Invalid request
4829
5530
  */
4830
- 404: unknown;
5531
+ 400: ErrorResponse;
4831
5532
  /**
4832
- * Internal server error
5533
+ * Unauthorized
4833
5534
  */
4834
- 500: unknown;
5535
+ 401: ErrorResponse;
5536
+ /**
5537
+ * Admin required
5538
+ */
5539
+ 403: ErrorResponse;
5540
+ /**
5541
+ * Mapping not found
5542
+ */
5543
+ 404: ErrorResponse;
4835
5544
  };
4836
5545
 
4837
- export type ExecuteBackupResponses = {
5546
+ export type ToggleMappingError = ToggleMappingErrors[keyof ToggleMappingErrors];
5547
+
5548
+ export type ToggleMappingResponses = {
4838
5549
  /**
4839
- * Backup executed
5550
+ * Toggle identity mapping
4840
5551
  */
4841
- 200: BackupResponse;
5552
+ 200: CiOidcMappingResponse;
4842
5553
  };
4843
5554
 
4844
- export type ExecuteBackupResponse = ExecuteBackupResponses[keyof ExecuteBackupResponses];
5555
+ export type ToggleMappingResponse = ToggleMappingResponses[keyof ToggleMappingResponses];
4845
5556
 
4846
- export type RestoreBackupData = {
4847
- body: RestoreRequest;
5557
+ export type ToggleProviderData = {
5558
+ body: CiOidcToggleRequest;
4848
5559
  path: {
4849
5560
  /**
4850
- * Backup ID
5561
+ * CI OIDC provider ID
4851
5562
  */
4852
5563
  id: string;
4853
5564
  };
4854
5565
  query?: never;
4855
- url: '/api/v1/admin/backups/{id}/restore';
5566
+ url: '/api/v1/admin/ci-oidc/{id}/toggle';
4856
5567
  };
4857
5568
 
4858
- export type RestoreBackupErrors = {
5569
+ export type ToggleProviderErrors = {
4859
5570
  /**
4860
- * Backup not found
5571
+ * Invalid request
4861
5572
  */
4862
- 404: unknown;
5573
+ 400: ErrorResponse;
4863
5574
  /**
4864
- * Internal server error
5575
+ * Unauthorized
4865
5576
  */
4866
- 500: unknown;
5577
+ 401: ErrorResponse;
5578
+ /**
5579
+ * Admin required
5580
+ */
5581
+ 403: ErrorResponse;
5582
+ /**
5583
+ * Provider not found
5584
+ */
5585
+ 404: ErrorResponse;
4867
5586
  };
4868
5587
 
4869
- export type RestoreBackupResponses = {
5588
+ export type ToggleProviderError = ToggleProviderErrors[keyof ToggleProviderErrors];
5589
+
5590
+ export type ToggleProviderResponses = {
4870
5591
  /**
4871
- * Backup restored
5592
+ * Toggle CI OIDC provider
4872
5593
  */
4873
- 200: RestoreResponse;
5594
+ 200: CiOidcProviderResponse;
4874
5595
  };
4875
5596
 
4876
- export type RestoreBackupResponse = RestoreBackupResponses[keyof RestoreBackupResponses];
5597
+ export type ToggleProviderResponse = ToggleProviderResponses[keyof ToggleProviderResponses];
4877
5598
 
4878
5599
  export type RunCleanupData = {
4879
5600
  body: CleanupRequest;
@@ -6510,6 +7231,35 @@ export type GetArtifactStatsResponses = {
6510
7231
 
6511
7232
  export type GetArtifactStatsResponse = GetArtifactStatsResponses[keyof GetArtifactStatsResponses];
6512
7233
 
7234
+ export type ExchangeCiTokenData = {
7235
+ body: CiTokenRequest;
7236
+ path?: never;
7237
+ query?: never;
7238
+ url: '/api/v1/auth/ci/token';
7239
+ };
7240
+
7241
+ export type ExchangeCiTokenErrors = {
7242
+ /**
7243
+ * Invalid CI token or provider configuration
7244
+ */
7245
+ 401: ErrorResponse;
7246
+ /**
7247
+ * CI OIDC provider not found
7248
+ */
7249
+ 404: ErrorResponse;
7250
+ };
7251
+
7252
+ export type ExchangeCiTokenError = ExchangeCiTokenErrors[keyof ExchangeCiTokenErrors];
7253
+
7254
+ export type ExchangeCiTokenResponses = {
7255
+ /**
7256
+ * CI token exchange successful
7257
+ */
7258
+ 200: CiTokenResponse;
7259
+ };
7260
+
7261
+ export type ExchangeCiTokenResponse = ExchangeCiTokenResponses[keyof ExchangeCiTokenResponses];
7262
+
6513
7263
  export type LoginData = {
6514
7264
  body: LoginRequest;
6515
7265
  path?: never;
@@ -6968,6 +7718,13 @@ export type ListBuildsData = {
6968
7718
  url: '/api/v1/builds';
6969
7719
  };
6970
7720
 
7721
+ export type ListBuildsErrors = {
7722
+ /**
7723
+ * Authentication required
7724
+ */
7725
+ 401: unknown;
7726
+ };
7727
+
6971
7728
  export type ListBuildsResponses = {
6972
7729
  /**
6973
7730
  * List of builds
@@ -7010,6 +7767,13 @@ export type GetBuildDiffData = {
7010
7767
  url: '/api/v1/builds/diff';
7011
7768
  };
7012
7769
 
7770
+ export type GetBuildDiffErrors = {
7771
+ /**
7772
+ * Authentication required
7773
+ */
7774
+ 401: unknown;
7775
+ };
7776
+
7013
7777
  export type GetBuildDiffResponses = {
7014
7778
  /**
7015
7779
  * Diff between two builds
@@ -7032,6 +7796,10 @@ export type GetBuildData = {
7032
7796
  };
7033
7797
 
7034
7798
  export type GetBuildErrors = {
7799
+ /**
7800
+ * Authentication required
7801
+ */
7802
+ 401: unknown;
7035
7803
  /**
7036
7804
  * Build not found
7037
7805
  */
@@ -11278,6 +12046,36 @@ export type UpdateRepositoryResponses = {
11278
12046
 
11279
12047
  export type UpdateRepositoryResponse = UpdateRepositoryResponses[keyof UpdateRepositoryResponses];
11280
12048
 
12049
+ export type GetRepoAgeGateData = {
12050
+ body?: never;
12051
+ path: {
12052
+ key: string;
12053
+ };
12054
+ query?: never;
12055
+ url: '/api/v1/repositories/{key}/age-gate';
12056
+ };
12057
+
12058
+ export type GetRepoAgeGateResponses = {
12059
+ 200: AgeGateConfigResponse;
12060
+ };
12061
+
12062
+ export type GetRepoAgeGateResponse = GetRepoAgeGateResponses[keyof GetRepoAgeGateResponses];
12063
+
12064
+ export type UpdateRepoAgeGateData = {
12065
+ body: UpdateAgeGateConfigRequest;
12066
+ path: {
12067
+ key: string;
12068
+ };
12069
+ query?: never;
12070
+ url: '/api/v1/repositories/{key}/age-gate';
12071
+ };
12072
+
12073
+ export type UpdateRepoAgeGateResponses = {
12074
+ 200: AgeGateConfigResponse;
12075
+ };
12076
+
12077
+ export type UpdateRepoAgeGateResponse = UpdateRepoAgeGateResponses[keyof UpdateRepoAgeGateResponses];
12078
+
11281
12079
  export type ListArtifactsData = {
11282
12080
  body?: never;
11283
12081
  path: {
@@ -14701,6 +15499,116 @@ export type CreateUserResponses = {
14701
15499
 
14702
15500
  export type CreateUserResponse2 = CreateUserResponses[keyof CreateUserResponses];
14703
15501
 
15502
+ export type GetCurrentUserRecordData = {
15503
+ body?: never;
15504
+ path?: never;
15505
+ query?: never;
15506
+ url: '/api/v1/users/me';
15507
+ };
15508
+
15509
+ export type GetCurrentUserRecordErrors = {
15510
+ /**
15511
+ * User not found
15512
+ */
15513
+ 404: unknown;
15514
+ };
15515
+
15516
+ export type GetCurrentUserRecordResponses = {
15517
+ /**
15518
+ * The authenticated caller's user record
15519
+ */
15520
+ 200: AdminUserResponse;
15521
+ };
15522
+
15523
+ export type GetCurrentUserRecordResponse = GetCurrentUserRecordResponses[keyof GetCurrentUserRecordResponses];
15524
+
15525
+ export type ChangeCurrentUserPasswordData = {
15526
+ body: ChangePasswordRequest;
15527
+ path?: never;
15528
+ query?: never;
15529
+ url: '/api/v1/users/me/password';
15530
+ };
15531
+
15532
+ export type ChangeCurrentUserPasswordErrors = {
15533
+ /**
15534
+ * Current password is incorrect
15535
+ */
15536
+ 401: unknown;
15537
+ /**
15538
+ * User not found
15539
+ */
15540
+ 404: unknown;
15541
+ /**
15542
+ * Validation error
15543
+ */
15544
+ 422: unknown;
15545
+ };
15546
+
15547
+ export type ChangeCurrentUserPasswordResponses = {
15548
+ /**
15549
+ * Password changed successfully
15550
+ */
15551
+ 200: unknown;
15552
+ };
15553
+
15554
+ export type ListCurrentUserTokensData = {
15555
+ body?: never;
15556
+ path?: never;
15557
+ query?: never;
15558
+ url: '/api/v1/users/me/tokens';
15559
+ };
15560
+
15561
+ export type ListCurrentUserTokensResponses = {
15562
+ /**
15563
+ * List of the caller's API tokens
15564
+ */
15565
+ 200: ApiTokenListResponse;
15566
+ };
15567
+
15568
+ export type ListCurrentUserTokensResponse = ListCurrentUserTokensResponses[keyof ListCurrentUserTokensResponses];
15569
+
15570
+ export type CreateCurrentUserApiTokenData = {
15571
+ body: CreateApiTokenRequest;
15572
+ path?: never;
15573
+ query?: never;
15574
+ url: '/api/v1/users/me/tokens';
15575
+ };
15576
+
15577
+ export type CreateCurrentUserApiTokenErrors = {
15578
+ /**
15579
+ * Requested scopes require administrator privileges
15580
+ */
15581
+ 403: unknown;
15582
+ };
15583
+
15584
+ export type CreateCurrentUserApiTokenResponses = {
15585
+ /**
15586
+ * API token created successfully
15587
+ */
15588
+ 200: ApiTokenCreatedResponse;
15589
+ };
15590
+
15591
+ export type CreateCurrentUserApiTokenResponse = CreateCurrentUserApiTokenResponses[keyof CreateCurrentUserApiTokenResponses];
15592
+
15593
+ export type RevokeCurrentUserApiTokenData = {
15594
+ body?: never;
15595
+ path: {
15596
+ /**
15597
+ * API token ID
15598
+ */
15599
+ token_id: string;
15600
+ };
15601
+ query?: never;
15602
+ url: '/api/v1/users/me/tokens/{token_id}';
15603
+ };
15604
+
15605
+ export type RevokeCurrentUserApiTokenResponses = {
15606
+ /**
15607
+ * API token revoked successfully
15608
+ */
15609
+ 200: unknown;
15610
+ };
15611
+
14704
15612
  export type DeleteUserData = {
14705
15613
  body?: never;
14706
15614
  path: {