@oore/client 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/generated/@tanstack/react-query.gen.d.ts +165 -1
  2. package/dist/generated/@tanstack/react-query.gen.js +187 -1
  3. package/dist/generated/msw.gen.d.ts +117 -1
  4. package/dist/generated/msw.gen.js +184 -0
  5. package/dist/generated/sdk.gen.d.ts +52 -1
  6. package/dist/generated/sdk.gen.js +111 -0
  7. package/dist/generated/types.gen.d.ts +455 -0
  8. package/dist/generated/valibot/v-approve-promotion-body.d.ts +4 -0
  9. package/dist/generated/valibot/v-approve-promotion-body.js +4 -0
  10. package/dist/generated/valibot/v-approve-promotion-path.d.ts +5 -0
  11. package/dist/generated/valibot/v-approve-promotion-path.js +6 -0
  12. package/dist/generated/valibot/v-approve-promotion-response.d.ts +25 -0
  13. package/dist/generated/valibot/v-approve-promotion-response.js +3 -0
  14. package/dist/generated/valibot/v-approve-release-response.d.ts +3 -0
  15. package/dist/generated/valibot/v-artifact-size-comparison.d.ts +10 -0
  16. package/dist/generated/valibot/v-artifact-size-comparison.js +24 -0
  17. package/dist/generated/valibot/v-build-size-baseline.d.ts +6 -0
  18. package/dist/generated/valibot/v-build-size-baseline.js +11 -0
  19. package/dist/generated/valibot/v-build-size-report.d.ts +18 -0
  20. package/dist/generated/valibot/v-build-size-report.js +9 -0
  21. package/dist/generated/valibot/v-complete-release-response.d.ts +3 -0
  22. package/dist/generated/valibot/v-create-project-environment-body.d.ts +14 -0
  23. package/dist/generated/valibot/v-create-project-environment-body.js +3 -0
  24. package/dist/generated/valibot/v-create-project-environment-path.d.ts +4 -0
  25. package/dist/generated/valibot/v-create-project-environment-path.js +5 -0
  26. package/dist/generated/valibot/v-create-project-environment-request.d.ts +14 -0
  27. package/dist/generated/valibot/v-create-project-environment-request.js +12 -0
  28. package/dist/generated/valibot/v-create-project-environment-response.d.ts +56 -0
  29. package/dist/generated/valibot/v-create-project-environment-response.js +3 -0
  30. package/dist/generated/valibot/v-create-promotion-request.d.ts +6 -0
  31. package/dist/generated/valibot/v-create-promotion-request.js +7 -0
  32. package/dist/generated/valibot/v-create-release-response.d.ts +3 -0
  33. package/dist/generated/valibot/v-delete-project-environment-path.d.ts +5 -0
  34. package/dist/generated/valibot/v-delete-project-environment-path.js +6 -0
  35. package/dist/generated/valibot/v-delete-project-environment-response.d.ts +4 -0
  36. package/dist/generated/valibot/v-delete-project-environment-response.js +3 -0
  37. package/dist/generated/valibot/v-environment-promotion.d.ts +25 -0
  38. package/dist/generated/valibot/v-environment-promotion.js +47 -0
  39. package/dist/generated/valibot/v-get-build-size-report-path.d.ts +4 -0
  40. package/dist/generated/valibot/v-get-build-size-report-path.js +5 -0
  41. package/dist/generated/valibot/v-get-build-size-report-response.d.ts +18 -0
  42. package/dist/generated/valibot/v-get-build-size-report-response.js +3 -0
  43. package/dist/generated/valibot/v-get-release-response.d.ts +3 -0
  44. package/dist/generated/valibot/v-halt-release-response.d.ts +3 -0
  45. package/dist/generated/valibot/v-list-project-environments-path.d.ts +4 -0
  46. package/dist/generated/valibot/v-list-project-environments-path.js +5 -0
  47. package/dist/generated/valibot/v-list-project-environments-response.d.ts +82 -0
  48. package/dist/generated/valibot/v-list-project-environments-response.js +8 -0
  49. package/dist/generated/valibot/v-list-project-environments-response2.d.ts +82 -0
  50. package/dist/generated/valibot/v-list-project-environments-response2.js +3 -0
  51. package/dist/generated/valibot/v-list-releases-response.d.ts +3 -0
  52. package/dist/generated/valibot/v-list-releases-response2.d.ts +3 -0
  53. package/dist/generated/valibot/v-pause-release-response.d.ts +3 -0
  54. package/dist/generated/valibot/v-project-environment.d.ts +56 -0
  55. package/dist/generated/valibot/v-project-environment.js +32 -0
  56. package/dist/generated/valibot/v-promote-build-body.d.ts +6 -0
  57. package/dist/generated/valibot/v-promote-build-body.js +3 -0
  58. package/dist/generated/valibot/v-promote-build-path.d.ts +4 -0
  59. package/dist/generated/valibot/v-promote-build-path.js +5 -0
  60. package/dist/generated/valibot/v-promote-build-response.d.ts +25 -0
  61. package/dist/generated/valibot/v-promote-build-response.js +3 -0
  62. package/dist/generated/valibot/v-promotion-decision-request.d.ts +4 -0
  63. package/dist/generated/valibot/v-promotion-decision-request.js +5 -0
  64. package/dist/generated/valibot/v-promotion-state.d.ts +2 -0
  65. package/dist/generated/valibot/v-promotion-state.js +9 -0
  66. package/dist/generated/valibot/v-raise-release-response.d.ts +3 -0
  67. package/dist/generated/valibot/v-reject-promotion-body.d.ts +4 -0
  68. package/dist/generated/valibot/v-reject-promotion-body.js +4 -0
  69. package/dist/generated/valibot/v-reject-promotion-path.d.ts +5 -0
  70. package/dist/generated/valibot/v-reject-promotion-path.js +6 -0
  71. package/dist/generated/valibot/v-reject-promotion-response.d.ts +25 -0
  72. package/dist/generated/valibot/v-reject-promotion-response.js +3 -0
  73. package/dist/generated/valibot/v-release-detail-response.d.ts +3 -0
  74. package/dist/generated/valibot/v-release.d.ts +3 -0
  75. package/dist/generated/valibot/v-release.js +3 -0
  76. package/dist/generated/valibot/v-resume-release-response.d.ts +3 -0
  77. package/dist/generated/valibot/v-update-project-environment-body.d.ts +13 -0
  78. package/dist/generated/valibot/v-update-project-environment-body.js +3 -0
  79. package/dist/generated/valibot/v-update-project-environment-path.d.ts +5 -0
  80. package/dist/generated/valibot/v-update-project-environment-path.js +6 -0
  81. package/dist/generated/valibot/v-update-project-environment-request.d.ts +13 -0
  82. package/dist/generated/valibot/v-update-project-environment-request.js +14 -0
  83. package/dist/generated/valibot/v-update-project-environment-response.d.ts +56 -0
  84. package/dist/generated/valibot/v-update-project-environment-response.js +3 -0
  85. package/dist/msw.d.ts +2 -2
  86. package/dist/msw.js +1 -1
  87. package/dist/react-query.d.ts +1 -1
  88. package/dist/react-query.js +1 -1
  89. package/dist/valibot.d.ts +32 -0
  90. package/dist/valibot.js +32 -0
  91. package/openapi/openapi.json +1254 -142
  92. package/package.json +1 -1
@@ -554,6 +554,20 @@ export const retryBuildStep = (options) => options.client.post({
554
554
  ...options.headers
555
555
  }
556
556
  });
557
+ /**
558
+ * Get build artifact sizes
559
+ *
560
+ * Returns the size of each artifact the build published and its change
561
+ * from the latest earlier successful build of the same pipeline on the
562
+ * base branch: a pull request's target branch, otherwise the project's
563
+ * default branch.
564
+ */
565
+ export const getBuildSizeReport = (options) => options.client.get({
566
+ responseStyle: 'data',
567
+ security: [{ scheme: 'bearer', type: 'http' }],
568
+ url: '/v1/builds/{build_id}/sizes',
569
+ ...options
570
+ });
557
571
  /**
558
572
  * Create stream token
559
573
  *
@@ -1226,6 +1240,58 @@ export const previewBuildChangelog = (options) => options.client.get({
1226
1240
  url: '/v1/projects/{project_id}/builds/changelog-preview',
1227
1241
  ...options
1228
1242
  });
1243
+ /**
1244
+ * List project environments
1245
+ *
1246
+ * Environments in promotion order, each with its newest release, plus pending promotions and the most recent decided ones.
1247
+ */
1248
+ export const listProjectEnvironments = (options) => options.client.get({
1249
+ responseStyle: 'data',
1250
+ security: [{ scheme: 'bearer', type: 'http' }],
1251
+ url: '/v1/projects/{project_id}/environments',
1252
+ ...options
1253
+ });
1254
+ /**
1255
+ * Create environment
1256
+ *
1257
+ * Adds an environment at the end of the promotion path. Requires the project maintainer role. A release recorded on the environment's store and track belongs to it.
1258
+ */
1259
+ export const createProjectEnvironment = (options) => options.client.post({
1260
+ responseStyle: 'data',
1261
+ security: [{ scheme: 'bearer', type: 'http' }],
1262
+ url: '/v1/projects/{project_id}/environments',
1263
+ ...options,
1264
+ headers: {
1265
+ 'Content-Type': 'application/json',
1266
+ ...options.headers
1267
+ }
1268
+ });
1269
+ /**
1270
+ * Delete environment
1271
+ *
1272
+ * Its releases stay without an environment; its promotions are removed. Requires the project maintainer role.
1273
+ */
1274
+ export const deleteProjectEnvironment = (options) => options.client.delete({
1275
+ responseStyle: 'data',
1276
+ security: [{ scheme: 'bearer', type: 'http' }],
1277
+ url: '/v1/projects/{project_id}/environments/{environment_id}',
1278
+ ...options
1279
+ });
1280
+ /**
1281
+ * Update environment
1282
+ *
1283
+ * Changes the name, track, approval rule, rollout policy or position. Requires the project maintainer role.
1284
+ */
1285
+ export const updateProjectEnvironment = (options) => options.client.patch({
1286
+ responseStyle: 'data',
1287
+ security: [{ scheme: 'bearer', type: 'http' }],
1288
+ url: '/v1/projects/{project_id}/environments/{environment_id}',
1289
+ ...options,
1290
+ headers: {
1291
+ 'Content-Type': 'application/json',
1292
+ ...options.headers
1293
+ }
1294
+ });
1229
1295
  /**
1230
1296
  * List project members
1231
1297
  */
@@ -1301,6 +1367,51 @@ export const createPipeline = (options) => options.client.post({
1301
1367
  ...options.headers
1302
1368
  }
1303
1369
  });
1370
+ /**
1371
+ * Promote build
1372
+ *
1373
+ * Puts the version a build's live Google Play release already uploaded on the environment's track and records a release with the environment's rollout policy. Nothing is rebuilt. Promoting straight in requires the maintainer role; when the environment requires approval, a developer may ask and the promotion waits as `pending` without touching the store. Writes an audit log entry.
1374
+ */
1375
+ export const promoteBuild = (options) => options.client.post({
1376
+ responseStyle: 'data',
1377
+ security: [{ scheme: 'bearer', type: 'http' }],
1378
+ url: '/v1/projects/{project_id}/promotions',
1379
+ ...options,
1380
+ headers: {
1381
+ 'Content-Type': 'application/json',
1382
+ ...options.headers
1383
+ }
1384
+ });
1385
+ /**
1386
+ * Approve promotion
1387
+ *
1388
+ * Approves a pending promotion and makes the store change as the approver. Requires the maintainer role. Writes an audit log entry.
1389
+ */
1390
+ export const approvePromotion = (options) => options.client.post({
1391
+ responseStyle: 'data',
1392
+ security: [{ scheme: 'bearer', type: 'http' }],
1393
+ url: '/v1/projects/{project_id}/promotions/{promotion_id}/approve',
1394
+ ...options,
1395
+ headers: {
1396
+ 'Content-Type': 'application/json',
1397
+ ...options.headers
1398
+ }
1399
+ });
1400
+ /**
1401
+ * Reject promotion
1402
+ *
1403
+ * Rejects a pending promotion; nothing changes at the store. Requires the maintainer role. Writes an audit log entry.
1404
+ */
1405
+ export const rejectPromotion = (options) => options.client.post({
1406
+ responseStyle: 'data',
1407
+ security: [{ scheme: 'bearer', type: 'http' }],
1408
+ url: '/v1/projects/{project_id}/promotions/{promotion_id}/reject',
1409
+ ...options,
1410
+ headers: {
1411
+ 'Content-Type': 'application/json',
1412
+ ...options.headers
1413
+ }
1414
+ });
1304
1415
  /**
1305
1416
  * Discover repository-owned workflows
1306
1417
  *
@@ -170,6 +170,24 @@ export type ArtifactInstallLinkResponse = {
170
170
  platform: ArtifactInstallPlatform;
171
171
  };
172
172
  export type ArtifactInstallPlatform = 'android' | 'ios';
173
+ /**
174
+ * One artifact's size, and its change from the matching baseline artifact.
175
+ */
176
+ export type ArtifactSizeComparison = {
177
+ artifact_id: string;
178
+ artifact_type: ArtifactType;
179
+ /**
180
+ * Name of the baseline artifact this one was matched with.
181
+ */
182
+ baseline_name?: string | null;
183
+ baseline_size_bytes?: number | null;
184
+ /**
185
+ * `size_bytes - baseline_size_bytes`; absent when nothing matched.
186
+ */
187
+ delta_bytes?: number | null;
188
+ name: string;
189
+ size_bytes: number;
190
+ };
173
191
  export type ArtifactStorageProvider = 'disabled' | 'local' | 's3' | 'r2';
174
192
  export type ArtifactStorageSettings = {
175
193
  has_access_key_id: boolean;
@@ -447,6 +465,23 @@ export type BuildQueueSnapshot = {
447
465
  */
448
466
  waiting: number;
449
467
  };
468
+ /**
469
+ * The earlier build a size report compares against.
470
+ */
471
+ export type BuildSizeBaseline = {
472
+ branch: string;
473
+ build_id: string;
474
+ build_number: number;
475
+ };
476
+ export type BuildSizeReport = {
477
+ artifacts: Array<ArtifactSizeComparison>;
478
+ /**
479
+ * Branch the build is compared with: a pull request's target branch,
480
+ * otherwise the project's default branch. Absent when neither is known.
481
+ */
482
+ base_branch?: string | null;
483
+ baseline?: null | BuildSizeBaseline;
484
+ };
450
485
  export type BuildStatus = 'queued' | 'scheduled' | 'assigned' | 'running' | 'succeeded' | 'failed' | 'canceled' | 'timed_out' | 'expired';
451
486
  export type BuildTestFailure = {
452
487
  duration_ms?: number | null;
@@ -661,6 +696,14 @@ export type CreatePipelineRequest = {
661
696
  export type CreatePipelineResponse = {
662
697
  pipeline: Pipeline;
663
698
  };
699
+ export type CreateProjectEnvironmentRequest = {
700
+ approval_required?: boolean;
701
+ key: string;
702
+ name: string;
703
+ rollout_policy?: null | ReleasePolicy;
704
+ store: ReleaseStore;
705
+ track: string;
706
+ };
664
707
  export type CreateProjectRequest = {
665
708
  default_branch?: string | null;
666
709
  description?: string | null;
@@ -671,6 +714,14 @@ export type CreateProjectRequest = {
671
714
  export type CreateProjectResponse = {
672
715
  project: Project;
673
716
  };
717
+ export type CreatePromotionRequest = {
718
+ build_id: string;
719
+ /**
720
+ * The environment to promote into.
721
+ */
722
+ environment_id: string;
723
+ reason?: string | null;
724
+ };
674
725
  export type CreateReleaseRequest = {
675
726
  artifact_id?: string | null;
676
727
  build_id: string;
@@ -741,6 +792,48 @@ export type EffectiveProjectRetentionResponse = {
741
792
  has_override: boolean;
742
793
  override_fields?: null | ProjectRetentionOverride;
743
794
  };
795
+ /**
796
+ * A request to put an existing build into an environment.
797
+ */
798
+ export type EnvironmentPromotion = {
799
+ build_id: string;
800
+ build_number?: number | null;
801
+ /**
802
+ * Whether the caller may approve or reject this promotion now.
803
+ */
804
+ can_decide: boolean;
805
+ created_at: number;
806
+ decided_at?: number | null;
807
+ decided_by_email?: string | null;
808
+ decision_reason?: string | null;
809
+ environment_id: string;
810
+ environment_name: string;
811
+ /**
812
+ * Why the promotion failed.
813
+ */
814
+ error?: string | null;
815
+ id: string;
816
+ project_id: string;
817
+ reason?: string | null;
818
+ /**
819
+ * The release the promotion created, once completed.
820
+ */
821
+ release_id?: string | null;
822
+ requested_by_email?: string | null;
823
+ /**
824
+ * Where the source release was, when it belongs to an environment.
825
+ */
826
+ source_environment_name?: string | null;
827
+ /**
828
+ * The release the build is promoted from.
829
+ */
830
+ source_release_id: string;
831
+ source_track: string;
832
+ state: PromotionState;
833
+ updated_at: number;
834
+ version_code?: number | null;
835
+ version_name?: string | null;
836
+ };
744
837
  /**
745
838
  * `ready` event, the first event on every `GET /v1/events` connection.
746
839
  * Clients refetch once on `ready` after a reconnect, since events sent while
@@ -1121,6 +1214,16 @@ export type ListPipelinesResponse = {
1121
1214
  pipelines: Array<Pipeline>;
1122
1215
  total: number;
1123
1216
  };
1217
+ export type ListProjectEnvironmentsResponse = {
1218
+ /**
1219
+ * Environments in promotion order.
1220
+ */
1221
+ environments: Array<ProjectEnvironment>;
1222
+ /**
1223
+ * Pending promotions and the most recent decided ones, newest first.
1224
+ */
1225
+ promotions: Array<EnvironmentPromotion>;
1226
+ };
1124
1227
  export type ListProjectMemberCandidatesResponse = {
1125
1228
  candidates: Array<ProjectMemberCandidate>;
1126
1229
  };
@@ -1442,6 +1545,48 @@ export type ProjectDetailResponse = {
1442
1545
  pipeline_count: number;
1443
1546
  project: Project;
1444
1547
  };
1548
+ /**
1549
+ * A release environment on a project, such as `internal` or `production`,
1550
+ * with its store target, rollout policy and approval rule.
1551
+ */
1552
+ export type ProjectEnvironment = {
1553
+ /**
1554
+ * A promotion into this environment waits for a maintainer's approval
1555
+ * before anything changes at the store.
1556
+ */
1557
+ approval_required: boolean;
1558
+ created_at: number;
1559
+ id: string;
1560
+ /**
1561
+ * Stable identifier, unique in the project: lowercase letters, digits
1562
+ * and dashes, starting with a letter.
1563
+ */
1564
+ key: string;
1565
+ latest_release?: null | Release;
1566
+ name: string;
1567
+ /**
1568
+ * Order on the promotion path, lowest first.
1569
+ */
1570
+ position: number;
1571
+ project_id: string;
1572
+ /**
1573
+ * Whether builds can be promoted into this environment. App Store
1574
+ * environments only group the releases that uploads record for now.
1575
+ */
1576
+ promotable: boolean;
1577
+ /**
1578
+ * Staged rollout policy for releases promoted into this environment.
1579
+ * Its `approval` is always `none`; use `approval_required`.
1580
+ */
1581
+ rollout_policy: ReleasePolicy;
1582
+ store: ReleaseStore;
1583
+ /**
1584
+ * Play track (`internal`, `closed`, `open`, `production` or a custom
1585
+ * track), or the App Store release track a store upload records.
1586
+ */
1587
+ track: string;
1588
+ updated_at: number;
1589
+ };
1445
1590
  export type ProjectMember = {
1446
1591
  created_at: number;
1447
1592
  id: string;
@@ -1473,6 +1618,10 @@ export type ProjectRetentionOverride = {
1473
1618
  updated_at?: number | null;
1474
1619
  };
1475
1620
  export type ProjectRole = 'maintainer' | 'developer' | 'viewer';
1621
+ export type PromotionDecisionRequest = {
1622
+ reason?: string | null;
1623
+ };
1624
+ export type PromotionState = 'pending' | 'promoting' | 'completed' | 'rejected' | 'failed';
1476
1625
  export type PublishStore = 'google_play' | 'app_store';
1477
1626
  export type ReEnableUserResponse = {
1478
1627
  user: User;
@@ -1539,6 +1688,12 @@ export type Release = {
1539
1688
  crash_rate?: number | null;
1540
1689
  crash_rate_threshold?: number | null;
1541
1690
  created_at: number;
1691
+ /**
1692
+ * The project environment this release belongs to. Absent for projects
1693
+ * without environments.
1694
+ */
1695
+ environment_id?: string | null;
1696
+ environment_name?: string | null;
1542
1697
  health: ReleaseHealth;
1543
1698
  id: string;
1544
1699
  next_fraction?: number | null;
@@ -1551,6 +1706,10 @@ export type Release = {
1551
1706
  policy: ReleasePolicy;
1552
1707
  project_id: string;
1553
1708
  project_name?: string | null;
1709
+ /**
1710
+ * The release this one was promoted from, without a new build.
1711
+ */
1712
+ promoted_from_release_id?: string | null;
1554
1713
  /**
1555
1714
  * Fraction of users, 0..1.
1556
1715
  */
@@ -2390,6 +2549,16 @@ export type UpdatePipelineRequest = {
2390
2549
  timeout_minutes?: number | null;
2391
2550
  trigger_config?: null | TriggerConfig;
2392
2551
  };
2552
+ /**
2553
+ * Changes to an environment. The key and store are fixed once created.
2554
+ */
2555
+ export type UpdateProjectEnvironmentRequest = {
2556
+ approval_required?: boolean | null;
2557
+ name?: string | null;
2558
+ position?: number | null;
2559
+ rollout_policy?: null | ReleasePolicy;
2560
+ track?: string | null;
2561
+ };
2393
2562
  export type UpdateProjectMemberRequest = {
2394
2563
  role: ProjectRole;
2395
2564
  };
@@ -3884,6 +4053,31 @@ export type RetryBuildStepResponses = {
3884
4053
  201: RerunBuildResponse;
3885
4054
  };
3886
4055
  export type RetryBuildStepResponse = RetryBuildStepResponses[keyof RetryBuildStepResponses];
4056
+ export type GetBuildSizeReportData = {
4057
+ body?: never;
4058
+ path: {
4059
+ /**
4060
+ * Build ID
4061
+ */
4062
+ build_id: string;
4063
+ };
4064
+ query?: never;
4065
+ url: '/v1/builds/{build_id}/sizes';
4066
+ };
4067
+ export type GetBuildSizeReportErrors = {
4068
+ /**
4069
+ * Build not found
4070
+ */
4071
+ 404: ApiError;
4072
+ };
4073
+ export type GetBuildSizeReportError = GetBuildSizeReportErrors[keyof GetBuildSizeReportErrors];
4074
+ export type GetBuildSizeReportResponses = {
4075
+ /**
4076
+ * Artifact sizes and changes
4077
+ */
4078
+ 200: BuildSizeReport;
4079
+ };
4080
+ export type GetBuildSizeReportResponse = GetBuildSizeReportResponses[keyof GetBuildSizeReportResponses];
3887
4081
  export type CreateStreamTokenData = {
3888
4082
  body?: never;
3889
4083
  path: {
@@ -5407,6 +5601,146 @@ export type PreviewBuildChangelogResponses = {
5407
5601
  200: BuildChangelogPreviewResponse;
5408
5602
  };
5409
5603
  export type PreviewBuildChangelogResponse = PreviewBuildChangelogResponses[keyof PreviewBuildChangelogResponses];
5604
+ export type ListProjectEnvironmentsData = {
5605
+ body?: never;
5606
+ path: {
5607
+ /**
5608
+ * Project ID
5609
+ */
5610
+ project_id: string;
5611
+ };
5612
+ query?: never;
5613
+ url: '/v1/projects/{project_id}/environments';
5614
+ };
5615
+ export type ListProjectEnvironmentsErrors = {
5616
+ /**
5617
+ * Project not found
5618
+ */
5619
+ 404: ApiError;
5620
+ };
5621
+ export type ListProjectEnvironmentsError = ListProjectEnvironmentsErrors[keyof ListProjectEnvironmentsErrors];
5622
+ export type ListProjectEnvironmentsResponses = {
5623
+ /**
5624
+ * Environments and promotions
5625
+ */
5626
+ 200: ListProjectEnvironmentsResponse;
5627
+ };
5628
+ export type ListProjectEnvironmentsResponse2 = ListProjectEnvironmentsResponses[keyof ListProjectEnvironmentsResponses];
5629
+ export type CreateProjectEnvironmentData = {
5630
+ body: CreateProjectEnvironmentRequest;
5631
+ path: {
5632
+ /**
5633
+ * Project ID
5634
+ */
5635
+ project_id: string;
5636
+ };
5637
+ query?: never;
5638
+ url: '/v1/projects/{project_id}/environments';
5639
+ };
5640
+ export type CreateProjectEnvironmentErrors = {
5641
+ /**
5642
+ * Invalid input
5643
+ */
5644
+ 400: ApiError;
5645
+ /**
5646
+ * Permission denied
5647
+ */
5648
+ 403: ApiError;
5649
+ /**
5650
+ * Project not found
5651
+ */
5652
+ 404: ApiError;
5653
+ /**
5654
+ * Key, or store and track, already used
5655
+ */
5656
+ 409: ApiError;
5657
+ };
5658
+ export type CreateProjectEnvironmentError = CreateProjectEnvironmentErrors[keyof CreateProjectEnvironmentErrors];
5659
+ export type CreateProjectEnvironmentResponses = {
5660
+ /**
5661
+ * Created environment
5662
+ */
5663
+ 200: ProjectEnvironment;
5664
+ };
5665
+ export type CreateProjectEnvironmentResponse = CreateProjectEnvironmentResponses[keyof CreateProjectEnvironmentResponses];
5666
+ export type DeleteProjectEnvironmentData = {
5667
+ body?: never;
5668
+ path: {
5669
+ /**
5670
+ * Project ID
5671
+ */
5672
+ project_id: string;
5673
+ /**
5674
+ * Environment ID
5675
+ */
5676
+ environment_id: string;
5677
+ };
5678
+ query?: never;
5679
+ url: '/v1/projects/{project_id}/environments/{environment_id}';
5680
+ };
5681
+ export type DeleteProjectEnvironmentErrors = {
5682
+ /**
5683
+ * Permission denied
5684
+ */
5685
+ 403: ApiError;
5686
+ /**
5687
+ * Not found
5688
+ */
5689
+ 404: ApiError;
5690
+ /**
5691
+ * A promotion is in progress
5692
+ */
5693
+ 409: ApiError;
5694
+ };
5695
+ export type DeleteProjectEnvironmentError = DeleteProjectEnvironmentErrors[keyof DeleteProjectEnvironmentErrors];
5696
+ export type DeleteProjectEnvironmentResponses = {
5697
+ /**
5698
+ * Deleted
5699
+ */
5700
+ 200: OkResponse;
5701
+ };
5702
+ export type DeleteProjectEnvironmentResponse = DeleteProjectEnvironmentResponses[keyof DeleteProjectEnvironmentResponses];
5703
+ export type UpdateProjectEnvironmentData = {
5704
+ body: UpdateProjectEnvironmentRequest;
5705
+ path: {
5706
+ /**
5707
+ * Project ID
5708
+ */
5709
+ project_id: string;
5710
+ /**
5711
+ * Environment ID
5712
+ */
5713
+ environment_id: string;
5714
+ };
5715
+ query?: never;
5716
+ url: '/v1/projects/{project_id}/environments/{environment_id}';
5717
+ };
5718
+ export type UpdateProjectEnvironmentErrors = {
5719
+ /**
5720
+ * Invalid input
5721
+ */
5722
+ 400: ApiError;
5723
+ /**
5724
+ * Permission denied
5725
+ */
5726
+ 403: ApiError;
5727
+ /**
5728
+ * Not found
5729
+ */
5730
+ 404: ApiError;
5731
+ /**
5732
+ * Store and track already used
5733
+ */
5734
+ 409: ApiError;
5735
+ };
5736
+ export type UpdateProjectEnvironmentError = UpdateProjectEnvironmentErrors[keyof UpdateProjectEnvironmentErrors];
5737
+ export type UpdateProjectEnvironmentResponses = {
5738
+ /**
5739
+ * Updated environment
5740
+ */
5741
+ 200: ProjectEnvironment;
5742
+ };
5743
+ export type UpdateProjectEnvironmentResponse = UpdateProjectEnvironmentResponses[keyof UpdateProjectEnvironmentResponses];
5410
5744
  export type ListProjectMembersData = {
5411
5745
  body?: never;
5412
5746
  path: {
@@ -5623,6 +5957,127 @@ export type CreatePipelineResponses = {
5623
5957
  201: CreatePipelineResponse;
5624
5958
  };
5625
5959
  export type CreatePipelineResponse2 = CreatePipelineResponses[keyof CreatePipelineResponses];
5960
+ export type PromoteBuildData = {
5961
+ body: CreatePromotionRequest;
5962
+ path: {
5963
+ /**
5964
+ * Project ID
5965
+ */
5966
+ project_id: string;
5967
+ };
5968
+ query?: never;
5969
+ url: '/v1/projects/{project_id}/promotions';
5970
+ };
5971
+ export type PromoteBuildErrors = {
5972
+ /**
5973
+ * Permission denied
5974
+ */
5975
+ 403: ApiError;
5976
+ /**
5977
+ * Project, environment or build not found
5978
+ */
5979
+ 404: ApiError;
5980
+ /**
5981
+ * Already in the environment, pending, unsupported store, or no live release to promote
5982
+ */
5983
+ 409: ApiError;
5984
+ /**
5985
+ * The store rejected the promotion
5986
+ */
5987
+ 502: ApiError;
5988
+ };
5989
+ export type PromoteBuildError = PromoteBuildErrors[keyof PromoteBuildErrors];
5990
+ export type PromoteBuildResponses = {
5991
+ /**
5992
+ * The promotion, completed or pending
5993
+ */
5994
+ 200: EnvironmentPromotion;
5995
+ };
5996
+ export type PromoteBuildResponse = PromoteBuildResponses[keyof PromoteBuildResponses];
5997
+ export type ApprovePromotionData = {
5998
+ /**
5999
+ * Optional reason
6000
+ */
6001
+ body?: null | PromotionDecisionRequest;
6002
+ path: {
6003
+ /**
6004
+ * Project ID
6005
+ */
6006
+ project_id: string;
6007
+ /**
6008
+ * Promotion ID
6009
+ */
6010
+ promotion_id: string;
6011
+ };
6012
+ query?: never;
6013
+ url: '/v1/projects/{project_id}/promotions/{promotion_id}/approve';
6014
+ };
6015
+ export type ApprovePromotionErrors = {
6016
+ /**
6017
+ * Permission denied
6018
+ */
6019
+ 403: ApiError;
6020
+ /**
6021
+ * Not found
6022
+ */
6023
+ 404: ApiError;
6024
+ /**
6025
+ * Not pending, or the build changed while it waited
6026
+ */
6027
+ 409: ApiError;
6028
+ /**
6029
+ * The store rejected the promotion
6030
+ */
6031
+ 502: ApiError;
6032
+ };
6033
+ export type ApprovePromotionError = ApprovePromotionErrors[keyof ApprovePromotionErrors];
6034
+ export type ApprovePromotionResponses = {
6035
+ /**
6036
+ * Completed promotion
6037
+ */
6038
+ 200: EnvironmentPromotion;
6039
+ };
6040
+ export type ApprovePromotionResponse = ApprovePromotionResponses[keyof ApprovePromotionResponses];
6041
+ export type RejectPromotionData = {
6042
+ /**
6043
+ * Optional reason
6044
+ */
6045
+ body?: null | PromotionDecisionRequest;
6046
+ path: {
6047
+ /**
6048
+ * Project ID
6049
+ */
6050
+ project_id: string;
6051
+ /**
6052
+ * Promotion ID
6053
+ */
6054
+ promotion_id: string;
6055
+ };
6056
+ query?: never;
6057
+ url: '/v1/projects/{project_id}/promotions/{promotion_id}/reject';
6058
+ };
6059
+ export type RejectPromotionErrors = {
6060
+ /**
6061
+ * Permission denied
6062
+ */
6063
+ 403: ApiError;
6064
+ /**
6065
+ * Not found
6066
+ */
6067
+ 404: ApiError;
6068
+ /**
6069
+ * Not pending
6070
+ */
6071
+ 409: ApiError;
6072
+ };
6073
+ export type RejectPromotionError = RejectPromotionErrors[keyof RejectPromotionErrors];
6074
+ export type RejectPromotionResponses = {
6075
+ /**
6076
+ * Rejected promotion
6077
+ */
6078
+ 200: EnvironmentPromotion;
6079
+ };
6080
+ export type RejectPromotionResponse = RejectPromotionResponses[keyof RejectPromotionResponses];
5626
6081
  export type DiscoverRepositoryWorkflowsData = {
5627
6082
  body?: never;
5628
6083
  path: {
@@ -0,0 +1,4 @@
1
+ import * as v from 'valibot';
2
+ export declare const vApprovePromotionBody: v.NullableSchema<v.ObjectSchema<{
3
+ readonly reason: v.NullishSchema<v.StringSchema<undefined>, undefined>;
4
+ }, undefined>, undefined>;
@@ -0,0 +1,4 @@
1
+ // Generated by scripts/generate-valibot-modules.ts. Do not edit.
2
+ import * as v from 'valibot';
3
+ import { vPromotionDecisionRequest } from './v-promotion-decision-request.js';
4
+ export const vApprovePromotionBody = v.nullable(vPromotionDecisionRequest);
@@ -0,0 +1,5 @@
1
+ import * as v from 'valibot';
2
+ export declare const vApprovePromotionPath: v.ObjectSchema<{
3
+ readonly project_id: v.StringSchema<undefined>;
4
+ readonly promotion_id: v.StringSchema<undefined>;
5
+ }, undefined>;
@@ -0,0 +1,6 @@
1
+ // Generated by scripts/generate-valibot-modules.ts. Do not edit.
2
+ import * as v from 'valibot';
3
+ export const vApprovePromotionPath = v.object({
4
+ project_id: v.string(),
5
+ promotion_id: v.string()
6
+ });