@thinkai/tai-api-contract 2.182.0 → 2.183.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/dist/generated/openapi.d.ts +1699 -294
- package/dist/generated/openapi.d.ts.map +1 -1
- package/openapi/openapi.yaml +1841 -281
- package/package.json +1 -1
- package/src/generated/openapi.ts +1699 -294
package/src/generated/openapi.ts
CHANGED
|
@@ -78,7 +78,7 @@ export interface paths {
|
|
|
78
78
|
put?: never;
|
|
79
79
|
/**
|
|
80
80
|
* Evaluate assessment preflight from server-loaded evidence
|
|
81
|
-
* @description Loads repository scope, readiness scan age, and window coverage for one workspace. Client fields for scope, scans, windows, and engineer counts are ignored, so an unscanned source cannot be marked fresh. The five-business-day clock uses Monday–Friday in America/New_York and is stored on the first passing result. A later blocker does not clear it.
|
|
81
|
+
* @description Loads repository scope, readiness scan age, and window coverage for one workspace. Client fields for scope, scans, windows, and engineer counts are ignored, so an unscanned source cannot be marked fresh. The five-business-day clock uses Monday–Friday in America/New_York and is stored on the first passing result. A later blocker does not clear it. The active-engineer count is loaded from stored commit authors and merged pull requests in the 90-day baseline window (bots and identities not on the org chart excluded). It stays unloaded until commit ingest covers the whole window for every non-archived repository.
|
|
82
82
|
* **Authorization:** Bearer JWT required. Caller email must appear in `PLATFORM_ADMIN_EMAILS`.
|
|
83
83
|
*/
|
|
84
84
|
post: operations["runLiveAssessmentPreflight"];
|
|
@@ -130,6 +130,56 @@ export interface paths {
|
|
|
130
130
|
patch?: never;
|
|
131
131
|
trace?: never;
|
|
132
132
|
};
|
|
133
|
+
"/workspaces/{workspaceId}/assessment-manifest/validate": {
|
|
134
|
+
parameters: {
|
|
135
|
+
query?: never;
|
|
136
|
+
header?: never;
|
|
137
|
+
path?: never;
|
|
138
|
+
cookie?: never;
|
|
139
|
+
};
|
|
140
|
+
get?: never;
|
|
141
|
+
put?: never;
|
|
142
|
+
/**
|
|
143
|
+
* Validate this workspace's assessment manifest
|
|
144
|
+
* @description Runs the same fail-closed manifest check as `runAssessmentManifestValidation` for the workspace in the path. The server ignores `manifest.validation` and `manifest.watermark` from the client. `buyerDeliverable` is true only when the result is validated and `shareMode` is internal. An external share-safe result can be validated and is never the buyer file. Unset or exceeded tolerances fail. No numeric tolerance is assumed. GitLab and Bitbucket fixtures are not part of this operation.
|
|
145
|
+
* `workspaceId` and `expectedWorkspaceId` in the body must equal the path workspace. A body that names another workspace is rejected. Comparing two workspaces stays on `runAssessmentManifestValidation`.
|
|
146
|
+
* **Authorization:** Bearer JWT required. Caller must be a workspace admin, or a platform admin who is a member of this workspace. Members who are not workspace admins receive 403. Non-members of an existing workspace receive 403. Unknown workspaces receive 404.
|
|
147
|
+
*/
|
|
148
|
+
post: operations["validateWorkspaceAssessmentManifest"];
|
|
149
|
+
delete?: never;
|
|
150
|
+
options?: never;
|
|
151
|
+
head?: never;
|
|
152
|
+
patch?: never;
|
|
153
|
+
trace?: never;
|
|
154
|
+
};
|
|
155
|
+
"/workspaces/{workspaceId}/assessment-manifest/build": {
|
|
156
|
+
parameters: {
|
|
157
|
+
query?: never;
|
|
158
|
+
header?: never;
|
|
159
|
+
path?: never;
|
|
160
|
+
cookie?: never;
|
|
161
|
+
};
|
|
162
|
+
get?: never;
|
|
163
|
+
put?: never;
|
|
164
|
+
/**
|
|
165
|
+
* Build and validate this workspace's assessment manifest from stored evidence
|
|
166
|
+
* @description The client sends only the offer, share mode, the render status of each selected section, and the matched-period ROI chapter it printed. The server fills scope, excluded repositories, windows, sources with freshness, consent, `expectedRepositoryIds`, `soldWindowComplete`, `premiumAiAssessable`, and tolerances from stored data, then runs the same fail-closed check as `validateWorkspaceAssessmentManifest`.
|
|
167
|
+
*
|
|
168
|
+
* Scope is the non-archived workspace repositories. Above 50 repositories or 500 active engineers fails (custom quote). For the premium offer, repositories without merged pull requests in both matched windows are listed in `excluded` and left out of scope. Baseline windows: `pre` is null, `post` is the 90 calendar days ending yesterday (America/New_York), and `transitionDays` is 0. Premium windows come from the confirmed rollout day. Freshness: source control 24 hours, AI usage 7 days, readiness scans 30 days. Aggregate-use consent is reported as stored; no row is `unset`.
|
|
169
|
+
*
|
|
170
|
+
* `premiumAiAssessable` needs fresh Cursor, Claude, or Copilot usage in the post window and complete matched-period evidence. A live ROI refusal for incomplete data blocks validation (`rollout_unset`, `window_missing`, `ship_weight_incomplete`, `active_engineers_unknown`, `confounder_inputs_missing`, `normalization_unset`, `output_unit_mismatch`). A refusal that is a legitimate result does not (`non_positive_output`, `confounder`, `missing_cost`, `non_usd_cost`, `cost_not_attributable`); the report prints "not assessable" with no figure. The premium `roi` tolerance is `unset` when the ROI section did not render or `roi` is missing, `exceeded` when the printed chapter differs from the server result (USD figures within the dictionary money tolerance), and `within` otherwise. Named-person sections always fail.
|
|
171
|
+
*
|
|
172
|
+
* Send `result.contentHash` with the PDF to `storeAssessmentReport`, which rebuilds the manifest and stores only when it is still a validated internal buyer file with the same hash.
|
|
173
|
+
*
|
|
174
|
+
* **Authorization:** Bearer JWT required. Caller must be a workspace admin, or a platform admin who is a member of this workspace. Members who are not workspace admins receive 403. Non-members of an existing workspace receive 403. Unknown workspaces receive 404.
|
|
175
|
+
*/
|
|
176
|
+
post: operations["buildWorkspaceAssessmentManifest"];
|
|
177
|
+
delete?: never;
|
|
178
|
+
options?: never;
|
|
179
|
+
head?: never;
|
|
180
|
+
patch?: never;
|
|
181
|
+
trace?: never;
|
|
182
|
+
};
|
|
133
183
|
"/admin/readiness/token-usage": {
|
|
134
184
|
parameters: {
|
|
135
185
|
query?: never;
|
|
@@ -2525,6 +2575,50 @@ export interface paths {
|
|
|
2525
2575
|
patch?: never;
|
|
2526
2576
|
trace?: never;
|
|
2527
2577
|
};
|
|
2578
|
+
"/workspaces/{workspaceId}/assessment-rollout": {
|
|
2579
|
+
parameters: {
|
|
2580
|
+
query?: never;
|
|
2581
|
+
header?: never;
|
|
2582
|
+
path?: never;
|
|
2583
|
+
cookie?: never;
|
|
2584
|
+
};
|
|
2585
|
+
/**
|
|
2586
|
+
* Read the customer-confirmed assessment rollout day
|
|
2587
|
+
* @description Returns the AI rollout day the customer confirmed for the Agentic AI ROI assessment, interpreted at 00:00 America/New_York, plus who set it and when. This is the only rollout source for the matched pre and post windows. `rolloutDay` is null until an admin sets it. Any workspace member may read it.
|
|
2588
|
+
*/
|
|
2589
|
+
get: operations["getWorkspaceAssessmentRollout"];
|
|
2590
|
+
/**
|
|
2591
|
+
* Set the customer-confirmed assessment rollout day
|
|
2592
|
+
* @description Workspace admins, or platform admins who are workspace members, set the rollout day. The day must be a real calendar date that has already started in America/New_York. Each save records the caller and time and writes one `workspace.assessment_rollout.changed` activity-log row.
|
|
2593
|
+
*/
|
|
2594
|
+
put: operations["putWorkspaceAssessmentRollout"];
|
|
2595
|
+
post?: never;
|
|
2596
|
+
delete?: never;
|
|
2597
|
+
options?: never;
|
|
2598
|
+
head?: never;
|
|
2599
|
+
patch?: never;
|
|
2600
|
+
trace?: never;
|
|
2601
|
+
};
|
|
2602
|
+
"/workspaces/{workspaceId}/assessment-roi": {
|
|
2603
|
+
parameters: {
|
|
2604
|
+
query?: never;
|
|
2605
|
+
header?: never;
|
|
2606
|
+
path?: never;
|
|
2607
|
+
cookie?: never;
|
|
2608
|
+
};
|
|
2609
|
+
/**
|
|
2610
|
+
* Read the matched-period ROI from stored evidence
|
|
2611
|
+
* @description Derives the 90-day pre window, the 14-day transition, and the 90-day post window from the confirmed rollout day, then loads calendar-day coverage, merged pull request Ship Weight per window, and recorded USD AI spend for the post window. The figure is USD cost per incremental normalized Ship Weight (per active engineer and Mon–Fri America/New_York working day). Fails closed: `status` is `not_assessable` with a `reason` when a window is incomplete, cost is missing, non-USD, or not attributable by day, Ship Weight is unscored, active engineers are not countable, incremental output is not positive, or a confounder is flagged or cannot be checked. Cost is never estimated. Any workspace member may read it.
|
|
2612
|
+
*/
|
|
2613
|
+
get: operations["getWorkspaceAssessmentRoi"];
|
|
2614
|
+
put?: never;
|
|
2615
|
+
post?: never;
|
|
2616
|
+
delete?: never;
|
|
2617
|
+
options?: never;
|
|
2618
|
+
head?: never;
|
|
2619
|
+
patch?: never;
|
|
2620
|
+
trace?: never;
|
|
2621
|
+
};
|
|
2528
2622
|
"/workspaces/{workspaceId}/aggregate-use-consent": {
|
|
2529
2623
|
parameters: {
|
|
2530
2624
|
query?: never;
|
|
@@ -2569,6 +2663,130 @@ export interface paths {
|
|
|
2569
2663
|
patch?: never;
|
|
2570
2664
|
trace?: never;
|
|
2571
2665
|
};
|
|
2666
|
+
"/workspaces/{workspaceId}/assessment-reports": {
|
|
2667
|
+
parameters: {
|
|
2668
|
+
query?: never;
|
|
2669
|
+
header?: never;
|
|
2670
|
+
path?: never;
|
|
2671
|
+
cookie?: never;
|
|
2672
|
+
};
|
|
2673
|
+
/**
|
|
2674
|
+
* List stored assessment reports and their secure links
|
|
2675
|
+
* @description Workspace admin (or platform admin who is a workspace member). Lists stored buyer PDFs (metadata only, never bytes) with every secure link grant. Link tokens and token hashes are never returned. A hidden report stays listed: `hidden_restorable` until `restoreUntil`, then `restore_window_ended`. The restore window is restore capability, not erasure. Responses carry `Cache-Control: no-store`.
|
|
2676
|
+
*/
|
|
2677
|
+
get: operations["listAssessmentReports"];
|
|
2678
|
+
put?: never;
|
|
2679
|
+
/**
|
|
2680
|
+
* Store a validated buyer PDF for secure delivery
|
|
2681
|
+
* @description Workspace admin (or platform admin who is a workspace member). The client never supplies evidence: the server rebuilds the manifest from stored data with the same builder as `buildWorkspaceAssessmentManifest`, using only `build` (offer, share mode, section status, printed ROI), and stores the PDF only when `buyerDeliverable` is true (validated and internal) and the rebuilt `contentHash` equals the one sent. An external share-safe file is never stored here. The PDF is encrypted with AES-256-GCM and kept in Postgres with its sha256; it is limited to 10 MiB. Records `report.assessment_stored` without report content.
|
|
2682
|
+
*/
|
|
2683
|
+
post: operations["storeAssessmentReport"];
|
|
2684
|
+
delete?: never;
|
|
2685
|
+
options?: never;
|
|
2686
|
+
head?: never;
|
|
2687
|
+
patch?: never;
|
|
2688
|
+
trace?: never;
|
|
2689
|
+
};
|
|
2690
|
+
"/workspaces/{workspaceId}/assessment-reports/{reportId}/links": {
|
|
2691
|
+
parameters: {
|
|
2692
|
+
query?: never;
|
|
2693
|
+
header?: never;
|
|
2694
|
+
path?: never;
|
|
2695
|
+
cookie?: never;
|
|
2696
|
+
};
|
|
2697
|
+
get?: never;
|
|
2698
|
+
put?: never;
|
|
2699
|
+
/**
|
|
2700
|
+
* Create a secure link and email it to a workspace member
|
|
2701
|
+
* @description Workspace admin (or platform admin who is a workspace member). Creates one link grant for a current workspace member and emails them the link only: generic text and `{siteUrl}/reports/secure?t=<opaque token>`. The email carries no PDF attachment, report name, metrics, repository, or person names. Only the sha256 of the token is stored and the token is never returned. Expiry defaults to 14 days and can be shorter. When SMTP is not configured the grant still stands and `email` says why it was skipped. Hidden reports cannot be shared (`409 report_hidden`).
|
|
2702
|
+
*/
|
|
2703
|
+
post: operations["createAssessmentReportLink"];
|
|
2704
|
+
delete?: never;
|
|
2705
|
+
options?: never;
|
|
2706
|
+
head?: never;
|
|
2707
|
+
patch?: never;
|
|
2708
|
+
trace?: never;
|
|
2709
|
+
};
|
|
2710
|
+
"/workspaces/{workspaceId}/assessment-reports/{reportId}/links/{grantId}/revoke": {
|
|
2711
|
+
parameters: {
|
|
2712
|
+
query?: never;
|
|
2713
|
+
header?: never;
|
|
2714
|
+
path?: never;
|
|
2715
|
+
cookie?: never;
|
|
2716
|
+
};
|
|
2717
|
+
get?: never;
|
|
2718
|
+
put?: never;
|
|
2719
|
+
/**
|
|
2720
|
+
* Revoke a secure link
|
|
2721
|
+
* @description Workspace admin (or platform admin who is a workspace member). The link stops working immediately. Idempotent: revoking again keeps the first `revokedAt`. Revoking a link does not affect a file the recipient already downloaded. Records `report.assessment_link_revoked`.
|
|
2722
|
+
*/
|
|
2723
|
+
post: operations["revokeAssessmentReportLink"];
|
|
2724
|
+
delete?: never;
|
|
2725
|
+
options?: never;
|
|
2726
|
+
head?: never;
|
|
2727
|
+
patch?: never;
|
|
2728
|
+
trace?: never;
|
|
2729
|
+
};
|
|
2730
|
+
"/workspaces/{workspaceId}/assessment-reports/{reportId}/hide": {
|
|
2731
|
+
parameters: {
|
|
2732
|
+
query?: never;
|
|
2733
|
+
header?: never;
|
|
2734
|
+
path?: never;
|
|
2735
|
+
cookie?: never;
|
|
2736
|
+
};
|
|
2737
|
+
get?: never;
|
|
2738
|
+
put?: never;
|
|
2739
|
+
/**
|
|
2740
|
+
* Hide a stored report
|
|
2741
|
+
* @description Workspace admin (or platform admin who is a workspace member). Same semantics as workspace delete: the report is hidden immediately and every link stops downloading. It can be restored for 30 days (`restoreUntil`). That window is restore capability, not erasure; no backup purge date is promised, and a file the buyer already downloaded stays with them. Idempotent. Records `report.assessment_hidden`.
|
|
2742
|
+
*/
|
|
2743
|
+
post: operations["hideAssessmentReport"];
|
|
2744
|
+
delete?: never;
|
|
2745
|
+
options?: never;
|
|
2746
|
+
head?: never;
|
|
2747
|
+
patch?: never;
|
|
2748
|
+
trace?: never;
|
|
2749
|
+
};
|
|
2750
|
+
"/workspaces/{workspaceId}/assessment-reports/{reportId}/restore": {
|
|
2751
|
+
parameters: {
|
|
2752
|
+
query?: never;
|
|
2753
|
+
header?: never;
|
|
2754
|
+
path?: never;
|
|
2755
|
+
cookie?: never;
|
|
2756
|
+
};
|
|
2757
|
+
get?: never;
|
|
2758
|
+
put?: never;
|
|
2759
|
+
/**
|
|
2760
|
+
* Restore a hidden report within the 30-day window
|
|
2761
|
+
* @description Workspace admin (or platform admin who is a workspace member). Allowed only before `restoreUntil`; afterwards it fails with `409 restore_window_ended`. Links that were not revoked or expired work again after restore. Records `report.assessment_restored`.
|
|
2762
|
+
*/
|
|
2763
|
+
post: operations["restoreAssessmentReport"];
|
|
2764
|
+
delete?: never;
|
|
2765
|
+
options?: never;
|
|
2766
|
+
head?: never;
|
|
2767
|
+
patch?: never;
|
|
2768
|
+
trace?: never;
|
|
2769
|
+
};
|
|
2770
|
+
"/assessment-reports/secure": {
|
|
2771
|
+
parameters: {
|
|
2772
|
+
query?: never;
|
|
2773
|
+
header?: never;
|
|
2774
|
+
path?: never;
|
|
2775
|
+
cookie?: never;
|
|
2776
|
+
};
|
|
2777
|
+
/**
|
|
2778
|
+
* Download a stored report through a secure link
|
|
2779
|
+
* @description Bearer JWT required. The caller must be the link recipient and a current member of the report's workspace. Access follows `decideReportAccess`: `leaked_token`, `removed_member`, and `wrong_workspace` answer 403; `expired` and `revoked` answer 410; `invalid_grant` answers 404. A hidden report answers `410 report_hidden`. Every response carries `Cache-Control: no-store`. Records `report.assessment_downloaded` without report content.
|
|
2780
|
+
*/
|
|
2781
|
+
get: operations["downloadAssessmentReport"];
|
|
2782
|
+
put?: never;
|
|
2783
|
+
post?: never;
|
|
2784
|
+
delete?: never;
|
|
2785
|
+
options?: never;
|
|
2786
|
+
head?: never;
|
|
2787
|
+
patch?: never;
|
|
2788
|
+
trace?: never;
|
|
2789
|
+
};
|
|
2572
2790
|
"/workspaces/{workspaceId}/activity": {
|
|
2573
2791
|
parameters: {
|
|
2574
2792
|
query?: never;
|
|
@@ -4287,7 +4505,7 @@ export interface paths {
|
|
|
4287
4505
|
put?: never;
|
|
4288
4506
|
/**
|
|
4289
4507
|
* Import org chart from Supabase storage path
|
|
4290
|
-
* @description Parse-only. Downloads the CSV at `storagePath` from the `org-charts` bucket and returns `persons` and `errors`. Does not persist to `spa_org_chart` or `org_chart`. The SPA derives teams client-side and saves the org structure via `POST /workspaces/{workspaceId}/org-chart`. Required columns: employee_id, name, email, title, department, team, manager_id, location. Optional: github_username (GitHub login for productivity ingest), bitbucket_nickname, bitbucket_uuid, alternate_emails (comma-separated alternate work emails for AI tool spend attribution). Saving the SPA snapshot also materializes a scoring `org_chart` tree for team/person metrics when import members are present. Parse-only responses may include duplicateEmailWarnings, identityEmailPreview (cross-check against connected AI tool seat rosters), and importWarnings when roster preview is unavailable.
|
|
4508
|
+
* @description Parse-only. Downloads the CSV at `storagePath` from the `org-charts` bucket and returns `persons` and `errors`. Does not persist to `spa_org_chart` or `org_chart`. The SPA derives teams client-side and saves the org structure via `POST /workspaces/{workspaceId}/org-chart`. Required columns: employee_id, name, email, title, department, team, manager_id, location. Optional: github_username (GitHub login for productivity ingest), bitbucket_nickname, bitbucket_uuid, gitlab_username (GitLab.com or self-managed username), alternate_emails (comma-separated alternate work emails for AI tool spend attribution). Saving the SPA snapshot also materializes a scoring `org_chart` tree for team/person metrics when import members are present. Parse-only responses may include duplicateEmailWarnings, identityEmailPreview (cross-check against connected AI tool seat rosters), and importWarnings when roster preview is unavailable.
|
|
4291
4509
|
*/
|
|
4292
4510
|
post: operations["postOrgChartImport"];
|
|
4293
4511
|
delete?: never;
|
|
@@ -4744,6 +4962,46 @@ export interface paths {
|
|
|
4744
4962
|
patch?: never;
|
|
4745
4963
|
trace?: never;
|
|
4746
4964
|
};
|
|
4965
|
+
"/workspaces/{workspaceId}/sources/discover": {
|
|
4966
|
+
parameters: {
|
|
4967
|
+
query?: never;
|
|
4968
|
+
header?: never;
|
|
4969
|
+
path?: never;
|
|
4970
|
+
cookie?: never;
|
|
4971
|
+
};
|
|
4972
|
+
get?: never;
|
|
4973
|
+
put?: never;
|
|
4974
|
+
/**
|
|
4975
|
+
* List repositories a GitLab or Bitbucket source can read (does not persist)
|
|
4976
|
+
* @description Lists projects (GitLab.com, self-managed GitLab) or repositories (Bitbucket Cloud, Bitbucket Data Center) for repository selection. Nothing is stored. Self-managed and Data Center `baseUrl` must be `https`, public, and without credentials; private, loopback, and link-local hosts are rejected before any request. `env:` token references are rejected for self-hosted providers and never resolved from the request for cloud providers. A blank or `***` token reuses the stored source with the same provider, host, and account, and requires the editor or admin role. The list covers the whole account (group or workspace/project key), not only `projects`/`repos`. `repoCap` is the standard repository cap (50); ingest refuses to auto-select more than that. Tokens are never returned.
|
|
4977
|
+
*/
|
|
4978
|
+
post: operations["postWorkspaceVcsRepoDiscovery"];
|
|
4979
|
+
delete?: never;
|
|
4980
|
+
options?: never;
|
|
4981
|
+
head?: never;
|
|
4982
|
+
patch?: never;
|
|
4983
|
+
trace?: never;
|
|
4984
|
+
};
|
|
4985
|
+
"/workspaces/{workspaceId}/vcs-provider-coverage": {
|
|
4986
|
+
parameters: {
|
|
4987
|
+
query?: never;
|
|
4988
|
+
header?: never;
|
|
4989
|
+
path?: never;
|
|
4990
|
+
cookie?: never;
|
|
4991
|
+
};
|
|
4992
|
+
/**
|
|
4993
|
+
* GitLab and Bitbucket Data Coverage freshness (server-computed)
|
|
4994
|
+
* @description One row per configured GitLab or Bitbucket source. Freshness is computed on the server from batch-written sync rows and succeeded readiness runs; no request field can mark a row fresh. Git is fresh when the last complete ingest finished within `gitFreshnessHours` (24) and no error was recorded after it. A readiness scan is fresh within `readinessScanFreshnessDays` (30, America/New_York calendar days); `scansFresh` requires every in-scope repository to have a fresh scan. A source with an invalid base URL or missing account is `misconfigured`. Requires workspace membership.
|
|
4995
|
+
*/
|
|
4996
|
+
get: operations["getWorkspaceVcsProviderCoverage"];
|
|
4997
|
+
put?: never;
|
|
4998
|
+
post?: never;
|
|
4999
|
+
delete?: never;
|
|
5000
|
+
options?: never;
|
|
5001
|
+
head?: never;
|
|
5002
|
+
patch?: never;
|
|
5003
|
+
trace?: never;
|
|
5004
|
+
};
|
|
4747
5005
|
"/workspaces/{workspaceId}/ingest/productivity/repos/{slug}/retry": {
|
|
4748
5006
|
parameters: {
|
|
4749
5007
|
query?: never;
|
|
@@ -5068,6 +5326,81 @@ export interface paths {
|
|
|
5068
5326
|
export type webhooks = Record<string, never>;
|
|
5069
5327
|
export interface components {
|
|
5070
5328
|
schemas: {
|
|
5329
|
+
/** @description Body of runAssessmentManifestValidation; buildWorkspaceAssessmentManifest returns the server-built object as `validation`. */
|
|
5330
|
+
AssessmentManifestValidationBodyDto: {
|
|
5331
|
+
manifest: {
|
|
5332
|
+
/** @enum {string} */
|
|
5333
|
+
offerId: "engineering_readiness_baseline" | "agentic_ai_roi";
|
|
5334
|
+
dictionaryVersion: string;
|
|
5335
|
+
/** @enum {string} */
|
|
5336
|
+
validation: "validated" | "not_validated";
|
|
5337
|
+
/** @enum {string} */
|
|
5338
|
+
shareMode: "internal" | "external";
|
|
5339
|
+
/** @enum {string|null} */
|
|
5340
|
+
watermark: "NOT VALIDATED" | "SAMPLE · SYNTHETIC DATA" | null;
|
|
5341
|
+
scope: {
|
|
5342
|
+
repositories: {
|
|
5343
|
+
id: string;
|
|
5344
|
+
name: string;
|
|
5345
|
+
}[];
|
|
5346
|
+
excluded: {
|
|
5347
|
+
id: string;
|
|
5348
|
+
name: string;
|
|
5349
|
+
reason: string;
|
|
5350
|
+
}[];
|
|
5351
|
+
};
|
|
5352
|
+
windows: {
|
|
5353
|
+
pre: {
|
|
5354
|
+
start: string;
|
|
5355
|
+
end: string;
|
|
5356
|
+
} | null;
|
|
5357
|
+
post: {
|
|
5358
|
+
start: string;
|
|
5359
|
+
end: string;
|
|
5360
|
+
} | null;
|
|
5361
|
+
transitionDays: number;
|
|
5362
|
+
};
|
|
5363
|
+
sources: {
|
|
5364
|
+
provider: string;
|
|
5365
|
+
status: string;
|
|
5366
|
+
freshAt: string | null;
|
|
5367
|
+
}[];
|
|
5368
|
+
consent: {
|
|
5369
|
+
/** @enum {string} */
|
|
5370
|
+
aggregateUse: "opt_in" | "opt_out" | "unset";
|
|
5371
|
+
recordedAt: string | null;
|
|
5372
|
+
};
|
|
5373
|
+
sections: {
|
|
5374
|
+
id: string;
|
|
5375
|
+
/** @enum {string} */
|
|
5376
|
+
status: "ok" | "failed" | "omitted";
|
|
5377
|
+
reason?: string;
|
|
5378
|
+
}[];
|
|
5379
|
+
};
|
|
5380
|
+
workspaceId: string;
|
|
5381
|
+
expectedWorkspaceId: string;
|
|
5382
|
+
expectedRepositoryIds: string[];
|
|
5383
|
+
soldWindowComplete: boolean;
|
|
5384
|
+
premiumAiAssessable: boolean;
|
|
5385
|
+
namedPersonSectionIds: string[];
|
|
5386
|
+
tolerances: {
|
|
5387
|
+
id: string;
|
|
5388
|
+
/** @enum {string} */
|
|
5389
|
+
status: "unset" | "exceeded" | "within";
|
|
5390
|
+
}[];
|
|
5391
|
+
};
|
|
5392
|
+
AssessmentManifestValidationResultDto: {
|
|
5393
|
+
buyerDeliverable: boolean;
|
|
5394
|
+
/** @enum {string} */
|
|
5395
|
+
validation: "validated" | "not_validated";
|
|
5396
|
+
/** @enum {string|null} */
|
|
5397
|
+
watermark: "NOT VALIDATED" | null;
|
|
5398
|
+
reasons: {
|
|
5399
|
+
code: string;
|
|
5400
|
+
message: string;
|
|
5401
|
+
}[];
|
|
5402
|
+
contentHash: string;
|
|
5403
|
+
};
|
|
5071
5404
|
TeamsInstallUrlDto: {
|
|
5072
5405
|
/** Format: uri */
|
|
5073
5406
|
url: string;
|
|
@@ -5233,6 +5566,8 @@ export interface components {
|
|
|
5233
5566
|
bitbucketNickname?: string;
|
|
5234
5567
|
/** @description Bitbucket account UUID (e.g. "{aeefb6b0-...}") to attribute merged PRs and reviews to this person in productivity ingest. Preferred over bitbucketNickname — Bitbucket PR payloads expose a stable uuid but not nickname. Resolves to the same person_id (email) as githubUsername. */
|
|
5235
5568
|
bitbucketUuid?: string;
|
|
5569
|
+
/** @description GitLab username (no @; GitLab.com or self-managed) to map merged merge requests and commits to this person in productivity ingest and the assessment active-engineer count. Stored lowercased. Resolves to the same person_id (email) as githubUsername. */
|
|
5570
|
+
gitlabUsername?: string;
|
|
5236
5571
|
/** @description Optional comma-separated work emails that map to the same person for AI tool spend/usage (mirrors multi-login github_username). Primary email remains canonical person_id. */
|
|
5237
5572
|
alternateEmails?: string;
|
|
5238
5573
|
};
|
|
@@ -5263,6 +5598,7 @@ export interface components {
|
|
|
5263
5598
|
githubUsername?: string;
|
|
5264
5599
|
bitbucketNickname?: string;
|
|
5265
5600
|
bitbucketUuid?: string;
|
|
5601
|
+
gitlabUsername?: string;
|
|
5266
5602
|
/** @description Comma-separated alternate work emails for AI tool attribution. */
|
|
5267
5603
|
alternateEmails?: string;
|
|
5268
5604
|
};
|
|
@@ -7792,10 +8128,88 @@ export interface components {
|
|
|
7792
8128
|
* @enum {string}
|
|
7793
8129
|
*/
|
|
7794
8130
|
ReadinessDimensionId: "ai-agent-readiness" | "token-efficiency" | "repo-hygiene" | "stack-quality" | "tests-qa" | "observability" | "api-contracts" | "platform-governance" | "delivery";
|
|
8131
|
+
/**
|
|
8132
|
+
* @description `bitbucket_server` is Bitbucket Data Center. Self-hosted providers (`gitlab_self_managed`, `bitbucket_server`) always carry `hostBaseUrl`.
|
|
8133
|
+
* @enum {string}
|
|
8134
|
+
*/
|
|
8135
|
+
ExternalVcsProviderDto: "gitlab_cloud" | "gitlab_self_managed" | "bitbucket_cloud" | "bitbucket_server";
|
|
8136
|
+
/** @description GitLab or Bitbucket tenant source entry. GitLab: optional `group` (full path) and `projects` (`group/sub/project`). Bitbucket: `workspace` (Cloud workspace or Data Center project key) and optional `repos` (repository slugs). `deployment` selects self-hosted; it then requires `baseUrl`. */
|
|
8137
|
+
GitVcsSourceDto: {
|
|
8138
|
+
/** @enum {string} */
|
|
8139
|
+
type: "gitlab" | "bitbucket";
|
|
8140
|
+
/** @enum {string} */
|
|
8141
|
+
deployment?: "cloud" | "self_managed" | "data_center";
|
|
8142
|
+
baseUrl?: string;
|
|
8143
|
+
group?: string;
|
|
8144
|
+
projects?: string[];
|
|
8145
|
+
workspace?: string;
|
|
8146
|
+
repos?: string[];
|
|
8147
|
+
/** @description Personal / project / HTTP access token, or `***` to reuse the stored token. */
|
|
8148
|
+
token?: string;
|
|
8149
|
+
} & {
|
|
8150
|
+
[key: string]: unknown;
|
|
8151
|
+
};
|
|
8152
|
+
VcsDiscoveredRepoDto: {
|
|
8153
|
+
/** @description `group/sub/project` (GitLab) or `workspace/repo` / `PROJECT/repo` (Bitbucket) */
|
|
8154
|
+
slug: string;
|
|
8155
|
+
name: string;
|
|
8156
|
+
defaultBranch: string | null;
|
|
8157
|
+
webUrl: string | null;
|
|
8158
|
+
};
|
|
8159
|
+
VcsRepoDiscoveryResponseDto: {
|
|
8160
|
+
provider: components["schemas"]["ExternalVcsProviderDto"];
|
|
8161
|
+
hostBaseUrl: string | null;
|
|
8162
|
+
/** @description GitLab group path (empty = token membership), Bitbucket workspace, or project key */
|
|
8163
|
+
account: string;
|
|
8164
|
+
/** @description True when the provider page limit was reached; the list is incomplete. */
|
|
8165
|
+
truncated: boolean;
|
|
8166
|
+
repoCap: number;
|
|
8167
|
+
repositories: components["schemas"]["VcsDiscoveredRepoDto"][];
|
|
8168
|
+
};
|
|
8169
|
+
VcsProviderCoverageRowDto: {
|
|
8170
|
+
provider: components["schemas"]["ExternalVcsProviderDto"];
|
|
8171
|
+
hostBaseUrl: string | null;
|
|
8172
|
+
account: string;
|
|
8173
|
+
selfHosted: boolean;
|
|
8174
|
+
/** @enum {string} */
|
|
8175
|
+
state: "fresh" | "stale" | "never_synced" | "error" | "misconfigured";
|
|
8176
|
+
/** @description Server-computed; true only when `state` is `fresh`. */
|
|
8177
|
+
isFresh: boolean;
|
|
8178
|
+
/** Format: date-time */
|
|
8179
|
+
lastIngestSuccessAt: string | null;
|
|
8180
|
+
lastErrorKind: string | null;
|
|
8181
|
+
/** Format: date-time */
|
|
8182
|
+
lastDiscoveryAt: string | null;
|
|
8183
|
+
discoveredRepoCount: number | null;
|
|
8184
|
+
/** @description Milliseconds past the Git freshness limit when `state` is `stale`. */
|
|
8185
|
+
staleForMs: number | null;
|
|
8186
|
+
/** @description In-scope repositories stored for this source. */
|
|
8187
|
+
repoCount: number;
|
|
8188
|
+
scannedRepoCount: number;
|
|
8189
|
+
freshScanRepoCount: number;
|
|
8190
|
+
scansFresh: boolean;
|
|
8191
|
+
/**
|
|
8192
|
+
* Format: date-time
|
|
8193
|
+
* @description Earliest merge time reached by the assessment merged-request history backfill for this source; null when no backfill window has been written.
|
|
8194
|
+
*/
|
|
8195
|
+
mergedHistorySince: string | null;
|
|
8196
|
+
/**
|
|
8197
|
+
* Format: date-time
|
|
8198
|
+
* @description Instant from which every in-scope repository of this source has contiguous default-branch commit-author coverage (latest per-repo coverage start); null when any repository has no coverage.
|
|
8199
|
+
*/
|
|
8200
|
+
commitHistorySince: string | null;
|
|
8201
|
+
};
|
|
8202
|
+
VcsProviderCoverageDto: {
|
|
8203
|
+
/** Format: date-time */
|
|
8204
|
+
generatedAt: string;
|
|
8205
|
+
gitFreshnessHours: number;
|
|
8206
|
+
readinessScanFreshnessDays: number;
|
|
8207
|
+
sources: components["schemas"]["VcsProviderCoverageRowDto"][];
|
|
8208
|
+
};
|
|
7795
8209
|
RepoProviderDto: {
|
|
7796
8210
|
/** @enum {string} */
|
|
7797
|
-
kind: "github" | "bitbucket_cloud" | "bitbucket_server";
|
|
7798
|
-
/** @description owner/repo (GitHub), workspace/repo_slug (Bitbucket Cloud),
|
|
8211
|
+
kind: "github" | "bitbucket_cloud" | "bitbucket_server" | "gitlab_cloud" | "gitlab_self_managed";
|
|
8212
|
+
/** @description owner/repo (GitHub), workspace/repo_slug (Bitbucket Cloud), PROJECT_KEY/repo_slug (Bitbucket Server / Data Center), or group/sub/project (GitLab) */
|
|
7799
8213
|
slug: string;
|
|
7800
8214
|
/**
|
|
7801
8215
|
* Format: uri
|
|
@@ -7807,7 +8221,7 @@ export interface components {
|
|
|
7807
8221
|
externalId?: string | null;
|
|
7808
8222
|
/**
|
|
7809
8223
|
* Format: uri
|
|
7810
|
-
* @description Required for bitbucket_server (self-hosted); null for cloud providers
|
|
8224
|
+
* @description Required for bitbucket_server and gitlab_self_managed (self-hosted); null for cloud providers
|
|
7811
8225
|
*/
|
|
7812
8226
|
hostBaseUrl?: string | null;
|
|
7813
8227
|
};
|
|
@@ -9156,11 +9570,7 @@ export interface components {
|
|
|
9156
9570
|
* @description Type of workspace lifecycle event.
|
|
9157
9571
|
* @enum {string}
|
|
9158
9572
|
*/
|
|
9159
|
-
ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.suspended" | "integration.github.unsuspended" | "integration.github.repo_added" | "integration.github.repo_removed" | "fix.requested" | "fix.generating" | "fix.pr_created" | "fix.merged" | "fix.failed" | "readiness.scan_started" | "readiness.scan_completed" | "readiness.scan_failed" | "readiness.scan_partial" | "code_insights.design_run_started" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.invite_accepted" | "member.invite_rejected" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.zenhr.sync_started" | "hris.zenhr.sync_completed" | "hris.zenhr.sync_failed" | "hris.zelt.sync_started" | "hris.zelt.sync_completed" | "hris.zelt.sync_failed" | "hris.hibob.sync_started" | "hris.hibob.sync_completed" | "hris.hibob.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "repo.sync_skipped" | "integrations.cursor.execution_key.added" | "integrations.cursor.execution_key.updated" | "integrations.cursor.execution_key.removed" | "integrations.cursor.execution_key.check_failed" | "integrations.cursor.admin_key.added" | "integrations.cursor.admin_key.updated" | "integrations.cursor.admin_key.removed" | "integrations.claude.execution_key.added" | "integrations.claude.execution_key.updated" | "integrations.claude.execution_key.removed" | "integrations.claude.execution_key.check_failed" | "integrations.claude.admin_key.added" | "integrations.claude.admin_key.updated" | "integrations.claude.admin_key.removed" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "integrations.code_intelligence.settings_changed" | "integrations.code_intelligence.execution_key.added" | "integrations.code_intelligence.execution_key.updated" | "integrations.code_intelligence.execution_key.removed" | "integrations.code_intelligence.execution_key.check_failed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped" | "productivity.ingest.repo_skipped" | "productivity.ingest.coverage_gap_detected" | "integrations.newrelic.added" | "integrations.newrelic.removed" | "integrations.newrelic.sync_completed" | "integrations.newrelic.sync_failed" | "integrations.prometheus.added" | "integrations.prometheus.removed" | "integrations.prometheus.sync_completed" | "integrations.prometheus.sync_failed" | "integrations.grafana.added" | "integrations.grafana.removed" | "integrations.grafana.sync_completed" | "integrations.grafana.sync_failed" | "integrations.zelt.added" | "integrations.zelt.removed" | "report.exported" | "workspace.aggregate_use.changed";
|
|
9160
|
-
UnsetAssessmentDecisionDto: {
|
|
9161
|
-
/** @enum {string} */
|
|
9162
|
-
status: "unset";
|
|
9163
|
-
};
|
|
9573
|
+
ActivityLogEventTypeDto: "repo.added" | "repo.removed" | "repo.readded" | "integration.github.added" | "integration.github.updated" | "integration.github.removed" | "integration.github.permissions_changed" | "integration.github.suspended" | "integration.github.unsuspended" | "integration.github.repo_added" | "integration.github.repo_removed" | "fix.requested" | "fix.generating" | "fix.pr_created" | "fix.merged" | "fix.failed" | "readiness.scan_started" | "readiness.scan_completed" | "readiness.scan_failed" | "readiness.scan_partial" | "code_insights.design_run_started" | "integrations.agent_execution.provider_changed" | "integrations.repo_eligibility.overrides_changed" | "integrations.repo_eligibility.languages_refresh_requested" | "integrations.cursor.platform_key_enabled" | "integrations.cursor.platform_key_disabled" | "member.invited" | "member.invite_accepted" | "member.invite_rejected" | "member.role_changed" | "member.removed" | "hris.personio.sync_started" | "hris.personio.sync_completed" | "hris.personio.sync_failed" | "hris.zenhr.sync_started" | "hris.zenhr.sync_completed" | "hris.zenhr.sync_failed" | "hris.zelt.sync_started" | "hris.zelt.sync_completed" | "hris.zelt.sync_failed" | "hris.hibob.sync_started" | "hris.hibob.sync_completed" | "hris.hibob.sync_failed" | "hris.sync_started" | "hris.sync_completed" | "hris.sync_failed" | "repo.sync_skipped" | "integrations.cursor.execution_key.added" | "integrations.cursor.execution_key.updated" | "integrations.cursor.execution_key.removed" | "integrations.cursor.execution_key.check_failed" | "integrations.cursor.admin_key.added" | "integrations.cursor.admin_key.updated" | "integrations.cursor.admin_key.removed" | "integrations.claude.execution_key.added" | "integrations.claude.execution_key.updated" | "integrations.claude.execution_key.removed" | "integrations.claude.execution_key.check_failed" | "integrations.claude.admin_key.added" | "integrations.claude.admin_key.updated" | "integrations.claude.admin_key.removed" | "integrations.claude.analytics_key.added" | "integrations.claude.analytics_key.updated" | "integrations.claude.analytics_key.removed" | "integrations.code_intelligence.settings_changed" | "integrations.code_intelligence.execution_key.added" | "integrations.code_intelligence.execution_key.updated" | "integrations.code_intelligence.execution_key.removed" | "integrations.code_intelligence.execution_key.check_failed" | "readiness.scan_precheck_failed" | "productivity.ingest.completed" | "productivity.ingest.failed" | "productivity.ingest.skipped" | "productivity.ingest.repo_skipped" | "productivity.ingest.coverage_gap_detected" | "integrations.newrelic.added" | "integrations.newrelic.removed" | "integrations.newrelic.sync_completed" | "integrations.newrelic.sync_failed" | "integrations.prometheus.added" | "integrations.prometheus.removed" | "integrations.prometheus.sync_completed" | "integrations.prometheus.sync_failed" | "integrations.grafana.added" | "integrations.grafana.removed" | "integrations.grafana.sync_completed" | "integrations.grafana.sync_failed" | "integrations.zelt.added" | "integrations.zelt.removed" | "report.exported" | "report.assessment_stored" | "report.assessment_link_sent" | "report.assessment_link_revoked" | "report.assessment_downloaded" | "report.assessment_hidden" | "report.assessment_restored" | "workspace.aggregate_use.changed" | "workspace.assessment_rollout.changed";
|
|
9164
9574
|
/** @description Current legal-approved opt-in notice, or `unset` while opt-in is unavailable. */
|
|
9165
9575
|
AggregateUseNoticeStatusDto: {
|
|
9166
9576
|
/** @enum {string} */
|
|
@@ -9168,14 +9578,130 @@ export interface components {
|
|
|
9168
9578
|
/** @description Present only when `status` is `approved`. Send it back on opt-in. */
|
|
9169
9579
|
version?: string;
|
|
9170
9580
|
};
|
|
9171
|
-
|
|
9581
|
+
/**
|
|
9582
|
+
* @description Confounder-relevant named event from the assessment dictionary.
|
|
9583
|
+
* @enum {string}
|
|
9584
|
+
*/
|
|
9585
|
+
AssessmentNamedEventDto: "major_release" | "migration" | "acquisition" | "policy_change";
|
|
9586
|
+
AssessmentRolloutDto: {
|
|
9172
9587
|
/**
|
|
9173
|
-
*
|
|
9174
|
-
* @
|
|
9588
|
+
* Format: date
|
|
9589
|
+
* @description Confirmed rollout day (`YYYY-MM-DD`); null until set.
|
|
9175
9590
|
*/
|
|
9176
|
-
|
|
9177
|
-
/** @
|
|
9178
|
-
|
|
9591
|
+
rolloutDay: string | null;
|
|
9592
|
+
/** @enum {string} */
|
|
9593
|
+
timezone: "America/New_York";
|
|
9594
|
+
/** @enum {string} */
|
|
9595
|
+
boundary: "midnight";
|
|
9596
|
+
/**
|
|
9597
|
+
* Format: date-time
|
|
9598
|
+
* @description UTC instant of 00:00 America/New_York on `rolloutDay`.
|
|
9599
|
+
*/
|
|
9600
|
+
startsAt: string | null;
|
|
9601
|
+
setBy: {
|
|
9602
|
+
/** Format: uuid */
|
|
9603
|
+
userId: string;
|
|
9604
|
+
displayName: string | null;
|
|
9605
|
+
} | null;
|
|
9606
|
+
/** Format: date-time */
|
|
9607
|
+
setAt: string | null;
|
|
9608
|
+
/** @description Named events confirmed during either matched window. Null means the customer or operator has not confirmed yet, so the ROI confounder check reports `confounder_inputs_missing`. An empty array confirms none occurred. */
|
|
9609
|
+
namedEvents: components["schemas"]["AssessmentNamedEventDto"][] | null;
|
|
9610
|
+
namedEventsConfirmedBy: {
|
|
9611
|
+
/** Format: uuid */
|
|
9612
|
+
userId: string;
|
|
9613
|
+
displayName: string | null;
|
|
9614
|
+
} | null;
|
|
9615
|
+
/** Format: date-time */
|
|
9616
|
+
namedEventsConfirmedAt: string | null;
|
|
9617
|
+
};
|
|
9618
|
+
AssessmentRolloutPutDto: {
|
|
9619
|
+
/**
|
|
9620
|
+
* Format: date
|
|
9621
|
+
* @description Real calendar date, not after today in America/New_York.
|
|
9622
|
+
*/
|
|
9623
|
+
rolloutDay: string;
|
|
9624
|
+
/** @description Omit to leave the stored named-event confirmation unchanged. Send an empty array to confirm no named event occurred during either matched window, or the events that did. */
|
|
9625
|
+
namedEvents?: components["schemas"]["AssessmentNamedEventDto"][];
|
|
9626
|
+
};
|
|
9627
|
+
/**
|
|
9628
|
+
* @description Why the matched-period ROI is not assessable. `cost_not_attributable` means a billing-cycle bill (GitHub Copilot) overlaps the post window and cannot be split by day. `active_engineers_unknown` means stored identities cannot yet be counted. `confounder_inputs_missing` means a named-event, headcount, or repository-scope check has no stored input.
|
|
9629
|
+
* @enum {string}
|
|
9630
|
+
*/
|
|
9631
|
+
AssessmentRoiReasonDto: "rollout_unset" | "window_missing" | "missing_cost" | "non_usd_cost" | "cost_not_attributable" | "ship_weight_incomplete" | "active_engineers_unknown" | "non_positive_output" | "normalization_unset" | "confounder" | "confounder_inputs_missing" | "output_unit_mismatch";
|
|
9632
|
+
AssessmentRoiDayRangeDto: {
|
|
9633
|
+
/** Format: date */
|
|
9634
|
+
from: string;
|
|
9635
|
+
/** Format: date */
|
|
9636
|
+
to: string;
|
|
9637
|
+
};
|
|
9638
|
+
AssessmentRoiWindowDto: {
|
|
9639
|
+
/** Format: date */
|
|
9640
|
+
from: string;
|
|
9641
|
+
/** Format: date */
|
|
9642
|
+
to: string;
|
|
9643
|
+
/** @description Calendar days in the window (90). */
|
|
9644
|
+
requiredDays: number;
|
|
9645
|
+
/** @description Calendar days with stored evidence. */
|
|
9646
|
+
coveredDays: number;
|
|
9647
|
+
/** @description Every calendar day is covered and the window ended before today. */
|
|
9648
|
+
complete: boolean;
|
|
9649
|
+
/** @description Monday–Friday days in America/New_York. No holidays. */
|
|
9650
|
+
workingDays: number;
|
|
9651
|
+
activeEngineers: number | null;
|
|
9652
|
+
mergedPullRequests: number;
|
|
9653
|
+
/** @description Sum of stored Ship Weight for unique merged pull requests; null if any is unscored. */
|
|
9654
|
+
shipWeight: number | null;
|
|
9655
|
+
/** @description Ship Weight per active engineer per working day. */
|
|
9656
|
+
normalizedShipWeight: number | null;
|
|
9657
|
+
};
|
|
9658
|
+
AssessmentRoiDto: {
|
|
9659
|
+
dictionaryVersion: string;
|
|
9660
|
+
/** Format: date */
|
|
9661
|
+
rolloutDay: string | null;
|
|
9662
|
+
rolloutBoundary: {
|
|
9663
|
+
/** @enum {string} */
|
|
9664
|
+
timezone: "America/New_York";
|
|
9665
|
+
/** @enum {string} */
|
|
9666
|
+
boundary: "midnight";
|
|
9667
|
+
/** Format: date-time */
|
|
9668
|
+
startsAt: string | null;
|
|
9669
|
+
};
|
|
9670
|
+
windows: {
|
|
9671
|
+
pre: components["schemas"]["AssessmentRoiWindowDto"] | null;
|
|
9672
|
+
transition: components["schemas"]["AssessmentRoiDayRangeDto"] | null;
|
|
9673
|
+
post: components["schemas"]["AssessmentRoiWindowDto"] | null;
|
|
9674
|
+
};
|
|
9675
|
+
/** @description Recorded daily AI spend inside the post window. Never estimated. */
|
|
9676
|
+
cost: {
|
|
9677
|
+
amountUsd: number | null;
|
|
9678
|
+
/** @enum {string|null} */
|
|
9679
|
+
currency: "USD" | null;
|
|
9680
|
+
providers: string[];
|
|
9681
|
+
};
|
|
9682
|
+
confounders: {
|
|
9683
|
+
/** @description Null when no named-event input is stored. */
|
|
9684
|
+
namedEvent: boolean | null;
|
|
9685
|
+
headcountChangeRatio: number | null;
|
|
9686
|
+
/** @description Repositories with merged pull requests in only one window, over pre-window repositories. */
|
|
9687
|
+
repositoryScopeChangeRatio: number | null;
|
|
9688
|
+
};
|
|
9689
|
+
/** @enum {string} */
|
|
9690
|
+
status: "assessable" | "not_assessable";
|
|
9691
|
+
reason: components["schemas"]["AssessmentRoiReasonDto"] | null;
|
|
9692
|
+
incrementalNormalizedShipWeight: number | null;
|
|
9693
|
+
costPerIncrementalShipWeightUsd: number | null;
|
|
9694
|
+
/** @description Separate correlation. Never the sold ROI figure. */
|
|
9695
|
+
costPerMergedPullRequestUsd: number | null;
|
|
9696
|
+
};
|
|
9697
|
+
AggregateUseConsentDto: {
|
|
9698
|
+
/**
|
|
9699
|
+
* @description Saved choice. `unset` means the workspace never chose and is treated as opted out.
|
|
9700
|
+
* @enum {string}
|
|
9701
|
+
*/
|
|
9702
|
+
aggregateUse: "opt_in" | "opt_out" | "unset";
|
|
9703
|
+
/** @description True only for `opt_in`. Benchmark and marketing extraction must check this. */
|
|
9704
|
+
effective: boolean;
|
|
9179
9705
|
/** @description Notice version accepted with the current opt-in; null otherwise. */
|
|
9180
9706
|
noticeVersion: string | null;
|
|
9181
9707
|
/** @enum {string|null} */
|
|
@@ -9207,7 +9733,7 @@ export interface components {
|
|
|
9207
9733
|
};
|
|
9208
9734
|
AssessmentDictionaryDto: {
|
|
9209
9735
|
/** @enum {string} */
|
|
9210
|
-
version: "2026-10-
|
|
9736
|
+
version: "2026-10-24.1";
|
|
9211
9737
|
/** @enum {integer} */
|
|
9212
9738
|
periodDays: 90;
|
|
9213
9739
|
/** @enum {integer} */
|
|
@@ -9285,8 +9811,22 @@ export interface components {
|
|
|
9285
9811
|
costAssessableCurrency: "USD";
|
|
9286
9812
|
};
|
|
9287
9813
|
unresolved: {
|
|
9288
|
-
baselinePrice:
|
|
9289
|
-
|
|
9814
|
+
baselinePrice: {
|
|
9815
|
+
/** @enum {string} */
|
|
9816
|
+
status: "set";
|
|
9817
|
+
/** @enum {integer} */
|
|
9818
|
+
amountUsd: 4999;
|
|
9819
|
+
/** @enum {string} */
|
|
9820
|
+
taxes: "extra";
|
|
9821
|
+
};
|
|
9822
|
+
premiumPrice: {
|
|
9823
|
+
/** @enum {string} */
|
|
9824
|
+
status: "set";
|
|
9825
|
+
/** @enum {integer} */
|
|
9826
|
+
amountUsd: 9999;
|
|
9827
|
+
/** @enum {string} */
|
|
9828
|
+
taxes: "extra";
|
|
9829
|
+
};
|
|
9290
9830
|
currency: {
|
|
9291
9831
|
/** @enum {string} */
|
|
9292
9832
|
status: "set";
|
|
@@ -9334,7 +9874,14 @@ export interface components {
|
|
|
9334
9874
|
/** @enum {string} */
|
|
9335
9875
|
holidays: "none";
|
|
9336
9876
|
};
|
|
9337
|
-
|
|
9877
|
+
/** @description Owner decision without counsel acceptance; `counselAccepted` stays false. */
|
|
9878
|
+
countryAllowList: {
|
|
9879
|
+
/** @enum {string} */
|
|
9880
|
+
status: "set";
|
|
9881
|
+
countries: ("US" | "BH" | "KW" | "OM" | "QA" | "SA" | "AE")[];
|
|
9882
|
+
/** @enum {boolean} */
|
|
9883
|
+
counselAccepted: false;
|
|
9884
|
+
};
|
|
9338
9885
|
};
|
|
9339
9886
|
};
|
|
9340
9887
|
/** @description Metadata for a successful Report Center PDF download. Secret-free; no table payloads. Recorded as `report.exported` on the workspace activity log. */
|
|
@@ -9361,6 +9908,126 @@ export interface components {
|
|
|
9361
9908
|
providerIds?: string[];
|
|
9362
9909
|
repoIds?: string[];
|
|
9363
9910
|
};
|
|
9911
|
+
StoreAssessmentReportBodyDto: {
|
|
9912
|
+
/** @description The buyer PDF, base64-encoded. Must start with `%PDF-`; at most 10 MiB decoded. */
|
|
9913
|
+
pdfBase64: string;
|
|
9914
|
+
build: components["schemas"]["BuildAssessmentManifestBodyDto"];
|
|
9915
|
+
/** @description `result.contentHash` from the `buildWorkspaceAssessmentManifest` call the PDF was rendered from. The server rebuilds the manifest and rejects a different hash. */
|
|
9916
|
+
contentHash: string;
|
|
9917
|
+
};
|
|
9918
|
+
BuildAssessmentManifestBodyDto: {
|
|
9919
|
+
/** @enum {string} */
|
|
9920
|
+
offerId: "engineering_readiness_baseline" | "agentic_ai_roi";
|
|
9921
|
+
/** @enum {string} */
|
|
9922
|
+
shareMode: "internal" | "external";
|
|
9923
|
+
/** @description Every selected section with its render status. Ids are unique. */
|
|
9924
|
+
sections: {
|
|
9925
|
+
id: string;
|
|
9926
|
+
/** @enum {string} */
|
|
9927
|
+
status: "ok" | "failed" | "omitted";
|
|
9928
|
+
reason?: string;
|
|
9929
|
+
}[];
|
|
9930
|
+
/** @description The matched-period ROI chapter as printed, copied from the `getWorkspaceAssessmentRoi` result it rendered. Null or omitted when the chapter did not print one. */
|
|
9931
|
+
roi?: components["schemas"]["PrintedAssessmentRoiDto"] | null;
|
|
9932
|
+
};
|
|
9933
|
+
PrintedAssessmentRoiDto: {
|
|
9934
|
+
/** @enum {string} */
|
|
9935
|
+
status: "assessable" | "not_assessable";
|
|
9936
|
+
reason: string | null;
|
|
9937
|
+
incrementalNormalizedShipWeight: number | null;
|
|
9938
|
+
costPerIncrementalShipWeightUsd: number | null;
|
|
9939
|
+
costPerMergedPullRequestUsd: number | null;
|
|
9940
|
+
};
|
|
9941
|
+
BuildAssessmentManifestResponseDto: {
|
|
9942
|
+
validation: components["schemas"]["AssessmentManifestValidationBodyDto"];
|
|
9943
|
+
result: components["schemas"]["AssessmentManifestValidationResultDto"];
|
|
9944
|
+
};
|
|
9945
|
+
StoreAssessmentReportRejectedDto: {
|
|
9946
|
+
error: string;
|
|
9947
|
+
/** @enum {string} */
|
|
9948
|
+
code: "not_buyer_deliverable" | "manifest_changed";
|
|
9949
|
+
/** @enum {string} */
|
|
9950
|
+
validation?: "validated" | "not_validated";
|
|
9951
|
+
reasons?: {
|
|
9952
|
+
code: string;
|
|
9953
|
+
message: string;
|
|
9954
|
+
}[];
|
|
9955
|
+
};
|
|
9956
|
+
AssessmentReportLinkDto: {
|
|
9957
|
+
/** Format: uuid */
|
|
9958
|
+
id: string;
|
|
9959
|
+
/** Format: uuid */
|
|
9960
|
+
reportId: string;
|
|
9961
|
+
/** Format: uuid */
|
|
9962
|
+
recipientUserId: string;
|
|
9963
|
+
/** @description Null when the recipient is no longer a workspace member. */
|
|
9964
|
+
recipientEmail: string | null;
|
|
9965
|
+
recipientName: string | null;
|
|
9966
|
+
/** Format: date-time */
|
|
9967
|
+
expiresAt: string;
|
|
9968
|
+
/** Format: date-time */
|
|
9969
|
+
revokedAt: string | null;
|
|
9970
|
+
/** Format: date-time */
|
|
9971
|
+
createdAt: string;
|
|
9972
|
+
/** Format: date-time */
|
|
9973
|
+
lastAccessedAt: string | null;
|
|
9974
|
+
/** @enum {string} */
|
|
9975
|
+
status: "active" | "expired" | "revoked";
|
|
9976
|
+
};
|
|
9977
|
+
AssessmentReportDto: {
|
|
9978
|
+
/** Format: uuid */
|
|
9979
|
+
id: string;
|
|
9980
|
+
/** @enum {string} */
|
|
9981
|
+
offerId: "engineering_readiness_baseline" | "agentic_ai_roi";
|
|
9982
|
+
sizeBytes: number;
|
|
9983
|
+
/** @description sha256 of the plaintext PDF. */
|
|
9984
|
+
sha256: string;
|
|
9985
|
+
/** @description `contentHash` of the validated manifest. */
|
|
9986
|
+
manifestHash: string;
|
|
9987
|
+
/** Format: date-time */
|
|
9988
|
+
createdAt: string;
|
|
9989
|
+
/** Format: uuid */
|
|
9990
|
+
createdBy: string | null;
|
|
9991
|
+
/** Format: date-time */
|
|
9992
|
+
hiddenAt: string | null;
|
|
9993
|
+
/**
|
|
9994
|
+
* Format: date-time
|
|
9995
|
+
* @description End of the restore window. Not an erasure or backup purge date.
|
|
9996
|
+
*/
|
|
9997
|
+
restoreUntil: string | null;
|
|
9998
|
+
/** @enum {string} */
|
|
9999
|
+
status: "available" | "hidden_restorable" | "restore_window_ended";
|
|
10000
|
+
links: components["schemas"]["AssessmentReportLinkDto"][];
|
|
10001
|
+
};
|
|
10002
|
+
AssessmentReportListDto: {
|
|
10003
|
+
/** @enum {integer} */
|
|
10004
|
+
restoreWindowDays: 30;
|
|
10005
|
+
/**
|
|
10006
|
+
* @description Default and maximum secure link lifetime in days.
|
|
10007
|
+
* @enum {integer}
|
|
10008
|
+
*/
|
|
10009
|
+
secureLinkDays: 14;
|
|
10010
|
+
reports: components["schemas"]["AssessmentReportDto"][];
|
|
10011
|
+
};
|
|
10012
|
+
CreateAssessmentReportLinkBodyDto: {
|
|
10013
|
+
/**
|
|
10014
|
+
* Format: uuid
|
|
10015
|
+
* @description A current workspace member (`TeamMemberDto.id`).
|
|
10016
|
+
*/
|
|
10017
|
+
recipientUserId: string;
|
|
10018
|
+
/** @default 14 */
|
|
10019
|
+
expiresInDays: number;
|
|
10020
|
+
};
|
|
10021
|
+
CreateAssessmentReportLinkResponseDto: {
|
|
10022
|
+
link: components["schemas"]["AssessmentReportLinkDto"];
|
|
10023
|
+
/** @enum {string} */
|
|
10024
|
+
email: "sent" | "skipped_missing_smtp" | "skipped_missing_base_url" | "failed";
|
|
10025
|
+
};
|
|
10026
|
+
AssessmentReportAccessErrorDto: {
|
|
10027
|
+
error: string;
|
|
10028
|
+
/** @enum {string} */
|
|
10029
|
+
code: "leaked_token" | "removed_member" | "wrong_workspace" | "expired" | "revoked" | "invalid_grant" | "report_hidden";
|
|
10030
|
+
};
|
|
9364
10031
|
ReportCenterExportRecordResponseDto: {
|
|
9365
10032
|
/** @enum {boolean} */
|
|
9366
10033
|
ok: true;
|
|
@@ -11756,6 +12423,8 @@ export interface components {
|
|
|
11756
12423
|
};
|
|
11757
12424
|
parameters: {
|
|
11758
12425
|
WorkspaceId: string;
|
|
12426
|
+
/** @description Stored assessment report id (`tai_workspace_assessment_reports.id`). */
|
|
12427
|
+
AssessmentReportId: string;
|
|
11759
12428
|
/** @description Eval suite id (`tai_workspace_eval_suites.id`). */
|
|
11760
12429
|
EvalSuiteId: string;
|
|
11761
12430
|
/** @description Platform starter pack id (kebab-case), e.g. `pr-review`. Not a UUID. */
|
|
@@ -11845,6 +12514,8 @@ export interface components {
|
|
|
11845
12514
|
headers: never;
|
|
11846
12515
|
pathItems: never;
|
|
11847
12516
|
}
|
|
12517
|
+
export type AssessmentManifestValidationBodyDto = components['schemas']['AssessmentManifestValidationBodyDto'];
|
|
12518
|
+
export type AssessmentManifestValidationResultDto = components['schemas']['AssessmentManifestValidationResultDto'];
|
|
11848
12519
|
export type TeamsInstallUrlDto = components['schemas']['TeamsInstallUrlDto'];
|
|
11849
12520
|
export type TeamsConnectionDto = components['schemas']['TeamsConnectionDto'];
|
|
11850
12521
|
export type TeamsChannelBodyDto = components['schemas']['TeamsChannelBodyDto'];
|
|
@@ -12074,6 +12745,12 @@ export type NdaCompletionExternalDto = components['schemas']['NdaCompletionExter
|
|
|
12074
12745
|
export type NdaExternalBodyDto = components['schemas']['NdaExternalBodyDto'];
|
|
12075
12746
|
export type ReadinessDimensionDto = components['schemas']['ReadinessDimensionDto'];
|
|
12076
12747
|
export type ReadinessDimensionId = components['schemas']['ReadinessDimensionId'];
|
|
12748
|
+
export type ExternalVcsProviderDto = components['schemas']['ExternalVcsProviderDto'];
|
|
12749
|
+
export type GitVcsSourceDto = components['schemas']['GitVcsSourceDto'];
|
|
12750
|
+
export type VcsDiscoveredRepoDto = components['schemas']['VcsDiscoveredRepoDto'];
|
|
12751
|
+
export type VcsRepoDiscoveryResponseDto = components['schemas']['VcsRepoDiscoveryResponseDto'];
|
|
12752
|
+
export type VcsProviderCoverageRowDto = components['schemas']['VcsProviderCoverageRowDto'];
|
|
12753
|
+
export type VcsProviderCoverageDto = components['schemas']['VcsProviderCoverageDto'];
|
|
12077
12754
|
export type RepoProviderDto = components['schemas']['RepoProviderDto'];
|
|
12078
12755
|
export type ReadinessAnalyzeBodyDto = components['schemas']['ReadinessAnalyzeBodyDto'];
|
|
12079
12756
|
export type ReadinessInitializeResponseDto = components['schemas']['ReadinessInitializeResponseDto'];
|
|
@@ -12215,12 +12892,29 @@ export type PutAgenticFoundationRepoScopeAppliedDto = components['schemas']['Put
|
|
|
12215
12892
|
export type PutAgenticFoundationRepoScopeFailureDto = components['schemas']['PutAgenticFoundationRepoScopeFailureDto'];
|
|
12216
12893
|
export type PutAgenticFoundationRepoScopeResponseDto = components['schemas']['PutAgenticFoundationRepoScopeResponseDto'];
|
|
12217
12894
|
export type ActivityLogEventTypeDto = components['schemas']['ActivityLogEventTypeDto'];
|
|
12218
|
-
export type UnsetAssessmentDecisionDto = components['schemas']['UnsetAssessmentDecisionDto'];
|
|
12219
12895
|
export type AggregateUseNoticeStatusDto = components['schemas']['AggregateUseNoticeStatusDto'];
|
|
12896
|
+
export type AssessmentNamedEventDto = components['schemas']['AssessmentNamedEventDto'];
|
|
12897
|
+
export type AssessmentRolloutDto = components['schemas']['AssessmentRolloutDto'];
|
|
12898
|
+
export type AssessmentRolloutPutDto = components['schemas']['AssessmentRolloutPutDto'];
|
|
12899
|
+
export type AssessmentRoiReasonDto = components['schemas']['AssessmentRoiReasonDto'];
|
|
12900
|
+
export type AssessmentRoiDayRangeDto = components['schemas']['AssessmentRoiDayRangeDto'];
|
|
12901
|
+
export type AssessmentRoiWindowDto = components['schemas']['AssessmentRoiWindowDto'];
|
|
12902
|
+
export type AssessmentRoiDto = components['schemas']['AssessmentRoiDto'];
|
|
12220
12903
|
export type AggregateUseConsentDto = components['schemas']['AggregateUseConsentDto'];
|
|
12221
12904
|
export type AggregateUseConsentPutDto = components['schemas']['AggregateUseConsentPutDto'];
|
|
12222
12905
|
export type AssessmentDictionaryDto = components['schemas']['AssessmentDictionaryDto'];
|
|
12223
12906
|
export type ReportCenterExportRecordBodyDto = components['schemas']['ReportCenterExportRecordBodyDto'];
|
|
12907
|
+
export type StoreAssessmentReportBodyDto = components['schemas']['StoreAssessmentReportBodyDto'];
|
|
12908
|
+
export type BuildAssessmentManifestBodyDto = components['schemas']['BuildAssessmentManifestBodyDto'];
|
|
12909
|
+
export type PrintedAssessmentRoiDto = components['schemas']['PrintedAssessmentRoiDto'];
|
|
12910
|
+
export type BuildAssessmentManifestResponseDto = components['schemas']['BuildAssessmentManifestResponseDto'];
|
|
12911
|
+
export type StoreAssessmentReportRejectedDto = components['schemas']['StoreAssessmentReportRejectedDto'];
|
|
12912
|
+
export type AssessmentReportLinkDto = components['schemas']['AssessmentReportLinkDto'];
|
|
12913
|
+
export type AssessmentReportDto = components['schemas']['AssessmentReportDto'];
|
|
12914
|
+
export type AssessmentReportListDto = components['schemas']['AssessmentReportListDto'];
|
|
12915
|
+
export type CreateAssessmentReportLinkBodyDto = components['schemas']['CreateAssessmentReportLinkBodyDto'];
|
|
12916
|
+
export type CreateAssessmentReportLinkResponseDto = components['schemas']['CreateAssessmentReportLinkResponseDto'];
|
|
12917
|
+
export type AssessmentReportAccessErrorDto = components['schemas']['AssessmentReportAccessErrorDto'];
|
|
12224
12918
|
export type ReportCenterExportRecordResponseDto = components['schemas']['ReportCenterExportRecordResponseDto'];
|
|
12225
12919
|
export type ActivityLogActorDto = components['schemas']['ActivityLogActorDto'];
|
|
12226
12920
|
export type ActivityLogEntryDto = components['schemas']['ActivityLogEntryDto'];
|
|
@@ -12449,6 +13143,7 @@ export type ResponseUnauthorized = components['responses']['Unauthorized'];
|
|
|
12449
13143
|
export type ResponseForbidden = components['responses']['Forbidden'];
|
|
12450
13144
|
export type ResponseZenHrSyncInProgress = components['responses']['ZenHrSyncInProgress'];
|
|
12451
13145
|
export type ParameterWorkspaceId = components['parameters']['WorkspaceId'];
|
|
13146
|
+
export type ParameterAssessmentReportId = components['parameters']['AssessmentReportId'];
|
|
12452
13147
|
export type ParameterEvalSuiteId = components['parameters']['EvalSuiteId'];
|
|
12453
13148
|
export type ParameterEvalPackId = components['parameters']['EvalPackId'];
|
|
12454
13149
|
export type ParameterEvalRunId = components['parameters']['EvalRunId'];
|
|
@@ -12919,6 +13614,11 @@ export interface operations {
|
|
|
12919
13614
|
label: string;
|
|
12920
13615
|
href: string | null;
|
|
12921
13616
|
} | null;
|
|
13617
|
+
/**
|
|
13618
|
+
* Format: date
|
|
13619
|
+
* @description America/New_York day the five-business-day clock started.
|
|
13620
|
+
*/
|
|
13621
|
+
clockStartedOn: string | null;
|
|
12922
13622
|
/** Format: date */
|
|
12923
13623
|
dueDate: string | null;
|
|
12924
13624
|
/** Format: date-time */
|
|
@@ -12962,68 +13662,7 @@ export interface operations {
|
|
|
12962
13662
|
};
|
|
12963
13663
|
requestBody: {
|
|
12964
13664
|
content: {
|
|
12965
|
-
"application/json":
|
|
12966
|
-
manifest: {
|
|
12967
|
-
/** @enum {string} */
|
|
12968
|
-
offerId: "engineering_readiness_baseline" | "agentic_ai_roi";
|
|
12969
|
-
dictionaryVersion: string;
|
|
12970
|
-
/** @enum {string} */
|
|
12971
|
-
validation: "validated" | "not_validated";
|
|
12972
|
-
/** @enum {string} */
|
|
12973
|
-
shareMode: "internal" | "external";
|
|
12974
|
-
/** @enum {string|null} */
|
|
12975
|
-
watermark: "NOT VALIDATED" | "SAMPLE · SYNTHETIC DATA" | null;
|
|
12976
|
-
scope: {
|
|
12977
|
-
repositories: {
|
|
12978
|
-
id: string;
|
|
12979
|
-
name: string;
|
|
12980
|
-
}[];
|
|
12981
|
-
excluded: {
|
|
12982
|
-
id: string;
|
|
12983
|
-
name: string;
|
|
12984
|
-
reason: string;
|
|
12985
|
-
}[];
|
|
12986
|
-
};
|
|
12987
|
-
windows: {
|
|
12988
|
-
pre: {
|
|
12989
|
-
start: string;
|
|
12990
|
-
end: string;
|
|
12991
|
-
} | null;
|
|
12992
|
-
post: {
|
|
12993
|
-
start: string;
|
|
12994
|
-
end: string;
|
|
12995
|
-
} | null;
|
|
12996
|
-
transitionDays: number;
|
|
12997
|
-
};
|
|
12998
|
-
sources: {
|
|
12999
|
-
provider: string;
|
|
13000
|
-
status: string;
|
|
13001
|
-
freshAt: string | null;
|
|
13002
|
-
}[];
|
|
13003
|
-
consent: {
|
|
13004
|
-
/** @enum {string} */
|
|
13005
|
-
aggregateUse: "opt_in" | "opt_out" | "unset";
|
|
13006
|
-
recordedAt: string | null;
|
|
13007
|
-
};
|
|
13008
|
-
sections: {
|
|
13009
|
-
id: string;
|
|
13010
|
-
/** @enum {string} */
|
|
13011
|
-
status: "ok" | "failed" | "omitted";
|
|
13012
|
-
reason?: string;
|
|
13013
|
-
}[];
|
|
13014
|
-
};
|
|
13015
|
-
workspaceId: string;
|
|
13016
|
-
expectedWorkspaceId: string;
|
|
13017
|
-
expectedRepositoryIds: string[];
|
|
13018
|
-
soldWindowComplete: boolean;
|
|
13019
|
-
premiumAiAssessable: boolean;
|
|
13020
|
-
namedPersonSectionIds: string[];
|
|
13021
|
-
tolerances: {
|
|
13022
|
-
id: string;
|
|
13023
|
-
/** @enum {string} */
|
|
13024
|
-
status: "unset" | "exceeded" | "within";
|
|
13025
|
-
}[];
|
|
13026
|
-
};
|
|
13665
|
+
"application/json": components["schemas"]["AssessmentManifestValidationBodyDto"];
|
|
13027
13666
|
};
|
|
13028
13667
|
};
|
|
13029
13668
|
responses: {
|
|
@@ -13033,18 +13672,7 @@ export interface operations {
|
|
|
13033
13672
|
[name: string]: unknown;
|
|
13034
13673
|
};
|
|
13035
13674
|
content: {
|
|
13036
|
-
"application/json":
|
|
13037
|
-
buyerDeliverable: boolean;
|
|
13038
|
-
/** @enum {string} */
|
|
13039
|
-
validation: "validated" | "not_validated";
|
|
13040
|
-
/** @enum {string|null} */
|
|
13041
|
-
watermark: "NOT VALIDATED" | null;
|
|
13042
|
-
reasons: {
|
|
13043
|
-
code: string;
|
|
13044
|
-
message: string;
|
|
13045
|
-
}[];
|
|
13046
|
-
contentHash: string;
|
|
13047
|
-
};
|
|
13675
|
+
"application/json": components["schemas"]["AssessmentManifestValidationResultDto"];
|
|
13048
13676
|
};
|
|
13049
13677
|
};
|
|
13050
13678
|
/** @description Body failed validation. */
|
|
@@ -13088,102 +13716,48 @@ export interface operations {
|
|
|
13088
13716
|
};
|
|
13089
13717
|
};
|
|
13090
13718
|
};
|
|
13091
|
-
|
|
13719
|
+
validateWorkspaceAssessmentManifest: {
|
|
13092
13720
|
parameters: {
|
|
13093
|
-
query?:
|
|
13094
|
-
/** @description Filter by workspace UUID. */
|
|
13095
|
-
workspaceId?: string;
|
|
13096
|
-
/** @description Filter by repository slug (e.g. `owner/repo`). */
|
|
13097
|
-
providerSlug?: string;
|
|
13098
|
-
/** @description Filter by operation type. */
|
|
13099
|
-
operation?: "readiness_analysis" | "readiness_fix";
|
|
13100
|
-
/** @description Include only rows created at or after this ISO-8601 timestamp. */
|
|
13101
|
-
from?: string;
|
|
13102
|
-
/** @description Include only rows created at or before this ISO-8601 timestamp. */
|
|
13103
|
-
to?: string;
|
|
13104
|
-
/** @description Maximum number of rows to return (default 200, max 1000). */
|
|
13105
|
-
limit?: number;
|
|
13106
|
-
};
|
|
13721
|
+
query?: never;
|
|
13107
13722
|
header?: never;
|
|
13108
|
-
path
|
|
13723
|
+
path: {
|
|
13724
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
13725
|
+
};
|
|
13109
13726
|
cookie?: never;
|
|
13110
13727
|
};
|
|
13111
|
-
requestBody
|
|
13728
|
+
requestBody: {
|
|
13729
|
+
content: {
|
|
13730
|
+
"application/json": components["schemas"]["AssessmentManifestValidationBodyDto"];
|
|
13731
|
+
};
|
|
13732
|
+
};
|
|
13112
13733
|
responses: {
|
|
13113
|
-
/** @description
|
|
13734
|
+
/** @description Validation result. Client validation and watermark inputs are ignored. */
|
|
13114
13735
|
200: {
|
|
13115
13736
|
headers: {
|
|
13116
13737
|
[name: string]: unknown;
|
|
13117
13738
|
};
|
|
13118
13739
|
content: {
|
|
13119
|
-
"application/json":
|
|
13120
|
-
rows: components["schemas"]["ReadinessTokenUsageRowDto"][];
|
|
13121
|
-
};
|
|
13122
|
-
};
|
|
13123
|
-
};
|
|
13124
|
-
/** @description Missing or invalid JWT. */
|
|
13125
|
-
401: {
|
|
13126
|
-
headers: {
|
|
13127
|
-
[name: string]: unknown;
|
|
13128
|
-
};
|
|
13129
|
-
content: {
|
|
13130
|
-
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
13740
|
+
"application/json": components["schemas"]["AssessmentManifestValidationResultDto"];
|
|
13131
13741
|
};
|
|
13132
13742
|
};
|
|
13133
|
-
/** @description
|
|
13134
|
-
|
|
13743
|
+
/** @description Body failed validation. */
|
|
13744
|
+
400: {
|
|
13135
13745
|
headers: {
|
|
13136
13746
|
[name: string]: unknown;
|
|
13137
13747
|
};
|
|
13138
13748
|
content: {
|
|
13139
13749
|
/**
|
|
13140
13750
|
* @example {
|
|
13141
|
-
* "error": "
|
|
13142
|
-
* "code": "
|
|
13751
|
+
* "error": "manifest.offerId is not a known assessment offer",
|
|
13752
|
+
* "code": "invalid_body"
|
|
13143
13753
|
* }
|
|
13144
13754
|
*/
|
|
13145
13755
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
13146
13756
|
};
|
|
13147
13757
|
};
|
|
13148
|
-
|
|
13149
|
-
|
|
13150
|
-
|
|
13151
|
-
parameters: {
|
|
13152
|
-
query?: {
|
|
13153
|
-
/** @description Filter by workspace UUID. */
|
|
13154
|
-
workspaceId?: string;
|
|
13155
|
-
/** @description Filter by repository slug (e.g. `owner/repo`). */
|
|
13156
|
-
providerSlug?: string;
|
|
13157
|
-
/** @description Filter by operation type. */
|
|
13158
|
-
operation?: "readiness_analysis" | "readiness_fix";
|
|
13159
|
-
/** @description Filter by a specific readiness dimension ID. */
|
|
13160
|
-
dimensionId?: string;
|
|
13161
|
-
/** @description Include only rows whose last activity is at or after this ISO-8601 timestamp. */
|
|
13162
|
-
from?: string;
|
|
13163
|
-
/** @description Include only rows whose first activity is at or before this ISO-8601 timestamp. */
|
|
13164
|
-
to?: string;
|
|
13165
|
-
/** @description Maximum number of rows to return (default 200, max 500). */
|
|
13166
|
-
limit?: number;
|
|
13167
|
-
};
|
|
13168
|
-
header?: never;
|
|
13169
|
-
path?: never;
|
|
13170
|
-
cookie?: never;
|
|
13171
|
-
};
|
|
13172
|
-
requestBody?: never;
|
|
13173
|
-
responses: {
|
|
13174
|
-
/** @description Token usage grouped by operation and dimension. */
|
|
13175
|
-
200: {
|
|
13176
|
-
headers: {
|
|
13177
|
-
[name: string]: unknown;
|
|
13178
|
-
};
|
|
13179
|
-
content: {
|
|
13180
|
-
"application/json": {
|
|
13181
|
-
rows: components["schemas"]["ReadinessTokenUsageByDimensionRowDto"][];
|
|
13182
|
-
};
|
|
13183
|
-
};
|
|
13184
|
-
};
|
|
13185
|
-
/** @description Missing or invalid JWT. */
|
|
13186
|
-
401: {
|
|
13758
|
+
401: components["responses"]["Unauthorized"];
|
|
13759
|
+
/** @description Caller cannot validate this workspace. */
|
|
13760
|
+
403: {
|
|
13187
13761
|
headers: {
|
|
13188
13762
|
[name: string]: unknown;
|
|
13189
13763
|
};
|
|
@@ -13191,16 +13765,15 @@ export interface operations {
|
|
|
13191
13765
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
13192
13766
|
};
|
|
13193
13767
|
};
|
|
13194
|
-
/** @description
|
|
13195
|
-
|
|
13768
|
+
/** @description Workspace does not exist. */
|
|
13769
|
+
404: {
|
|
13196
13770
|
headers: {
|
|
13197
13771
|
[name: string]: unknown;
|
|
13198
13772
|
};
|
|
13199
13773
|
content: {
|
|
13200
13774
|
/**
|
|
13201
13775
|
* @example {
|
|
13202
|
-
* "error": "
|
|
13203
|
-
* "code": "forbidden"
|
|
13776
|
+
* "error": "Not found"
|
|
13204
13777
|
* }
|
|
13205
13778
|
*/
|
|
13206
13779
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
@@ -13208,29 +13781,31 @@ export interface operations {
|
|
|
13208
13781
|
};
|
|
13209
13782
|
};
|
|
13210
13783
|
};
|
|
13211
|
-
|
|
13784
|
+
buildWorkspaceAssessmentManifest: {
|
|
13212
13785
|
parameters: {
|
|
13213
13786
|
query?: never;
|
|
13214
13787
|
header?: never;
|
|
13215
|
-
path
|
|
13788
|
+
path: {
|
|
13789
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
13790
|
+
};
|
|
13216
13791
|
cookie?: never;
|
|
13217
13792
|
};
|
|
13218
13793
|
requestBody: {
|
|
13219
13794
|
content: {
|
|
13220
|
-
"application/json": components["schemas"]["
|
|
13795
|
+
"application/json": components["schemas"]["BuildAssessmentManifestBodyDto"];
|
|
13221
13796
|
};
|
|
13222
13797
|
};
|
|
13223
13798
|
responses: {
|
|
13224
|
-
/** @description
|
|
13225
|
-
|
|
13799
|
+
/** @description Server-built manifest body and its validation result. */
|
|
13800
|
+
200: {
|
|
13226
13801
|
headers: {
|
|
13227
13802
|
[name: string]: unknown;
|
|
13228
13803
|
};
|
|
13229
13804
|
content: {
|
|
13230
|
-
"application/json": components["schemas"]["
|
|
13805
|
+
"application/json": components["schemas"]["BuildAssessmentManifestResponseDto"];
|
|
13231
13806
|
};
|
|
13232
13807
|
};
|
|
13233
|
-
/** @description
|
|
13808
|
+
/** @description Body failed validation. */
|
|
13234
13809
|
400: {
|
|
13235
13810
|
headers: {
|
|
13236
13811
|
[name: string]: unknown;
|
|
@@ -13238,30 +13813,234 @@ export interface operations {
|
|
|
13238
13813
|
content: {
|
|
13239
13814
|
/**
|
|
13240
13815
|
* @example {
|
|
13241
|
-
* "error": "
|
|
13242
|
-
* "code": "
|
|
13816
|
+
* "error": "offerId is not a known assessment offer",
|
|
13817
|
+
* "code": "invalid_body"
|
|
13243
13818
|
* }
|
|
13244
13819
|
*/
|
|
13245
13820
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
13246
13821
|
};
|
|
13247
13822
|
};
|
|
13248
|
-
|
|
13249
|
-
|
|
13823
|
+
401: components["responses"]["Unauthorized"];
|
|
13824
|
+
/** @description Caller cannot build this workspace's manifest. */
|
|
13825
|
+
403: {
|
|
13250
13826
|
headers: {
|
|
13251
13827
|
[name: string]: unknown;
|
|
13252
13828
|
};
|
|
13253
13829
|
content: {
|
|
13254
13830
|
/**
|
|
13255
13831
|
* @example {
|
|
13256
|
-
* "error": "
|
|
13257
|
-
* "code": "
|
|
13832
|
+
* "error": "Forbidden",
|
|
13833
|
+
* "code": "workspace_admin_required"
|
|
13258
13834
|
* }
|
|
13259
13835
|
*/
|
|
13260
13836
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
13261
13837
|
};
|
|
13262
13838
|
};
|
|
13263
|
-
/** @description
|
|
13264
|
-
|
|
13839
|
+
/** @description Workspace does not exist. */
|
|
13840
|
+
404: {
|
|
13841
|
+
headers: {
|
|
13842
|
+
[name: string]: unknown;
|
|
13843
|
+
};
|
|
13844
|
+
content: {
|
|
13845
|
+
/**
|
|
13846
|
+
* @example {
|
|
13847
|
+
* "error": "Not found"
|
|
13848
|
+
* }
|
|
13849
|
+
*/
|
|
13850
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
13851
|
+
};
|
|
13852
|
+
};
|
|
13853
|
+
/** @description Stored evidence could not be loaded (no database or a load failure). */
|
|
13854
|
+
503: {
|
|
13855
|
+
headers: {
|
|
13856
|
+
[name: string]: unknown;
|
|
13857
|
+
};
|
|
13858
|
+
content: {
|
|
13859
|
+
/**
|
|
13860
|
+
* @example {
|
|
13861
|
+
* "error": "Service unavailable",
|
|
13862
|
+
* "code": "evidence_unavailable"
|
|
13863
|
+
* }
|
|
13864
|
+
*/
|
|
13865
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
13866
|
+
};
|
|
13867
|
+
};
|
|
13868
|
+
};
|
|
13869
|
+
};
|
|
13870
|
+
adminListReadinessTokenUsage: {
|
|
13871
|
+
parameters: {
|
|
13872
|
+
query?: {
|
|
13873
|
+
/** @description Filter by workspace UUID. */
|
|
13874
|
+
workspaceId?: string;
|
|
13875
|
+
/** @description Filter by repository slug (e.g. `owner/repo`). */
|
|
13876
|
+
providerSlug?: string;
|
|
13877
|
+
/** @description Filter by operation type. */
|
|
13878
|
+
operation?: "readiness_analysis" | "readiness_fix";
|
|
13879
|
+
/** @description Include only rows created at or after this ISO-8601 timestamp. */
|
|
13880
|
+
from?: string;
|
|
13881
|
+
/** @description Include only rows created at or before this ISO-8601 timestamp. */
|
|
13882
|
+
to?: string;
|
|
13883
|
+
/** @description Maximum number of rows to return (default 200, max 1000). */
|
|
13884
|
+
limit?: number;
|
|
13885
|
+
};
|
|
13886
|
+
header?: never;
|
|
13887
|
+
path?: never;
|
|
13888
|
+
cookie?: never;
|
|
13889
|
+
};
|
|
13890
|
+
requestBody?: never;
|
|
13891
|
+
responses: {
|
|
13892
|
+
/** @description Token usage rows, newest first. */
|
|
13893
|
+
200: {
|
|
13894
|
+
headers: {
|
|
13895
|
+
[name: string]: unknown;
|
|
13896
|
+
};
|
|
13897
|
+
content: {
|
|
13898
|
+
"application/json": {
|
|
13899
|
+
rows: components["schemas"]["ReadinessTokenUsageRowDto"][];
|
|
13900
|
+
};
|
|
13901
|
+
};
|
|
13902
|
+
};
|
|
13903
|
+
/** @description Missing or invalid JWT. */
|
|
13904
|
+
401: {
|
|
13905
|
+
headers: {
|
|
13906
|
+
[name: string]: unknown;
|
|
13907
|
+
};
|
|
13908
|
+
content: {
|
|
13909
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
13910
|
+
};
|
|
13911
|
+
};
|
|
13912
|
+
/** @description Caller is not a platform admin. */
|
|
13913
|
+
403: {
|
|
13914
|
+
headers: {
|
|
13915
|
+
[name: string]: unknown;
|
|
13916
|
+
};
|
|
13917
|
+
content: {
|
|
13918
|
+
/**
|
|
13919
|
+
* @example {
|
|
13920
|
+
* "error": "Forbidden",
|
|
13921
|
+
* "code": "forbidden"
|
|
13922
|
+
* }
|
|
13923
|
+
*/
|
|
13924
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
13925
|
+
};
|
|
13926
|
+
};
|
|
13927
|
+
};
|
|
13928
|
+
};
|
|
13929
|
+
adminListReadinessTokenUsageByDimension: {
|
|
13930
|
+
parameters: {
|
|
13931
|
+
query?: {
|
|
13932
|
+
/** @description Filter by workspace UUID. */
|
|
13933
|
+
workspaceId?: string;
|
|
13934
|
+
/** @description Filter by repository slug (e.g. `owner/repo`). */
|
|
13935
|
+
providerSlug?: string;
|
|
13936
|
+
/** @description Filter by operation type. */
|
|
13937
|
+
operation?: "readiness_analysis" | "readiness_fix";
|
|
13938
|
+
/** @description Filter by a specific readiness dimension ID. */
|
|
13939
|
+
dimensionId?: string;
|
|
13940
|
+
/** @description Include only rows whose last activity is at or after this ISO-8601 timestamp. */
|
|
13941
|
+
from?: string;
|
|
13942
|
+
/** @description Include only rows whose first activity is at or before this ISO-8601 timestamp. */
|
|
13943
|
+
to?: string;
|
|
13944
|
+
/** @description Maximum number of rows to return (default 200, max 500). */
|
|
13945
|
+
limit?: number;
|
|
13946
|
+
};
|
|
13947
|
+
header?: never;
|
|
13948
|
+
path?: never;
|
|
13949
|
+
cookie?: never;
|
|
13950
|
+
};
|
|
13951
|
+
requestBody?: never;
|
|
13952
|
+
responses: {
|
|
13953
|
+
/** @description Token usage grouped by operation and dimension. */
|
|
13954
|
+
200: {
|
|
13955
|
+
headers: {
|
|
13956
|
+
[name: string]: unknown;
|
|
13957
|
+
};
|
|
13958
|
+
content: {
|
|
13959
|
+
"application/json": {
|
|
13960
|
+
rows: components["schemas"]["ReadinessTokenUsageByDimensionRowDto"][];
|
|
13961
|
+
};
|
|
13962
|
+
};
|
|
13963
|
+
};
|
|
13964
|
+
/** @description Missing or invalid JWT. */
|
|
13965
|
+
401: {
|
|
13966
|
+
headers: {
|
|
13967
|
+
[name: string]: unknown;
|
|
13968
|
+
};
|
|
13969
|
+
content: {
|
|
13970
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
13971
|
+
};
|
|
13972
|
+
};
|
|
13973
|
+
/** @description Caller is not a platform admin. */
|
|
13974
|
+
403: {
|
|
13975
|
+
headers: {
|
|
13976
|
+
[name: string]: unknown;
|
|
13977
|
+
};
|
|
13978
|
+
content: {
|
|
13979
|
+
/**
|
|
13980
|
+
* @example {
|
|
13981
|
+
* "error": "Forbidden",
|
|
13982
|
+
* "code": "forbidden"
|
|
13983
|
+
* }
|
|
13984
|
+
*/
|
|
13985
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
13986
|
+
};
|
|
13987
|
+
};
|
|
13988
|
+
};
|
|
13989
|
+
};
|
|
13990
|
+
submitPublicPrivacyRequest: {
|
|
13991
|
+
parameters: {
|
|
13992
|
+
query?: never;
|
|
13993
|
+
header?: never;
|
|
13994
|
+
path?: never;
|
|
13995
|
+
cookie?: never;
|
|
13996
|
+
};
|
|
13997
|
+
requestBody: {
|
|
13998
|
+
content: {
|
|
13999
|
+
"application/json": components["schemas"]["CreatePrivacyRequestBodyDto"];
|
|
14000
|
+
};
|
|
14001
|
+
};
|
|
14002
|
+
responses: {
|
|
14003
|
+
/** @description Request accepted and queued for privacy ops. */
|
|
14004
|
+
201: {
|
|
14005
|
+
headers: {
|
|
14006
|
+
[name: string]: unknown;
|
|
14007
|
+
};
|
|
14008
|
+
content: {
|
|
14009
|
+
"application/json": components["schemas"]["CreatePrivacyRequestResultDto"];
|
|
14010
|
+
};
|
|
14011
|
+
};
|
|
14012
|
+
/** @description Missing or invalid email, unknown request type, or details too long. */
|
|
14013
|
+
400: {
|
|
14014
|
+
headers: {
|
|
14015
|
+
[name: string]: unknown;
|
|
14016
|
+
};
|
|
14017
|
+
content: {
|
|
14018
|
+
/**
|
|
14019
|
+
* @example {
|
|
14020
|
+
* "error": "A valid email is required",
|
|
14021
|
+
* "code": "invalid_email"
|
|
14022
|
+
* }
|
|
14023
|
+
*/
|
|
14024
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14025
|
+
};
|
|
14026
|
+
};
|
|
14027
|
+
/** @description An open request for this email and type already exists. */
|
|
14028
|
+
409: {
|
|
14029
|
+
headers: {
|
|
14030
|
+
[name: string]: unknown;
|
|
14031
|
+
};
|
|
14032
|
+
content: {
|
|
14033
|
+
/**
|
|
14034
|
+
* @example {
|
|
14035
|
+
* "error": "An open request for this email already exists",
|
|
14036
|
+
* "code": "duplicate_open_request"
|
|
14037
|
+
* }
|
|
14038
|
+
*/
|
|
14039
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
14040
|
+
};
|
|
14041
|
+
};
|
|
14042
|
+
/** @description Too many submissions from this client; retry later. */
|
|
14043
|
+
429: {
|
|
13265
14044
|
headers: {
|
|
13266
14045
|
[name: string]: unknown;
|
|
13267
14046
|
};
|
|
@@ -19264,22 +20043,544 @@ export interface operations {
|
|
|
19264
20043
|
header?: never;
|
|
19265
20044
|
path: {
|
|
19266
20045
|
workspaceId: components["parameters"]["WorkspaceId"];
|
|
19267
|
-
repoId: components["parameters"]["RepoId"];
|
|
20046
|
+
repoId: components["parameters"]["RepoId"];
|
|
20047
|
+
};
|
|
20048
|
+
cookie?: never;
|
|
20049
|
+
};
|
|
20050
|
+
requestBody?: never;
|
|
20051
|
+
responses: {
|
|
20052
|
+
/** @description Markdown file of readiness issues */
|
|
20053
|
+
200: {
|
|
20054
|
+
headers: {
|
|
20055
|
+
[name: string]: unknown;
|
|
20056
|
+
};
|
|
20057
|
+
content: {
|
|
20058
|
+
"text/markdown": string;
|
|
20059
|
+
};
|
|
20060
|
+
};
|
|
20061
|
+
/** @description Malformed `repoId` or invalid query parameters */
|
|
20062
|
+
400: {
|
|
20063
|
+
headers: {
|
|
20064
|
+
[name: string]: unknown;
|
|
20065
|
+
};
|
|
20066
|
+
content: {
|
|
20067
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20068
|
+
};
|
|
20069
|
+
};
|
|
20070
|
+
401: components["responses"]["Unauthorized"];
|
|
20071
|
+
403: components["responses"]["Forbidden"];
|
|
20072
|
+
/** @description Workspace or repository not found */
|
|
20073
|
+
404: {
|
|
20074
|
+
headers: {
|
|
20075
|
+
[name: string]: unknown;
|
|
20076
|
+
};
|
|
20077
|
+
content: {
|
|
20078
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20079
|
+
};
|
|
20080
|
+
};
|
|
20081
|
+
};
|
|
20082
|
+
};
|
|
20083
|
+
listReadinessRepoRuns: {
|
|
20084
|
+
parameters: {
|
|
20085
|
+
query?: {
|
|
20086
|
+
limit?: number;
|
|
20087
|
+
order?: "asc" | "desc";
|
|
20088
|
+
/** @description Opaque cursor from a prior response `nextCursor` field. */
|
|
20089
|
+
cursor?: string;
|
|
20090
|
+
};
|
|
20091
|
+
header?: never;
|
|
20092
|
+
path: {
|
|
20093
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20094
|
+
repoId: components["parameters"]["RepoId"];
|
|
20095
|
+
};
|
|
20096
|
+
cookie?: never;
|
|
20097
|
+
};
|
|
20098
|
+
requestBody?: never;
|
|
20099
|
+
responses: {
|
|
20100
|
+
/** @description Run history page */
|
|
20101
|
+
200: {
|
|
20102
|
+
headers: {
|
|
20103
|
+
[name: string]: unknown;
|
|
20104
|
+
};
|
|
20105
|
+
content: {
|
|
20106
|
+
"application/json": components["schemas"]["ReadinessRepoRunListDto"];
|
|
20107
|
+
};
|
|
20108
|
+
};
|
|
20109
|
+
/** @description Invalid pagination query */
|
|
20110
|
+
400: {
|
|
20111
|
+
headers: {
|
|
20112
|
+
[name: string]: unknown;
|
|
20113
|
+
};
|
|
20114
|
+
content: {
|
|
20115
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20116
|
+
};
|
|
20117
|
+
};
|
|
20118
|
+
401: components["responses"]["Unauthorized"];
|
|
20119
|
+
403: components["responses"]["Forbidden"];
|
|
20120
|
+
/** @description Workspace or repository not found */
|
|
20121
|
+
404: {
|
|
20122
|
+
headers: {
|
|
20123
|
+
[name: string]: unknown;
|
|
20124
|
+
};
|
|
20125
|
+
content: {
|
|
20126
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20127
|
+
};
|
|
20128
|
+
};
|
|
20129
|
+
};
|
|
20130
|
+
};
|
|
20131
|
+
listReadinessAudit: {
|
|
20132
|
+
parameters: {
|
|
20133
|
+
query?: {
|
|
20134
|
+
limit?: number;
|
|
20135
|
+
offset?: number;
|
|
20136
|
+
order?: "asc" | "desc";
|
|
20137
|
+
/** @description Sort column for the activity feed. */
|
|
20138
|
+
sort?: "occurredAt" | "actorName" | "repoName" | "eventType" | "dimensionId";
|
|
20139
|
+
/** @description Case-insensitive match on actor name or email. */
|
|
20140
|
+
search?: string;
|
|
20141
|
+
eventType?: components["schemas"]["ReadinessAuditEventType"];
|
|
20142
|
+
dimensionId?: components["schemas"]["ReadinessDimensionId"];
|
|
20143
|
+
repoId?: string;
|
|
20144
|
+
/** @description ISO-8601 lower bound on `occurredAt` (inclusive). */
|
|
20145
|
+
since?: string;
|
|
20146
|
+
};
|
|
20147
|
+
header?: never;
|
|
20148
|
+
path: {
|
|
20149
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20150
|
+
};
|
|
20151
|
+
cookie?: never;
|
|
20152
|
+
};
|
|
20153
|
+
requestBody?: never;
|
|
20154
|
+
responses: {
|
|
20155
|
+
/** @description Paginated audit entries */
|
|
20156
|
+
200: {
|
|
20157
|
+
headers: {
|
|
20158
|
+
[name: string]: unknown;
|
|
20159
|
+
};
|
|
20160
|
+
content: {
|
|
20161
|
+
"application/json": components["schemas"]["ReadinessAuditListDto"];
|
|
20162
|
+
};
|
|
20163
|
+
};
|
|
20164
|
+
/** @description Invalid query */
|
|
20165
|
+
400: {
|
|
20166
|
+
headers: {
|
|
20167
|
+
[name: string]: unknown;
|
|
20168
|
+
};
|
|
20169
|
+
content: {
|
|
20170
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20171
|
+
};
|
|
20172
|
+
};
|
|
20173
|
+
401: components["responses"]["Unauthorized"];
|
|
20174
|
+
403: components["responses"]["Forbidden"];
|
|
20175
|
+
/** @description Workspace does not exist */
|
|
20176
|
+
404: {
|
|
20177
|
+
headers: {
|
|
20178
|
+
[name: string]: unknown;
|
|
20179
|
+
};
|
|
20180
|
+
content: {
|
|
20181
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20182
|
+
};
|
|
20183
|
+
};
|
|
20184
|
+
};
|
|
20185
|
+
};
|
|
20186
|
+
getAssessmentDictionary: {
|
|
20187
|
+
parameters: {
|
|
20188
|
+
query?: never;
|
|
20189
|
+
header?: never;
|
|
20190
|
+
path: {
|
|
20191
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20192
|
+
};
|
|
20193
|
+
cookie?: never;
|
|
20194
|
+
};
|
|
20195
|
+
requestBody?: never;
|
|
20196
|
+
responses: {
|
|
20197
|
+
/** @description Current assessment dictionary */
|
|
20198
|
+
200: {
|
|
20199
|
+
headers: {
|
|
20200
|
+
[name: string]: unknown;
|
|
20201
|
+
};
|
|
20202
|
+
content: {
|
|
20203
|
+
"application/json": components["schemas"]["AssessmentDictionaryDto"];
|
|
20204
|
+
};
|
|
20205
|
+
};
|
|
20206
|
+
401: components["responses"]["Unauthorized"];
|
|
20207
|
+
403: components["responses"]["Forbidden"];
|
|
20208
|
+
/** @description Workspace does not exist */
|
|
20209
|
+
404: {
|
|
20210
|
+
headers: {
|
|
20211
|
+
[name: string]: unknown;
|
|
20212
|
+
};
|
|
20213
|
+
content: {
|
|
20214
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20215
|
+
};
|
|
20216
|
+
};
|
|
20217
|
+
};
|
|
20218
|
+
};
|
|
20219
|
+
getWorkspaceAssessmentRollout: {
|
|
20220
|
+
parameters: {
|
|
20221
|
+
query?: never;
|
|
20222
|
+
header?: never;
|
|
20223
|
+
path: {
|
|
20224
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20225
|
+
};
|
|
20226
|
+
cookie?: never;
|
|
20227
|
+
};
|
|
20228
|
+
requestBody?: never;
|
|
20229
|
+
responses: {
|
|
20230
|
+
/** @description Current rollout day */
|
|
20231
|
+
200: {
|
|
20232
|
+
headers: {
|
|
20233
|
+
[name: string]: unknown;
|
|
20234
|
+
};
|
|
20235
|
+
content: {
|
|
20236
|
+
"application/json": components["schemas"]["AssessmentRolloutDto"];
|
|
20237
|
+
};
|
|
20238
|
+
};
|
|
20239
|
+
401: components["responses"]["Unauthorized"];
|
|
20240
|
+
403: components["responses"]["Forbidden"];
|
|
20241
|
+
/** @description Workspace does not exist */
|
|
20242
|
+
404: {
|
|
20243
|
+
headers: {
|
|
20244
|
+
[name: string]: unknown;
|
|
20245
|
+
};
|
|
20246
|
+
content: {
|
|
20247
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20248
|
+
};
|
|
20249
|
+
};
|
|
20250
|
+
/** @description Rollout storage is not configured */
|
|
20251
|
+
503: {
|
|
20252
|
+
headers: {
|
|
20253
|
+
[name: string]: unknown;
|
|
20254
|
+
};
|
|
20255
|
+
content: {
|
|
20256
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20257
|
+
};
|
|
20258
|
+
};
|
|
20259
|
+
};
|
|
20260
|
+
};
|
|
20261
|
+
putWorkspaceAssessmentRollout: {
|
|
20262
|
+
parameters: {
|
|
20263
|
+
query?: never;
|
|
20264
|
+
header?: never;
|
|
20265
|
+
path: {
|
|
20266
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20267
|
+
};
|
|
20268
|
+
cookie?: never;
|
|
20269
|
+
};
|
|
20270
|
+
requestBody: {
|
|
20271
|
+
content: {
|
|
20272
|
+
"application/json": components["schemas"]["AssessmentRolloutPutDto"];
|
|
20273
|
+
};
|
|
20274
|
+
};
|
|
20275
|
+
responses: {
|
|
20276
|
+
/** @description Saved rollout day */
|
|
20277
|
+
200: {
|
|
20278
|
+
headers: {
|
|
20279
|
+
[name: string]: unknown;
|
|
20280
|
+
};
|
|
20281
|
+
content: {
|
|
20282
|
+
"application/json": components["schemas"]["AssessmentRolloutDto"];
|
|
20283
|
+
};
|
|
20284
|
+
};
|
|
20285
|
+
/** @description Invalid body, impossible date, or future day (`code`: `invalid_input`) */
|
|
20286
|
+
400: {
|
|
20287
|
+
headers: {
|
|
20288
|
+
[name: string]: unknown;
|
|
20289
|
+
};
|
|
20290
|
+
content: {
|
|
20291
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20292
|
+
};
|
|
20293
|
+
};
|
|
20294
|
+
401: components["responses"]["Unauthorized"];
|
|
20295
|
+
/** @description Caller is not a workspace admin (`code`: `workspace_admin_required`) */
|
|
20296
|
+
403: {
|
|
20297
|
+
headers: {
|
|
20298
|
+
[name: string]: unknown;
|
|
20299
|
+
};
|
|
20300
|
+
content: {
|
|
20301
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20302
|
+
};
|
|
20303
|
+
};
|
|
20304
|
+
/** @description Workspace does not exist */
|
|
20305
|
+
404: {
|
|
20306
|
+
headers: {
|
|
20307
|
+
[name: string]: unknown;
|
|
20308
|
+
};
|
|
20309
|
+
content: {
|
|
20310
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20311
|
+
};
|
|
20312
|
+
};
|
|
20313
|
+
/** @description Rollout storage is not configured */
|
|
20314
|
+
503: {
|
|
20315
|
+
headers: {
|
|
20316
|
+
[name: string]: unknown;
|
|
20317
|
+
};
|
|
20318
|
+
content: {
|
|
20319
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20320
|
+
};
|
|
20321
|
+
};
|
|
20322
|
+
};
|
|
20323
|
+
};
|
|
20324
|
+
getWorkspaceAssessmentRoi: {
|
|
20325
|
+
parameters: {
|
|
20326
|
+
query?: never;
|
|
20327
|
+
header?: never;
|
|
20328
|
+
path: {
|
|
20329
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20330
|
+
};
|
|
20331
|
+
cookie?: never;
|
|
20332
|
+
};
|
|
20333
|
+
requestBody?: never;
|
|
20334
|
+
responses: {
|
|
20335
|
+
/** @description Matched-period ROI result */
|
|
20336
|
+
200: {
|
|
20337
|
+
headers: {
|
|
20338
|
+
[name: string]: unknown;
|
|
20339
|
+
};
|
|
20340
|
+
content: {
|
|
20341
|
+
"application/json": components["schemas"]["AssessmentRoiDto"];
|
|
20342
|
+
};
|
|
20343
|
+
};
|
|
20344
|
+
401: components["responses"]["Unauthorized"];
|
|
20345
|
+
403: components["responses"]["Forbidden"];
|
|
20346
|
+
/** @description Workspace does not exist */
|
|
20347
|
+
404: {
|
|
20348
|
+
headers: {
|
|
20349
|
+
[name: string]: unknown;
|
|
20350
|
+
};
|
|
20351
|
+
content: {
|
|
20352
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20353
|
+
};
|
|
20354
|
+
};
|
|
20355
|
+
/** @description Evidence storage is not configured or could not be read */
|
|
20356
|
+
503: {
|
|
20357
|
+
headers: {
|
|
20358
|
+
[name: string]: unknown;
|
|
20359
|
+
};
|
|
20360
|
+
content: {
|
|
20361
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20362
|
+
};
|
|
20363
|
+
};
|
|
20364
|
+
};
|
|
20365
|
+
};
|
|
20366
|
+
getAggregateUseConsent: {
|
|
20367
|
+
parameters: {
|
|
20368
|
+
query?: never;
|
|
20369
|
+
header?: never;
|
|
20370
|
+
path: {
|
|
20371
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20372
|
+
};
|
|
20373
|
+
cookie?: never;
|
|
20374
|
+
};
|
|
20375
|
+
requestBody?: never;
|
|
20376
|
+
responses: {
|
|
20377
|
+
/** @description Current permission and the sentence reports must print */
|
|
20378
|
+
200: {
|
|
20379
|
+
headers: {
|
|
20380
|
+
[name: string]: unknown;
|
|
20381
|
+
};
|
|
20382
|
+
content: {
|
|
20383
|
+
"application/json": components["schemas"]["AggregateUseConsentDto"];
|
|
20384
|
+
};
|
|
20385
|
+
};
|
|
20386
|
+
401: components["responses"]["Unauthorized"];
|
|
20387
|
+
403: components["responses"]["Forbidden"];
|
|
20388
|
+
/** @description Workspace does not exist */
|
|
20389
|
+
404: {
|
|
20390
|
+
headers: {
|
|
20391
|
+
[name: string]: unknown;
|
|
20392
|
+
};
|
|
20393
|
+
content: {
|
|
20394
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20395
|
+
};
|
|
20396
|
+
};
|
|
20397
|
+
};
|
|
20398
|
+
};
|
|
20399
|
+
putAggregateUseConsent: {
|
|
20400
|
+
parameters: {
|
|
20401
|
+
query?: never;
|
|
20402
|
+
header?: never;
|
|
20403
|
+
path: {
|
|
20404
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20405
|
+
};
|
|
20406
|
+
cookie?: never;
|
|
20407
|
+
};
|
|
20408
|
+
requestBody: {
|
|
20409
|
+
content: {
|
|
20410
|
+
"application/json": components["schemas"]["AggregateUseConsentPutDto"];
|
|
20411
|
+
};
|
|
20412
|
+
};
|
|
20413
|
+
responses: {
|
|
20414
|
+
/** @description Saved permission */
|
|
20415
|
+
200: {
|
|
20416
|
+
headers: {
|
|
20417
|
+
[name: string]: unknown;
|
|
20418
|
+
};
|
|
20419
|
+
content: {
|
|
20420
|
+
"application/json": components["schemas"]["AggregateUseConsentDto"];
|
|
20421
|
+
};
|
|
20422
|
+
};
|
|
20423
|
+
/** @description Invalid body (`code`: `invalid_input`) */
|
|
20424
|
+
400: {
|
|
20425
|
+
headers: {
|
|
20426
|
+
[name: string]: unknown;
|
|
20427
|
+
};
|
|
20428
|
+
content: {
|
|
20429
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20430
|
+
};
|
|
20431
|
+
};
|
|
20432
|
+
401: components["responses"]["Unauthorized"];
|
|
20433
|
+
/** @description Caller is not a workspace admin (`code`: `workspace_admin_required`) */
|
|
20434
|
+
403: {
|
|
20435
|
+
headers: {
|
|
20436
|
+
[name: string]: unknown;
|
|
20437
|
+
};
|
|
20438
|
+
content: {
|
|
20439
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20440
|
+
};
|
|
20441
|
+
};
|
|
20442
|
+
/** @description Workspace does not exist */
|
|
20443
|
+
404: {
|
|
20444
|
+
headers: {
|
|
20445
|
+
[name: string]: unknown;
|
|
20446
|
+
};
|
|
20447
|
+
content: {
|
|
20448
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20449
|
+
};
|
|
20450
|
+
};
|
|
20451
|
+
/** @description Opt-in refused because no notice is approved (`aggregate_use_notice_unapproved`) or the submitted notice version is not current (`aggregate_use_notice_stale`). */
|
|
20452
|
+
409: {
|
|
20453
|
+
headers: {
|
|
20454
|
+
[name: string]: unknown;
|
|
20455
|
+
};
|
|
20456
|
+
content: {
|
|
20457
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20458
|
+
};
|
|
20459
|
+
};
|
|
20460
|
+
};
|
|
20461
|
+
};
|
|
20462
|
+
recordReportCenterExport: {
|
|
20463
|
+
parameters: {
|
|
20464
|
+
query?: never;
|
|
20465
|
+
header?: never;
|
|
20466
|
+
path: {
|
|
20467
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20468
|
+
};
|
|
20469
|
+
cookie?: never;
|
|
20470
|
+
};
|
|
20471
|
+
requestBody: {
|
|
20472
|
+
content: {
|
|
20473
|
+
"application/json": components["schemas"]["ReportCenterExportRecordBodyDto"];
|
|
20474
|
+
};
|
|
20475
|
+
};
|
|
20476
|
+
responses: {
|
|
20477
|
+
/** @description Export recorded */
|
|
20478
|
+
201: {
|
|
20479
|
+
headers: {
|
|
20480
|
+
[name: string]: unknown;
|
|
20481
|
+
};
|
|
20482
|
+
content: {
|
|
20483
|
+
"application/json": components["schemas"]["ReportCenterExportRecordResponseDto"];
|
|
20484
|
+
};
|
|
20485
|
+
};
|
|
20486
|
+
/** @description Invalid body */
|
|
20487
|
+
400: {
|
|
20488
|
+
headers: {
|
|
20489
|
+
[name: string]: unknown;
|
|
20490
|
+
};
|
|
20491
|
+
content: {
|
|
20492
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20493
|
+
};
|
|
20494
|
+
};
|
|
20495
|
+
401: components["responses"]["Unauthorized"];
|
|
20496
|
+
403: components["responses"]["Forbidden"];
|
|
20497
|
+
/** @description Workspace does not exist */
|
|
20498
|
+
404: {
|
|
20499
|
+
headers: {
|
|
20500
|
+
[name: string]: unknown;
|
|
20501
|
+
};
|
|
20502
|
+
content: {
|
|
20503
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20504
|
+
};
|
|
20505
|
+
};
|
|
20506
|
+
/** @description Activity log is not supported by this backend build */
|
|
20507
|
+
501: {
|
|
20508
|
+
headers: {
|
|
20509
|
+
[name: string]: unknown;
|
|
20510
|
+
};
|
|
20511
|
+
content: {
|
|
20512
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20513
|
+
};
|
|
20514
|
+
};
|
|
20515
|
+
};
|
|
20516
|
+
};
|
|
20517
|
+
listAssessmentReports: {
|
|
20518
|
+
parameters: {
|
|
20519
|
+
query?: never;
|
|
20520
|
+
header?: never;
|
|
20521
|
+
path: {
|
|
20522
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20523
|
+
};
|
|
20524
|
+
cookie?: never;
|
|
20525
|
+
};
|
|
20526
|
+
requestBody?: never;
|
|
20527
|
+
responses: {
|
|
20528
|
+
/** @description Stored reports, newest first */
|
|
20529
|
+
200: {
|
|
20530
|
+
headers: {
|
|
20531
|
+
[name: string]: unknown;
|
|
20532
|
+
};
|
|
20533
|
+
content: {
|
|
20534
|
+
"application/json": components["schemas"]["AssessmentReportListDto"];
|
|
20535
|
+
};
|
|
20536
|
+
};
|
|
20537
|
+
401: components["responses"]["Unauthorized"];
|
|
20538
|
+
403: components["responses"]["Forbidden"];
|
|
20539
|
+
/** @description Workspace does not exist */
|
|
20540
|
+
404: {
|
|
20541
|
+
headers: {
|
|
20542
|
+
[name: string]: unknown;
|
|
20543
|
+
};
|
|
20544
|
+
content: {
|
|
20545
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20546
|
+
};
|
|
20547
|
+
};
|
|
20548
|
+
/** @description Stored reports are not supported by this backend build (no database) */
|
|
20549
|
+
501: {
|
|
20550
|
+
headers: {
|
|
20551
|
+
[name: string]: unknown;
|
|
20552
|
+
};
|
|
20553
|
+
content: {
|
|
20554
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20555
|
+
};
|
|
20556
|
+
};
|
|
20557
|
+
};
|
|
20558
|
+
};
|
|
20559
|
+
storeAssessmentReport: {
|
|
20560
|
+
parameters: {
|
|
20561
|
+
query?: never;
|
|
20562
|
+
header?: never;
|
|
20563
|
+
path: {
|
|
20564
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
19268
20565
|
};
|
|
19269
20566
|
cookie?: never;
|
|
19270
20567
|
};
|
|
19271
|
-
requestBody
|
|
20568
|
+
requestBody: {
|
|
20569
|
+
content: {
|
|
20570
|
+
"application/json": components["schemas"]["StoreAssessmentReportBodyDto"];
|
|
20571
|
+
};
|
|
20572
|
+
};
|
|
19272
20573
|
responses: {
|
|
19273
|
-
/** @description
|
|
19274
|
-
|
|
20574
|
+
/** @description Report stored */
|
|
20575
|
+
201: {
|
|
19275
20576
|
headers: {
|
|
19276
20577
|
[name: string]: unknown;
|
|
19277
20578
|
};
|
|
19278
20579
|
content: {
|
|
19279
|
-
"
|
|
20580
|
+
"application/json": components["schemas"]["AssessmentReportDto"];
|
|
19280
20581
|
};
|
|
19281
20582
|
};
|
|
19282
|
-
/** @description
|
|
20583
|
+
/** @description Body is not valid, or the file is not a PDF or is too large */
|
|
19283
20584
|
400: {
|
|
19284
20585
|
headers: {
|
|
19285
20586
|
[name: string]: unknown;
|
|
@@ -19290,7 +20591,7 @@ export interface operations {
|
|
|
19290
20591
|
};
|
|
19291
20592
|
401: components["responses"]["Unauthorized"];
|
|
19292
20593
|
403: components["responses"]["Forbidden"];
|
|
19293
|
-
/** @description Workspace
|
|
20594
|
+
/** @description Workspace does not exist */
|
|
19294
20595
|
404: {
|
|
19295
20596
|
headers: {
|
|
19296
20597
|
[name: string]: unknown;
|
|
@@ -19299,36 +20600,17 @@ export interface operations {
|
|
|
19299
20600
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
19300
20601
|
};
|
|
19301
20602
|
};
|
|
19302
|
-
|
|
19303
|
-
|
|
19304
|
-
listReadinessRepoRuns: {
|
|
19305
|
-
parameters: {
|
|
19306
|
-
query?: {
|
|
19307
|
-
limit?: number;
|
|
19308
|
-
order?: "asc" | "desc";
|
|
19309
|
-
/** @description Opaque cursor from a prior response `nextCursor` field. */
|
|
19310
|
-
cursor?: string;
|
|
19311
|
-
};
|
|
19312
|
-
header?: never;
|
|
19313
|
-
path: {
|
|
19314
|
-
workspaceId: components["parameters"]["WorkspaceId"];
|
|
19315
|
-
repoId: components["parameters"]["RepoId"];
|
|
19316
|
-
};
|
|
19317
|
-
cookie?: never;
|
|
19318
|
-
};
|
|
19319
|
-
requestBody?: never;
|
|
19320
|
-
responses: {
|
|
19321
|
-
/** @description Run history page */
|
|
19322
|
-
200: {
|
|
20603
|
+
/** @description `not_buyer_deliverable` (the rebuilt manifest did not validate as an internal buyer file; includes `reasons`) or `manifest_changed` (stored evidence changed since the PDF was built, so `contentHash` differs; export again). */
|
|
20604
|
+
422: {
|
|
19323
20605
|
headers: {
|
|
19324
20606
|
[name: string]: unknown;
|
|
19325
20607
|
};
|
|
19326
20608
|
content: {
|
|
19327
|
-
"application/json": components["schemas"]["
|
|
20609
|
+
"application/json": components["schemas"]["StoreAssessmentReportRejectedDto"];
|
|
19328
20610
|
};
|
|
19329
20611
|
};
|
|
19330
|
-
/** @description
|
|
19331
|
-
|
|
20612
|
+
/** @description Stored reports are not supported by this backend build (no database) */
|
|
20613
|
+
501: {
|
|
19332
20614
|
headers: {
|
|
19333
20615
|
[name: string]: unknown;
|
|
19334
20616
|
};
|
|
@@ -19336,10 +20618,8 @@ export interface operations {
|
|
|
19336
20618
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
19337
20619
|
};
|
|
19338
20620
|
};
|
|
19339
|
-
|
|
19340
|
-
|
|
19341
|
-
/** @description Workspace or repository not found */
|
|
19342
|
-
404: {
|
|
20621
|
+
/** @description Stored evidence could not be loaded to rebuild the manifest. */
|
|
20622
|
+
503: {
|
|
19343
20623
|
headers: {
|
|
19344
20624
|
[name: string]: unknown;
|
|
19345
20625
|
};
|
|
@@ -19349,40 +20629,33 @@ export interface operations {
|
|
|
19349
20629
|
};
|
|
19350
20630
|
};
|
|
19351
20631
|
};
|
|
19352
|
-
|
|
20632
|
+
createAssessmentReportLink: {
|
|
19353
20633
|
parameters: {
|
|
19354
|
-
query?:
|
|
19355
|
-
limit?: number;
|
|
19356
|
-
offset?: number;
|
|
19357
|
-
order?: "asc" | "desc";
|
|
19358
|
-
/** @description Sort column for the activity feed. */
|
|
19359
|
-
sort?: "occurredAt" | "actorName" | "repoName" | "eventType" | "dimensionId";
|
|
19360
|
-
/** @description Case-insensitive match on actor name or email. */
|
|
19361
|
-
search?: string;
|
|
19362
|
-
eventType?: components["schemas"]["ReadinessAuditEventType"];
|
|
19363
|
-
dimensionId?: components["schemas"]["ReadinessDimensionId"];
|
|
19364
|
-
repoId?: string;
|
|
19365
|
-
/** @description ISO-8601 lower bound on `occurredAt` (inclusive). */
|
|
19366
|
-
since?: string;
|
|
19367
|
-
};
|
|
20634
|
+
query?: never;
|
|
19368
20635
|
header?: never;
|
|
19369
20636
|
path: {
|
|
19370
20637
|
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20638
|
+
/** @description Stored assessment report id (`tai_workspace_assessment_reports.id`). */
|
|
20639
|
+
reportId: components["parameters"]["AssessmentReportId"];
|
|
19371
20640
|
};
|
|
19372
20641
|
cookie?: never;
|
|
19373
20642
|
};
|
|
19374
|
-
requestBody
|
|
20643
|
+
requestBody: {
|
|
20644
|
+
content: {
|
|
20645
|
+
"application/json": components["schemas"]["CreateAssessmentReportLinkBodyDto"];
|
|
20646
|
+
};
|
|
20647
|
+
};
|
|
19375
20648
|
responses: {
|
|
19376
|
-
/** @description
|
|
19377
|
-
|
|
20649
|
+
/** @description Link created */
|
|
20650
|
+
201: {
|
|
19378
20651
|
headers: {
|
|
19379
20652
|
[name: string]: unknown;
|
|
19380
20653
|
};
|
|
19381
20654
|
content: {
|
|
19382
|
-
"application/json": components["schemas"]["
|
|
20655
|
+
"application/json": components["schemas"]["CreateAssessmentReportLinkResponseDto"];
|
|
19383
20656
|
};
|
|
19384
20657
|
};
|
|
19385
|
-
/** @description
|
|
20658
|
+
/** @description Body is not valid */
|
|
19386
20659
|
400: {
|
|
19387
20660
|
headers: {
|
|
19388
20661
|
[name: string]: unknown;
|
|
@@ -19393,7 +20666,7 @@ export interface operations {
|
|
|
19393
20666
|
};
|
|
19394
20667
|
401: components["responses"]["Unauthorized"];
|
|
19395
20668
|
403: components["responses"]["Forbidden"];
|
|
19396
|
-
/** @description Workspace
|
|
20669
|
+
/** @description Workspace or report not found (`report_not_found`) */
|
|
19397
20670
|
404: {
|
|
19398
20671
|
headers: {
|
|
19399
20672
|
[name: string]: unknown;
|
|
@@ -19402,31 +20675,61 @@ export interface operations {
|
|
|
19402
20675
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
19403
20676
|
};
|
|
19404
20677
|
};
|
|
20678
|
+
/** @description The report is hidden (`report_hidden`) */
|
|
20679
|
+
409: {
|
|
20680
|
+
headers: {
|
|
20681
|
+
[name: string]: unknown;
|
|
20682
|
+
};
|
|
20683
|
+
content: {
|
|
20684
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20685
|
+
};
|
|
20686
|
+
};
|
|
20687
|
+
/** @description The recipient is not a current workspace member (`recipient_not_member`) */
|
|
20688
|
+
422: {
|
|
20689
|
+
headers: {
|
|
20690
|
+
[name: string]: unknown;
|
|
20691
|
+
};
|
|
20692
|
+
content: {
|
|
20693
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20694
|
+
};
|
|
20695
|
+
};
|
|
20696
|
+
/** @description Stored reports or member listing are not supported by this backend build */
|
|
20697
|
+
501: {
|
|
20698
|
+
headers: {
|
|
20699
|
+
[name: string]: unknown;
|
|
20700
|
+
};
|
|
20701
|
+
content: {
|
|
20702
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20703
|
+
};
|
|
20704
|
+
};
|
|
19405
20705
|
};
|
|
19406
20706
|
};
|
|
19407
|
-
|
|
20707
|
+
revokeAssessmentReportLink: {
|
|
19408
20708
|
parameters: {
|
|
19409
20709
|
query?: never;
|
|
19410
20710
|
header?: never;
|
|
19411
20711
|
path: {
|
|
19412
20712
|
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20713
|
+
/** @description Stored assessment report id (`tai_workspace_assessment_reports.id`). */
|
|
20714
|
+
reportId: components["parameters"]["AssessmentReportId"];
|
|
20715
|
+
grantId: string;
|
|
19413
20716
|
};
|
|
19414
20717
|
cookie?: never;
|
|
19415
20718
|
};
|
|
19416
20719
|
requestBody?: never;
|
|
19417
20720
|
responses: {
|
|
19418
|
-
/** @description
|
|
20721
|
+
/** @description Revoked link */
|
|
19419
20722
|
200: {
|
|
19420
20723
|
headers: {
|
|
19421
20724
|
[name: string]: unknown;
|
|
19422
20725
|
};
|
|
19423
20726
|
content: {
|
|
19424
|
-
"application/json": components["schemas"]["
|
|
20727
|
+
"application/json": components["schemas"]["AssessmentReportLinkDto"];
|
|
19425
20728
|
};
|
|
19426
20729
|
};
|
|
19427
20730
|
401: components["responses"]["Unauthorized"];
|
|
19428
20731
|
403: components["responses"]["Forbidden"];
|
|
19429
|
-
/** @description Workspace
|
|
20732
|
+
/** @description Workspace, report, or link not found */
|
|
19430
20733
|
404: {
|
|
19431
20734
|
headers: {
|
|
19432
20735
|
[name: string]: unknown;
|
|
@@ -19435,31 +20738,42 @@ export interface operations {
|
|
|
19435
20738
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
19436
20739
|
};
|
|
19437
20740
|
};
|
|
20741
|
+
/** @description Stored reports are not supported by this backend build (no database) */
|
|
20742
|
+
501: {
|
|
20743
|
+
headers: {
|
|
20744
|
+
[name: string]: unknown;
|
|
20745
|
+
};
|
|
20746
|
+
content: {
|
|
20747
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20748
|
+
};
|
|
20749
|
+
};
|
|
19438
20750
|
};
|
|
19439
20751
|
};
|
|
19440
|
-
|
|
20752
|
+
hideAssessmentReport: {
|
|
19441
20753
|
parameters: {
|
|
19442
20754
|
query?: never;
|
|
19443
20755
|
header?: never;
|
|
19444
20756
|
path: {
|
|
19445
20757
|
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20758
|
+
/** @description Stored assessment report id (`tai_workspace_assessment_reports.id`). */
|
|
20759
|
+
reportId: components["parameters"]["AssessmentReportId"];
|
|
19446
20760
|
};
|
|
19447
20761
|
cookie?: never;
|
|
19448
20762
|
};
|
|
19449
20763
|
requestBody?: never;
|
|
19450
20764
|
responses: {
|
|
19451
|
-
/** @description
|
|
20765
|
+
/** @description Hidden report (`links` is empty in this response; list again for links) */
|
|
19452
20766
|
200: {
|
|
19453
20767
|
headers: {
|
|
19454
20768
|
[name: string]: unknown;
|
|
19455
20769
|
};
|
|
19456
20770
|
content: {
|
|
19457
|
-
"application/json": components["schemas"]["
|
|
20771
|
+
"application/json": components["schemas"]["AssessmentReportDto"];
|
|
19458
20772
|
};
|
|
19459
20773
|
};
|
|
19460
20774
|
401: components["responses"]["Unauthorized"];
|
|
19461
20775
|
403: components["responses"]["Forbidden"];
|
|
19462
|
-
/** @description Workspace
|
|
20776
|
+
/** @description Workspace or report not found */
|
|
19463
20777
|
404: {
|
|
19464
20778
|
headers: {
|
|
19465
20779
|
[name: string]: unknown;
|
|
@@ -19468,44 +20782,43 @@ export interface operations {
|
|
|
19468
20782
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
19469
20783
|
};
|
|
19470
20784
|
};
|
|
20785
|
+
/** @description Stored reports are not supported by this backend build (no database) */
|
|
20786
|
+
501: {
|
|
20787
|
+
headers: {
|
|
20788
|
+
[name: string]: unknown;
|
|
20789
|
+
};
|
|
20790
|
+
content: {
|
|
20791
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20792
|
+
};
|
|
20793
|
+
};
|
|
19471
20794
|
};
|
|
19472
20795
|
};
|
|
19473
|
-
|
|
20796
|
+
restoreAssessmentReport: {
|
|
19474
20797
|
parameters: {
|
|
19475
20798
|
query?: never;
|
|
19476
20799
|
header?: never;
|
|
19477
20800
|
path: {
|
|
19478
20801
|
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20802
|
+
/** @description Stored assessment report id (`tai_workspace_assessment_reports.id`). */
|
|
20803
|
+
reportId: components["parameters"]["AssessmentReportId"];
|
|
19479
20804
|
};
|
|
19480
20805
|
cookie?: never;
|
|
19481
20806
|
};
|
|
19482
|
-
requestBody
|
|
19483
|
-
content: {
|
|
19484
|
-
"application/json": components["schemas"]["AggregateUseConsentPutDto"];
|
|
19485
|
-
};
|
|
19486
|
-
};
|
|
20807
|
+
requestBody?: never;
|
|
19487
20808
|
responses: {
|
|
19488
|
-
/** @description
|
|
20809
|
+
/** @description Restored report (`links` is empty in this response; list again for links) */
|
|
19489
20810
|
200: {
|
|
19490
20811
|
headers: {
|
|
19491
20812
|
[name: string]: unknown;
|
|
19492
20813
|
};
|
|
19493
20814
|
content: {
|
|
19494
|
-
"application/json": components["schemas"]["
|
|
19495
|
-
};
|
|
19496
|
-
};
|
|
19497
|
-
/** @description Invalid body (`code`: `invalid_input`) */
|
|
19498
|
-
400: {
|
|
19499
|
-
headers: {
|
|
19500
|
-
[name: string]: unknown;
|
|
19501
|
-
};
|
|
19502
|
-
content: {
|
|
19503
|
-
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
20815
|
+
"application/json": components["schemas"]["AssessmentReportDto"];
|
|
19504
20816
|
};
|
|
19505
20817
|
};
|
|
19506
20818
|
401: components["responses"]["Unauthorized"];
|
|
19507
|
-
|
|
19508
|
-
|
|
20819
|
+
403: components["responses"]["Forbidden"];
|
|
20820
|
+
/** @description Workspace or report not found */
|
|
20821
|
+
404: {
|
|
19509
20822
|
headers: {
|
|
19510
20823
|
[name: string]: unknown;
|
|
19511
20824
|
};
|
|
@@ -19513,8 +20826,8 @@ export interface operations {
|
|
|
19513
20826
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
19514
20827
|
};
|
|
19515
20828
|
};
|
|
19516
|
-
/** @description
|
|
19517
|
-
|
|
20829
|
+
/** @description `not_hidden` or `restore_window_ended` */
|
|
20830
|
+
409: {
|
|
19518
20831
|
headers: {
|
|
19519
20832
|
[name: string]: unknown;
|
|
19520
20833
|
};
|
|
@@ -19522,8 +20835,8 @@ export interface operations {
|
|
|
19522
20835
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
19523
20836
|
};
|
|
19524
20837
|
};
|
|
19525
|
-
/** @description
|
|
19526
|
-
|
|
20838
|
+
/** @description Stored reports are not supported by this backend build (no database) */
|
|
20839
|
+
501: {
|
|
19527
20840
|
headers: {
|
|
19528
20841
|
[name: string]: unknown;
|
|
19529
20842
|
};
|
|
@@ -19533,43 +20846,58 @@ export interface operations {
|
|
|
19533
20846
|
};
|
|
19534
20847
|
};
|
|
19535
20848
|
};
|
|
19536
|
-
|
|
20849
|
+
downloadAssessmentReport: {
|
|
19537
20850
|
parameters: {
|
|
19538
|
-
query
|
|
19539
|
-
|
|
19540
|
-
|
|
19541
|
-
workspaceId: components["parameters"]["WorkspaceId"];
|
|
20851
|
+
query: {
|
|
20852
|
+
/** @description Opaque link token from the email (`secureLinkQuery`). */
|
|
20853
|
+
t: string;
|
|
19542
20854
|
};
|
|
20855
|
+
header?: never;
|
|
20856
|
+
path?: never;
|
|
19543
20857
|
cookie?: never;
|
|
19544
20858
|
};
|
|
19545
|
-
requestBody
|
|
19546
|
-
content: {
|
|
19547
|
-
"application/json": components["schemas"]["ReportCenterExportRecordBodyDto"];
|
|
19548
|
-
};
|
|
19549
|
-
};
|
|
20859
|
+
requestBody?: never;
|
|
19550
20860
|
responses: {
|
|
19551
|
-
/** @description
|
|
19552
|
-
|
|
20861
|
+
/** @description The decrypted PDF */
|
|
20862
|
+
200: {
|
|
19553
20863
|
headers: {
|
|
20864
|
+
"Cache-Control"?: "no-store";
|
|
19554
20865
|
[name: string]: unknown;
|
|
19555
20866
|
};
|
|
19556
20867
|
content: {
|
|
19557
|
-
"application/
|
|
20868
|
+
"application/pdf": string;
|
|
19558
20869
|
};
|
|
19559
20870
|
};
|
|
19560
|
-
|
|
19561
|
-
|
|
20871
|
+
401: components["responses"]["Unauthorized"];
|
|
20872
|
+
/** @description `leaked_token`, `removed_member`, or `wrong_workspace` */
|
|
20873
|
+
403: {
|
|
19562
20874
|
headers: {
|
|
19563
20875
|
[name: string]: unknown;
|
|
19564
20876
|
};
|
|
19565
20877
|
content: {
|
|
19566
|
-
"application/json": components["schemas"]["
|
|
20878
|
+
"application/json": components["schemas"]["AssessmentReportAccessErrorDto"];
|
|
19567
20879
|
};
|
|
19568
20880
|
};
|
|
19569
|
-
|
|
19570
|
-
403: components["responses"]["Forbidden"];
|
|
19571
|
-
/** @description Workspace does not exist */
|
|
20881
|
+
/** @description `invalid_grant` */
|
|
19572
20882
|
404: {
|
|
20883
|
+
headers: {
|
|
20884
|
+
[name: string]: unknown;
|
|
20885
|
+
};
|
|
20886
|
+
content: {
|
|
20887
|
+
"application/json": components["schemas"]["AssessmentReportAccessErrorDto"];
|
|
20888
|
+
};
|
|
20889
|
+
};
|
|
20890
|
+
/** @description `expired`, `revoked`, or `report_hidden` */
|
|
20891
|
+
410: {
|
|
20892
|
+
headers: {
|
|
20893
|
+
[name: string]: unknown;
|
|
20894
|
+
};
|
|
20895
|
+
content: {
|
|
20896
|
+
"application/json": components["schemas"]["AssessmentReportAccessErrorDto"];
|
|
20897
|
+
};
|
|
20898
|
+
};
|
|
20899
|
+
/** @description The stored report could not be decrypted (`report_unreadable`) */
|
|
20900
|
+
500: {
|
|
19573
20901
|
headers: {
|
|
19574
20902
|
[name: string]: unknown;
|
|
19575
20903
|
};
|
|
@@ -19577,7 +20905,7 @@ export interface operations {
|
|
|
19577
20905
|
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
19578
20906
|
};
|
|
19579
20907
|
};
|
|
19580
|
-
/** @description
|
|
20908
|
+
/** @description Stored reports are not supported by this backend build (no database) */
|
|
19581
20909
|
501: {
|
|
19582
20910
|
headers: {
|
|
19583
20911
|
[name: string]: unknown;
|
|
@@ -24955,6 +26283,83 @@ export interface operations {
|
|
|
24955
26283
|
403: components["responses"]["Forbidden"];
|
|
24956
26284
|
};
|
|
24957
26285
|
};
|
|
26286
|
+
postWorkspaceVcsRepoDiscovery: {
|
|
26287
|
+
parameters: {
|
|
26288
|
+
query?: never;
|
|
26289
|
+
header?: never;
|
|
26290
|
+
path: {
|
|
26291
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
26292
|
+
};
|
|
26293
|
+
cookie?: never;
|
|
26294
|
+
};
|
|
26295
|
+
requestBody: {
|
|
26296
|
+
content: {
|
|
26297
|
+
"application/json": components["schemas"]["GitVcsSourceDto"];
|
|
26298
|
+
};
|
|
26299
|
+
};
|
|
26300
|
+
responses: {
|
|
26301
|
+
/** @description Repositories the source can read */
|
|
26302
|
+
200: {
|
|
26303
|
+
headers: {
|
|
26304
|
+
[name: string]: unknown;
|
|
26305
|
+
};
|
|
26306
|
+
content: {
|
|
26307
|
+
"application/json": components["schemas"]["VcsRepoDiscoveryResponseDto"];
|
|
26308
|
+
};
|
|
26309
|
+
};
|
|
26310
|
+
/** @description Invalid source (`error` is a code such as `base_url_required`, `base_url_invalid`, `base_url_not_https`, `base_url_has_credentials`, `base_url_has_path`, `base_url_host_blocked`, `env_ref_not_allowed`, `account_missing`, `token_missing`, `unsupported_type`). */
|
|
26311
|
+
400: {
|
|
26312
|
+
headers: {
|
|
26313
|
+
[name: string]: unknown;
|
|
26314
|
+
};
|
|
26315
|
+
content: {
|
|
26316
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
26317
|
+
};
|
|
26318
|
+
};
|
|
26319
|
+
401: components["responses"]["Unauthorized"];
|
|
26320
|
+
403: components["responses"]["Forbidden"];
|
|
26321
|
+
/** @description The provider rejected or failed the listing (`error` is `unauthorized`, `forbidden`, `not_found`, `rate_limited`, or `discovery_failed`). */
|
|
26322
|
+
502: {
|
|
26323
|
+
headers: {
|
|
26324
|
+
[name: string]: unknown;
|
|
26325
|
+
};
|
|
26326
|
+
content: {
|
|
26327
|
+
"application/json": components["schemas"]["ErrorMessageDto"];
|
|
26328
|
+
};
|
|
26329
|
+
};
|
|
26330
|
+
};
|
|
26331
|
+
};
|
|
26332
|
+
getWorkspaceVcsProviderCoverage: {
|
|
26333
|
+
parameters: {
|
|
26334
|
+
query?: never;
|
|
26335
|
+
header?: never;
|
|
26336
|
+
path: {
|
|
26337
|
+
workspaceId: components["parameters"]["WorkspaceId"];
|
|
26338
|
+
};
|
|
26339
|
+
cookie?: never;
|
|
26340
|
+
};
|
|
26341
|
+
requestBody?: never;
|
|
26342
|
+
responses: {
|
|
26343
|
+
/** @description Server-computed provider coverage */
|
|
26344
|
+
200: {
|
|
26345
|
+
headers: {
|
|
26346
|
+
[name: string]: unknown;
|
|
26347
|
+
};
|
|
26348
|
+
content: {
|
|
26349
|
+
"application/json": components["schemas"]["VcsProviderCoverageDto"];
|
|
26350
|
+
};
|
|
26351
|
+
};
|
|
26352
|
+
401: components["responses"]["Unauthorized"];
|
|
26353
|
+
403: components["responses"]["Forbidden"];
|
|
26354
|
+
/** @description Store does not support provider coverage */
|
|
26355
|
+
501: {
|
|
26356
|
+
headers: {
|
|
26357
|
+
[name: string]: unknown;
|
|
26358
|
+
};
|
|
26359
|
+
content?: never;
|
|
26360
|
+
};
|
|
26361
|
+
};
|
|
26362
|
+
};
|
|
24958
26363
|
retryWorkspaceProductivityRepo: {
|
|
24959
26364
|
parameters: {
|
|
24960
26365
|
query?: never;
|