@lovable.dev/sdk 1.7.5 → 1.9.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.
@@ -119,7 +119,7 @@ export interface paths {
119
119
  /**
120
120
  * Get workspace credit history
121
121
  * @deprecated
122
- * @description Deprecated compatibility alias — prefer GET /v1/workspaces/{workspace_id}/billing/credit-history. Returns the workspace's credit grant, expiry, adjustment, and conversion history, ordered by occurred_at descending with entry ID as the cursor tie-breaker. Pass workspace_id as a query parameter.
122
+ * @description Deprecated compatibility alias — prefer GET /v1/workspaces/{workspace_id}/billing/credit-history. Returns the workspace's credit grant, expiry, adjustment, and conversion history, ordered by occurred_at descending with entry ID as the cursor tie-breaker. Entries sharing a credit_grant_id describe one grant's lifecycle; a granted entry with a near-immediate offsetting adjustment is a grant whose remainder was voided early, for example by a plan change, refund, or administrative action. Pass workspace_id as a query parameter.
123
123
  */
124
124
  get: operations["get-v1-credit-history"];
125
125
  put?: never;
@@ -354,9 +354,9 @@ export interface paths {
354
354
  };
355
355
  /**
356
356
  * Get current user
357
- * @description Returns the authenticated user's profile and workspaces.
357
+ * @description Returns the authenticated user's profile and workspaces accessible with these credentials. A workspace-scoped API key returns only its workspace.
358
358
  */
359
- get: operations["get-v1-me"];
359
+ get: operations["getMe"];
360
360
  put?: never;
361
361
  post?: never;
362
362
  delete?: never;
@@ -570,11 +570,12 @@ export interface paths {
570
570
  * List projects
571
571
  * @description Returns projects in a workspace, sorted by last edited time descending then project ID ascending. Pass workspace_id as a query parameter.
572
572
  */
573
- get: operations["get-v1-projects"];
573
+ get: operations["listProjects"];
574
574
  put?: never;
575
575
  /**
576
576
  * Create project
577
- * @description Creates a new project. Pass workspace_id in the request body.
577
+ * @deprecated
578
+ * @description Creates a project in workspace_id. Set initial_message to start an AI response after creation. To copy an existing project, set source_project_id; this returns 202 with a job_id to poll at GET /v1/remix-jobs/{job_id}. Project creation and remix completion do not indicate that the AI has finished processing initial_message.
578
579
  */
579
580
  post: operations["post-v1-projects"];
580
581
  delete?: never;
@@ -594,21 +595,21 @@ export interface paths {
594
595
  * Get project
595
596
  * @description Returns project details.
596
597
  */
597
- get: operations["get-v1-projects-project_id"];
598
+ get: operations["getProject"];
598
599
  put?: never;
599
600
  post?: never;
600
601
  /**
601
602
  * Delete project
602
- * @description Soft-deletes a project. Repeated deletes are treated as successful.
603
+ * @description Deletes a project. Where trash is available the project can be restored from the Lovable editor; otherwise the deletion is permanent and custom domains are disconnected immediately. Repeated deletes are treated as successful.
603
604
  */
604
- delete: operations["delete-v1-projects-project_id"];
605
+ delete: operations["deleteProject"];
605
606
  options?: never;
606
607
  head?: never;
607
608
  /**
608
609
  * Update project
609
- * @description Updates supported project fields such as visibility and display_name.
610
+ * @description Updates project sharing, display name, or description. Omitted fields keep their current values. This does not change access to the published app; use PATCH /v1/projects/{project_id}/publish for that.
610
611
  */
611
- patch: operations["patch-v1-projects-project_id"];
612
+ patch: operations["updateProject"];
612
613
  trace?: never;
613
614
  };
614
615
  "/v1/projects/{project_id}/analytics": {
@@ -620,9 +621,9 @@ export interface paths {
620
621
  };
621
622
  /**
622
623
  * Get project analytics
623
- * @description Returns analytics for a published project: the historical time series and breakdowns for a date range by default, or the real-time visitor trend with series=trend.
624
+ * @description Returns website traffic for a published project: a time series and up to 10 items in each traffic breakdown by default, or visitor counts for the last 30 minutes. Date ranges are limited to 365 days, or 31 days with one-hour buckets. Some projects retain analytics for 90 days; older buckets are returned with zero values.
624
625
  */
625
- get: operations["get-v1-projects-project_id-analytics"];
626
+ get: operations["getProjectAnalytics"];
626
627
  put?: never;
627
628
  post?: never;
628
629
  delete?: never;
@@ -661,9 +662,9 @@ export interface paths {
661
662
  };
662
663
  /**
663
664
  * List project collaborators
664
- * @description Returns the users with direct access to this project.
665
+ * @description Returns users with direct access to this project. The owner appears only when they also hold an explicit grant; see user_id on GET /v1/projects/{project_id}. Excludes pending invitations to email addresses without a Lovable account.
665
666
  */
666
- get: operations["get-v1-projects-project_id-collaborators"];
667
+ get: operations["listProjectCollaborators"];
667
668
  put?: never;
668
669
  post?: never;
669
670
  delete?: never;
@@ -767,9 +768,9 @@ export interface paths {
767
768
  put?: never;
768
769
  /**
769
770
  * Create embed URL
770
- * @description Creates a one-hour static preview URL that can be framed by one exact HTTPS parent origin. The token is anonymous and cannot access live previews or published modes.
771
+ * @description Creates a preview URL valid for one hour that can be loaded in an iframe on one exact HTTPS origin. Visitors do not need a Lovable login. It shows the project's built preview; it does not grant access to the editor or the published app.
771
772
  */
772
- post: operations["post-v1-projects-project_id-embed-url"];
773
+ post: operations["createEmbedUrl"];
773
774
  delete?: never;
774
775
  options?: never;
775
776
  head?: never;
@@ -941,10 +942,10 @@ export interface paths {
941
942
  cookie?: never;
942
943
  };
943
944
  /**
944
- * List PII labels
945
- * @description Returns PII labels detected for the project, newest first.
945
+ * List personal data findings
946
+ * @description Returns findings of personally identifiable information (PII) in the project, newest first, including open, ignored, and fixed findings. Personal data detection must be enabled for the workspace; otherwise this endpoint returns 404.
946
947
  */
947
- get: operations["get-v1-projects-project_id-pii-labels"];
948
+ get: operations["listPiiLabels"];
948
949
  put?: never;
949
950
  post?: never;
950
951
  delete?: never;
@@ -964,17 +965,17 @@ export interface paths {
964
965
  put?: never;
965
966
  /**
966
967
  * Publish project
967
- * @description Builds and deploys the project. Asynchronous: returns 202 with a deployment_id; poll GET /v1/projects/{project_id}/publish/{deployment_id} until status is completed or error. Optionally sets who can view the published app first: public (anyone with the link), workspace (workspace members only), or custom (only the groups/users in audience). Omit visibility to keep the current setting. Visibility changes apply to the currently published version immediately, before the new deployment finishes.
968
+ * @description Builds and deploys the project. Returns 202 with a deployment_id; poll GET /v1/projects/{project_id}/publish/{deployment_id} until deployment finishes. Optionally set visibility to choose who can view the published app. Omit visibility to keep the current setting. Visibility changes apply to the currently published version immediately, before the new deployment finishes.
968
969
  */
969
- post: operations["post-v1-projects-project_id-publish"];
970
+ post: operations["publishProject"];
970
971
  delete?: never;
971
972
  options?: never;
972
973
  head?: never;
973
974
  /**
974
975
  * Update publish settings
975
- * @description Updates the published app without redeploying. visibility controls who can view it: public (anyone with the link), workspace (workspace members only), or custom (only the groups/users in audience — the list replaces all existing group/user grants; grants managed in the UI such as org access and email invites are preserved). is_published false takes the app offline; settings are kept and apply again on the next publish (already-offline is a no-op). Changes take effect immediately.
976
+ * @description Changes published app access without rebuilding the app. Set visibility to public, workspace, or custom. With custom visibility, audience replaces group and user grants and removes workspace-wide access; organization access and email invitations managed in the UI are preserved. Set is_published to false to take the app offline while retaining its settings for the next publish. Changes take effect immediately.
976
977
  */
977
- patch: operations["patch-v1-projects-project_id-publish"];
978
+ patch: operations["updatePublishSettings"];
978
979
  trace?: never;
979
980
  };
980
981
  "/v1/projects/{project_id}/publish/{deployment_id}": {
@@ -986,9 +987,9 @@ export interface paths {
986
987
  };
987
988
  /**
988
989
  * Get publish status
989
- * @description Returns the status of an async publish started with POST /v1/projects/{project_id}/publish, keyed by the deployment_id it returned. Poll until status is completed (url is set) or error (error_message explains the failure). Poll no more than once every 2 seconds and honor Retry-After on 429 responses.
990
+ * @description Returns the status of an async publish started with POST /v1/projects/{project_id}/publish, keyed by the deployment_id it returned. Poll until deployment succeeds (url is set) or fails (error_message explains the failure). Poll no more than once every 2 seconds and honor Retry-After on 429 responses.
990
991
  */
991
- get: operations["get-v1-projects-project_id-publish-deployment_id"];
992
+ get: operations["getDeployment"];
992
993
  put?: never;
993
994
  post?: never;
994
995
  delete?: never;
@@ -1048,15 +1049,15 @@ export interface paths {
1048
1049
  };
1049
1050
  /**
1050
1051
  * List security scans
1051
- * @description Returns the project's security scan invocations, newest first.
1052
+ * @description Returns the project's security scans ordered by start time, newest first. Use a scan's detail endpoint to retrieve individual check results and findings.
1052
1053
  */
1053
- get: operations["get-v1-projects-project_id-security-scans"];
1054
+ get: operations["listSecurityScans"];
1054
1055
  put?: never;
1055
1056
  /**
1056
1057
  * Trigger security scan
1057
- * @description Starts a security scan for the project's latest commit and returns a scan_id.
1058
+ * @description Starts a security scan for the project's latest commit. Returns the existing scan when one for the same commit and scanner set is already running, or the latest completed scan when it already covers the current commit. Poll GET /v1/projects/{project_id}/security-scans/{scan_id} for status and findings.
1058
1059
  */
1059
- post: operations["post-v1-projects-project_id-security-scans"];
1060
+ post: operations["triggerSecurityScan"];
1060
1061
  delete?: never;
1061
1062
  options?: never;
1062
1063
  head?: never;
@@ -1072,9 +1073,9 @@ export interface paths {
1072
1073
  };
1073
1074
  /**
1074
1075
  * Get security scan
1075
- * @description Returns a single security scan invocation with per-scanner run details and findings.
1076
+ * @description Returns a security scan's status, individual check results, and findings. A scan may include results reused from earlier scans.
1076
1077
  */
1077
- get: operations["get-v1-projects-project_id-security-scans-scan_id"];
1078
+ get: operations["getSecurityScan"];
1078
1079
  put?: never;
1079
1080
  post?: never;
1080
1081
  delete?: never;
@@ -1176,9 +1177,9 @@ export interface paths {
1176
1177
  };
1177
1178
  /**
1178
1179
  * Get remix job
1179
- * @description Returns the status of an async remix started with POST /v1/projects, keyed by the job_id it returned. Poll until status is completed (result.project_id is set) or error (error_message explains the failure). Poll no more than once every 2 seconds and honor Retry-After on 429 responses. Jobs remain queryable while Temporal retains the workflow history; after retention expires this route returns 404. Reusing the same job_id is idempotent and returns the same terminal result.
1180
+ * @description Returns the status of a remix started with POST /v1/projects, using the returned job_id. Poll until copying succeeds (result.project_id is set) or fails (error_message explains the failure). Poll no more than once every 2 seconds and honor Retry-After on 429 responses. After the copy finishes, any initial_message may still be processing. Job status is retained for a limited time; expired jobs return 404.
1180
1181
  */
1181
- get: operations["get-v1-remix-jobs-job_id"];
1182
+ get: operations["getRemixJob"];
1182
1183
  put?: never;
1183
1184
  post?: never;
1184
1185
  delete?: never;
@@ -1395,9 +1396,9 @@ export interface paths {
1395
1396
  };
1396
1397
  /**
1397
1398
  * List workspaces
1398
- * @description Returns workspaces the authenticated user belongs to with cursor pagination.
1399
+ * @description Returns workspaces the authenticated user belongs to that are accessible with these credentials, with cursor pagination. A workspace-scoped API key returns only its workspace.
1399
1400
  */
1400
- get: operations["get-v1-workspaces"];
1401
+ get: operations["listWorkspaces"];
1401
1402
  put?: never;
1402
1403
  post?: never;
1403
1404
  delete?: never;
@@ -1415,9 +1416,9 @@ export interface paths {
1415
1416
  };
1416
1417
  /**
1417
1418
  * Get workspace
1418
- * @description Returns workspace details.
1419
+ * @description Returns workspace details and the authenticated user's membership.
1419
1420
  */
1420
- get: operations["get-v1-workspaces-workspace_id"];
1421
+ get: operations["getWorkspace"];
1421
1422
  put?: never;
1422
1423
  post?: never;
1423
1424
  delete?: never;
@@ -1435,9 +1436,9 @@ export interface paths {
1435
1436
  };
1436
1437
  /**
1437
1438
  * Get workspace analytics
1438
- * @description Returns workspace-wide analytics time series aggregated across the workspace's projects. Not paginated: the response always covers the full requested window and cursor/limit parameters are not supported narrow the date range or use daily granularity to reduce response size.
1439
+ * @description Returns website traffic time series for the workspace, including historical traffic from projects that have since been deleted. The response covers the requested date range without pagination. Date ranges are limited to 365 days, or 31 days with hourly granularity.
1439
1440
  */
1440
- get: operations["get-v1-workspaces-workspace_id-analytics"];
1441
+ get: operations["getWorkspaceAnalytics"];
1441
1442
  put?: never;
1442
1443
  post?: never;
1443
1444
  delete?: never;
@@ -1518,9 +1519,9 @@ export interface paths {
1518
1519
  };
1519
1520
  /**
1520
1521
  * Get workspace credit balance
1521
- * @description Returns the workspace's aggregated credit balance, daily limit, billing-period usage, expiring grants, and per-bucket balances.
1522
+ * @description Returns current general-purpose and build-credit balances, the daily credit allowance, credit usage in the billing period, and upcoming expirations.
1522
1523
  */
1523
- get: operations["get-v1-workspaces-workspace_id-billing-credit-balance"];
1524
+ get: operations["getCreditBalance"];
1524
1525
  put?: never;
1525
1526
  post?: never;
1526
1527
  delete?: never;
@@ -1538,9 +1539,9 @@ export interface paths {
1538
1539
  };
1539
1540
  /**
1540
1541
  * Get workspace credit history
1541
- * @description Returns the workspace's credit grant, expiry, adjustment, and conversion history, ordered by occurred_at descending with entry ID as the cursor tie-breaker.
1542
+ * @description Returns credit allocations, expirations, adjustments, and conversions from the past 365 days, newest first. Entries sharing credit_grant_id describe the same allocation; an offsetting adjustment means remaining credits were removed early, for example after a plan change or refund. Ordinary usage deductions, daily credits, overage grants, and Cloud and AI Gateway allowances are excluded; use GET /v1/workspaces/{workspace_id}/billing/credit-usage for consumption.
1542
1543
  */
1543
- get: operations["get-v1-workspaces-workspace_id-billing-credit-history"];
1544
+ get: operations["listCreditHistory"];
1544
1545
  put?: never;
1545
1546
  post?: never;
1546
1547
  delete?: never;
@@ -1558,15 +1559,15 @@ export interface paths {
1558
1559
  };
1559
1560
  /**
1560
1561
  * Get member credit limits
1561
- * @description Returns each active member's monthly credit limit plus the workspace default, paginated. Members without an explicit limit inherit the workspace default.
1562
+ * @description Returns each active member's explicit monthly build-credit limit and the workspace default, with pagination. Members without an explicit limit inherit the default; active higher temporary limits can override either. Usage resets at the start of each UTC calendar month.
1562
1563
  */
1563
- get: operations["get-v1-workspaces-workspace_id-billing-credit-limits"];
1564
+ get: operations["listCreditLimits"];
1564
1565
  put?: never;
1565
1566
  /**
1566
1567
  * Set member credit limits
1567
- * @description Sets or clears the monthly credit limit for 1-1000 members in one request (send a single-item list for one member). Returns HTTP 200 with a per-member result; an individual failure does not fail the request. If every member fails, returns HTTP 422 with the same per-member response body.
1568
+ * @description Sets or clears monthly build-credit limits for up to 1000 members per request. Workspaces without bulk-limit support accept at most 50 members and reject larger requests with HTTP 400 before processing any member; current_period limits fail per member where unsupported. Usage resets at the start of each UTC calendar month. Returns HTTP 200 with a result for each member; other individual failures do not fail the whole request. If every member fails, returns HTTP 422 with the same response body.
1568
1569
  */
1569
- post: operations["post-v1-workspaces-workspace_id-billing-credit-limits"];
1570
+ post: operations["setCreditLimits"];
1570
1571
  delete?: never;
1571
1572
  options?: never;
1572
1573
  head?: never;
@@ -1582,9 +1583,9 @@ export interface paths {
1582
1583
  };
1583
1584
  /**
1584
1585
  * Get workspace credit usage
1585
- * @description Returns credit usage for a time window: one aggregate row by default, per-member or per-project rows with group_by, or time-bucketed rows with interval. Member-attributed rows (group_by=member, or a query filtered to one user_id) also carry the member's display_name and workspace email; project rows carry the project ID only (join the projects endpoint for the name). Grouped rows cover only entities with usage in the window (zero-usage members are omitted), and usage not attributed to a member or project counts toward workspace_total but appears in no row. Queries not restricted to the calling user (user_id=me) require workspace admin permission.
1586
+ * @description Returns Lovable credits used in a date range: one aggregate row by default, rows per member or project with group_by, or rows per day, week, or month with interval. Grouped rows are ordered by total usage descending; time rows are oldest first. Member rows include display_name and workspace email when available; use GET /v1/projects/{project_id} for project names. Grouped results omit members and projects with no usage. Unattributed usage contributes to workspace_total without a grouped row. Queries covering anyone other than the calling user require workspace admin permission; pass user_id=me to request only your usage.
1586
1587
  */
1587
- get: operations["get-v1-workspaces-workspace_id-billing-credit-usage"];
1588
+ get: operations["getCreditUsage"];
1588
1589
  put?: never;
1589
1590
  post?: never;
1590
1591
  delete?: never;
@@ -1836,7 +1837,7 @@ export interface paths {
1836
1837
  * List workspace groups
1837
1838
  * @description Returns the workspace's groups, sorted by name. Use a group's id as the target id of a type "group" audience entry when publishing a project with visibility "custom" via POST or PATCH /v1/projects/{project_id}/publish.
1838
1839
  */
1839
- get: operations["get-v1-workspaces-workspace_id-groups"];
1840
+ get: operations["listWorkspaceGroups"];
1840
1841
  put?: never;
1841
1842
  post?: never;
1842
1843
  delete?: never;
@@ -1882,7 +1883,7 @@ export interface paths {
1882
1883
  * List workspace members
1883
1884
  * @description Returns a paginated list of workspace members, filtered by role and status.
1884
1885
  */
1885
- get: operations["get-v1-workspaces-workspace_id-members"];
1886
+ get: operations["listWorkspaceMembers"];
1886
1887
  put?: never;
1887
1888
  post?: never;
1888
1889
  delete?: never;
@@ -1926,9 +1927,11 @@ export interface paths {
1926
1927
  };
1927
1928
  /**
1928
1929
  * Get workspace security insights
1929
- * @description Returns the workspace security insights summary.
1930
+ * @description Prioritize security reviews across your workspace. Findings include public apps with security errors, unresolved personal data detections, projects shared with external collaborators, and projects whose owner is no longer an active workspace member.
1931
+ *
1932
+ * Returns workspace project and membership counts, project review priorities, and finding types with matching project counts. Requires Security Center access. The review_priority filter applies only to findings; summary counts remain workspace-wide. Finding types requiring personal data detection access are omitted when that feature is unavailable.
1930
1933
  */
1931
- get: operations["get-v1-workspaces-workspace_id-security-center-insights"];
1934
+ get: operations["getSecurityInsights"];
1932
1935
  put?: never;
1933
1936
  post?: never;
1934
1937
  delete?: never;
@@ -1946,9 +1949,9 @@ export interface paths {
1946
1949
  };
1947
1950
  /**
1948
1951
  * List workspace security project inventory
1949
- * @description Returns the review-priority-ranked project inventory for the workspace, sorted by the selected sort_by (default last_edited, or relevance when query is set) with offset-based paging behind the cursor.
1952
+ * @description Returns workspace projects with review priorities, security finding counts, activity counts, and publishing details. Use GET /v1/projects/{project_id}/security-scans/{scan_id} for individual findings. Supports search and filters. By default, projects are ordered by most recently edited, or search relevance when query is set.
1950
1953
  */
1951
- get: operations["get-v1-workspaces-workspace_id-security-center-insights-projects"];
1954
+ get: operations["listSecurityInsightProjects"];
1952
1955
  put?: never;
1953
1956
  post?: never;
1954
1957
  delete?: never;
@@ -1966,9 +1969,9 @@ export interface paths {
1966
1969
  };
1967
1970
  /**
1968
1971
  * Get workspace settings
1969
- * @description Returns a curated subset of the workspace's settings.
1972
+ * @description Returns workspace plan, security and publishing settings, and the default member credit limit.
1970
1973
  */
1971
- get: operations["get-v1-workspaces-workspace_id-settings"];
1974
+ get: operations["getWorkspaceSettings"];
1972
1975
  put?: never;
1973
1976
  post?: never;
1974
1977
  delete?: never;
@@ -1976,9 +1979,9 @@ export interface paths {
1976
1979
  head?: never;
1977
1980
  /**
1978
1981
  * Update workspace settings
1979
- * @description Updates writable workspace settings. Currently supports the default per-member monthly credit limit.
1982
+ * @description Sets or clears the default monthly build-credit limit for members without an explicit limit. Usage resets at the start of each UTC calendar month. Explicit member limits and active higher temporary limits still apply.
1980
1983
  */
1981
- patch: operations["patch-v1-workspaces-workspace_id-settings"];
1984
+ patch: operations["updateWorkspaceSettings"];
1982
1985
  trace?: never;
1983
1986
  };
1984
1987
  "/v1/workspaces/{workspace_id}/skills": {
@@ -2079,8 +2082,8 @@ export interface components {
2079
2082
  timeSeries: components["schemas"]["ChannelTimeSeriesGroup"];
2080
2083
  };
2081
2084
  ChannelListsGroup: {
2082
- page: components["schemas"]["ListData"];
2083
- source: components["schemas"]["ListData"];
2085
+ page: components["schemas"]["AnalyticsBreakdown"];
2086
+ source: components["schemas"]["AnalyticsBreakdown"];
2084
2087
  };
2085
2088
  ChannelTimeSeriesGroup: {
2086
2089
  /** @description Bounced sessions divided by sessions, as a percentage. Legacy bounces have identical first and last page-view times; user_app_events bounces have fewer than two views and under ten seconds engagement. */
@@ -2121,61 +2124,67 @@ export interface components {
2121
2124
  CursorListResponseProjectPIIFindingDTO: {
2122
2125
  /** @description Items in this page. */
2123
2126
  data: components["schemas"]["ProjectPIIFindingDTO"][] | null;
2124
- /** @description Pagination cursors for fetching adjacent pages. */
2127
+ /** @description Whether more results are available and the cursor to fetch the next page. */
2125
2128
  pagination: components["schemas"]["Pagination"];
2126
2129
  };
2127
2130
  CursorListResponsePublicV1ConnectorItem: {
2128
2131
  /** @description Items in this page. */
2129
2132
  data: components["schemas"]["PublicV1ConnectorItem"][] | null;
2130
- /** @description Pagination cursors for fetching adjacent pages. */
2133
+ /** @description Whether more results are available and the cursor to fetch the next page. */
2134
+ pagination: components["schemas"]["Pagination"];
2135
+ };
2136
+ PiiLabelPage: {
2137
+ /** @description Items in this page. */
2138
+ data: components["schemas"]["PiiLabel"][] | null;
2139
+ /** @description Whether more results are available and the cursor to fetch the next page. */
2131
2140
  pagination: components["schemas"]["Pagination"];
2132
2141
  };
2133
- CursorListResponsePublicV1ProjectListItem: {
2142
+ ProjectSummaryPage: {
2134
2143
  /** @description Items in this page. */
2135
- data: components["schemas"]["PublicV1ProjectListItem"][] | null;
2136
- /** @description Pagination cursors for fetching adjacent pages. */
2144
+ data: components["schemas"]["ProjectSummary"][] | null;
2145
+ /** @description Whether more results are available and the cursor to fetch the next page. */
2137
2146
  pagination: components["schemas"]["Pagination"];
2138
2147
  };
2139
2148
  CursorListResponseV1EditSummary: {
2140
2149
  /** @description Items in this page. */
2141
2150
  data: components["schemas"]["V1EditSummary"][] | null;
2142
- /** @description Pagination cursors for fetching adjacent pages. */
2151
+ /** @description Whether more results are available and the cursor to fetch the next page. */
2143
2152
  pagination: components["schemas"]["Pagination"];
2144
2153
  };
2145
2154
  CursorListResponseV1MessageListItem: {
2146
2155
  /** @description Items in this page. */
2147
2156
  data: components["schemas"]["V1MessageListItem"][] | null;
2148
- /** @description Pagination cursors for fetching adjacent pages. */
2157
+ /** @description Whether more results are available and the cursor to fetch the next page. */
2149
2158
  pagination: components["schemas"]["Pagination"];
2150
2159
  };
2151
- CursorListResponseV1ProjectCollaborator: {
2160
+ ProjectCollaboratorPage: {
2152
2161
  /** @description Items in this page. */
2153
- data: components["schemas"]["V1ProjectCollaborator"][] | null;
2154
- /** @description Pagination cursors for fetching adjacent pages. */
2162
+ data: components["schemas"]["ProjectCollaborator"][] | null;
2163
+ /** @description Whether more results are available and the cursor to fetch the next page. */
2155
2164
  pagination: components["schemas"]["Pagination"];
2156
2165
  };
2157
2166
  CursorListResponseV1ProjectSkillDTO: {
2158
2167
  /** @description Items in this page. */
2159
2168
  data: components["schemas"]["V1ProjectSkillDTO"][] | null;
2160
- /** @description Pagination cursors for fetching adjacent pages. */
2169
+ /** @description Whether more results are available and the cursor to fetch the next page. */
2161
2170
  pagination: components["schemas"]["Pagination"];
2162
2171
  };
2163
- CursorListResponseV1SecurityScanSummary: {
2172
+ SecurityScanPage: {
2164
2173
  /** @description Items in this page. */
2165
- data: components["schemas"]["V1SecurityScanSummary"][] | null;
2166
- /** @description Pagination cursors for fetching adjacent pages. */
2174
+ data: components["schemas"]["SecurityScan"][] | null;
2175
+ /** @description Whether more results are available and the cursor to fetch the next page. */
2167
2176
  pagination: components["schemas"]["Pagination"];
2168
2177
  };
2169
- CursorListResponseV1WorkspaceGroup: {
2178
+ WorkspaceGroupPage: {
2170
2179
  /** @description Items in this page. */
2171
- data: components["schemas"]["V1WorkspaceGroup"][] | null;
2172
- /** @description Pagination cursors for fetching adjacent pages. */
2180
+ data: components["schemas"]["WorkspaceGroup"][] | null;
2181
+ /** @description Whether more results are available and the cursor to fetch the next page. */
2173
2182
  pagination: components["schemas"]["Pagination"];
2174
2183
  };
2175
- CursorListResponseV1WorkspaceMember: {
2184
+ WorkspaceMemberPage: {
2176
2185
  /** @description Items in this page. */
2177
- data: components["schemas"]["V1WorkspaceMember"][] | null;
2178
- /** @description Pagination cursors for fetching adjacent pages. */
2186
+ data: components["schemas"]["WorkspaceMember"][] | null;
2187
+ /** @description Whether more results are available and the cursor to fetch the next page. */
2179
2188
  pagination: components["schemas"]["Pagination"];
2180
2189
  };
2181
2190
  DiffHunk: {
@@ -2250,9 +2259,9 @@ export interface components {
2250
2259
  */
2251
2260
  total: number;
2252
2261
  };
2253
- GetMeOutputBody: {
2262
+ CurrentUser: {
2254
2263
  /**
2255
- * @description User email address
2264
+ * @description Email address from the user's primary sign-in provider. Empty when unavailable.
2256
2265
  * @example jane.cooper@acme.com
2257
2266
  */
2258
2267
  email: string;
@@ -2262,14 +2271,14 @@ export interface components {
2262
2271
  */
2263
2272
  id: string;
2264
2273
  /**
2265
- * @description User display name
2274
+ * @description User's display name, or username when a display name is unavailable.
2266
2275
  * @example Jane Cooper
2267
2276
  */
2268
2277
  name: string;
2269
- /** @description Workspaces the user belongs to */
2270
- workspaces: components["schemas"]["GetMeWorkspace"][] | null;
2278
+ /** @description Workspaces the user belongs to that are accessible with these credentials. A workspace-scoped API key returns only its workspace. */
2279
+ workspaces: components["schemas"]["CurrentUserWorkspace"][] | null;
2271
2280
  };
2272
- GetMeWorkspace: {
2281
+ CurrentUserWorkspace: {
2273
2282
  /**
2274
2283
  * @description Workspace ID
2275
2284
  * @example workspace_01jw3k9m2xq8r5v0c7d4e6f2gh
@@ -2281,10 +2290,11 @@ export interface components {
2281
2290
  */
2282
2291
  name: string;
2283
2292
  /**
2284
- * @description Caller's role in the workspace. One of: owner, admin, member, viewer, collaborator. More values may be added; clients must tolerate unknown values.
2293
+ * @description Caller's role in the workspace. More values may be added; clients must tolerate unknown values.
2285
2294
  * @example admin
2295
+ * @enum {string}
2286
2296
  */
2287
- role: string;
2297
+ role: "owner" | "admin" | "member" | "viewer" | "collaborator";
2288
2298
  };
2289
2299
  GitFileEntry: {
2290
2300
  binary: boolean;
@@ -2310,16 +2320,16 @@ export interface components {
2310
2320
  /** @description Last update timestamp */
2311
2321
  updated_at: string;
2312
2322
  };
2313
- ListData: {
2314
- /** @description Ranked items in this breakdown. */
2315
- data: components["schemas"]["ListDataPoint"][] | null;
2323
+ AnalyticsBreakdown: {
2324
+ /** @description Up to 10 items, ordered by visitor session count from highest to lowest. An empty array can mean no data or an unavailable breakdown. */
2325
+ data: components["schemas"]["AnalyticsBreakdownPoint"][] | null;
2316
2326
  /**
2317
- * @description Human-readable name of this breakdown dimension.
2318
- * @example Top Pages
2327
+ * @description Breakdown identifier: page, source, device, or country.
2328
+ * @example page
2319
2329
  */
2320
2330
  label: string;
2321
2331
  };
2322
- ListDataPoint: {
2332
+ AnalyticsBreakdownPoint: {
2323
2333
  /**
2324
2334
  * @description Name of this item within the breakdown.
2325
2335
  * @example /pricing
@@ -2327,20 +2337,20 @@ export interface components {
2327
2337
  label: string;
2328
2338
  /**
2329
2339
  * Format: int64
2330
- * @description Count of visits or events attributed to this item.
2340
+ * @description Unique visitor sessions attributed to this item over the requested range. A session may appear under multiple items.
2331
2341
  * @example 1280
2332
2342
  */
2333
2343
  value: number;
2334
2344
  };
2335
- ListsGroup: {
2336
- /** @description Breakdown of traffic by visitor country. */
2337
- country: components["schemas"]["ListData"];
2338
- /** @description Breakdown of traffic by device type. */
2339
- device: components["schemas"]["ListData"];
2340
- /** @description Breakdown of traffic by top page. */
2341
- page: components["schemas"]["ListData"];
2342
- /** @description Breakdown of traffic by referral source. */
2343
- source: components["schemas"]["ListData"];
2345
+ AnalyticsBreakdownGroup: {
2346
+ /** @description Top visitor countries by visitor sessions. Unknown means the country could not be determined. */
2347
+ country: components["schemas"]["AnalyticsBreakdown"];
2348
+ /** @description Top device types by visitor sessions. */
2349
+ device: components["schemas"]["AnalyticsBreakdown"];
2350
+ /** @description Top page paths by visitor sessions. */
2351
+ page: components["schemas"]["AnalyticsBreakdown"];
2352
+ /** @description Top referring domains by visitor sessions. Direct means no referring domain was recorded. */
2353
+ source: components["schemas"]["AnalyticsBreakdown"];
2344
2354
  };
2345
2355
  LovableCreator: {
2346
2356
  name: string;
@@ -2394,7 +2404,7 @@ export interface components {
2394
2404
  */
2395
2405
  has_more: boolean;
2396
2406
  /**
2397
- * @description Cursor for the next page; null when there are no more results
2407
+ * @description Pass this value as the cursor query parameter to fetch the next page. Treat it as an opaque string; null when there are no more results.
2398
2408
  * @example eyJ2IjoxLCJpZCI6InByal8wMWp3M2s5In0
2399
2409
  */
2400
2410
  next_cursor: string | null;
@@ -2406,7 +2416,7 @@ export interface components {
2406
2416
  };
2407
2417
  /** @enum {string} */
2408
2418
  channelsSource?: "legacy" | "user_app_events";
2409
- lists: components["schemas"]["ListsGroup"];
2419
+ lists: components["schemas"]["AnalyticsBreakdownGroup"];
2410
2420
  timeSeries: components["schemas"]["TimeSeriesGroup"];
2411
2421
  };
2412
2422
  ProjectFileInfo: {
@@ -2419,13 +2429,13 @@ export interface components {
2419
2429
  };
2420
2430
  ProjectPIIFindingDTO: {
2421
2431
  /**
2422
- * @description Trajectory event ID for chat-source labels
2432
+ * @description Identifier of the chat message associated with a chat or uploaded-file finding, when available.
2423
2433
  * @example default:user#12#01jw3k9m2xq8r5v0c7d4e6f2gh
2424
2434
  */
2425
2435
  chat_message_id?: string;
2426
- /** @description Uploaded file ID for upload-source labels */
2436
+ /** @description Identifier of the uploaded file where personal data was detected. */
2427
2437
  chat_upload_id?: string;
2428
- /** @description Connector ID for connector labels */
2438
+ /** @description Connected service associated with this finding. */
2429
2439
  connector_id?: string;
2430
2440
  /**
2431
2441
  * Format: date-time
@@ -2434,58 +2444,62 @@ export interface components {
2434
2444
  */
2435
2445
  found_at: string;
2436
2446
  /**
2437
- * @description PII label ID
2447
+ * @description Unique ID for this personal data finding.
2438
2448
  * @example pii_01jw3k9m2xq8r5v0c7d4e6f2gh
2439
2449
  */
2440
2450
  id: string;
2441
2451
  /**
2442
- * @description DLP info type, such as EMAIL_ADDRESS
2452
+ * @description Type of personal data detected, such as EMAIL_ADDRESS or PHONE_NUMBER.
2443
2453
  * @example EMAIL_ADDRESS
2444
2454
  */
2445
2455
  info_type?: string;
2446
2456
  /**
2447
- * @description DLP likelihood: VERY_UNLIKELY, UNLIKELY, POSSIBLE, LIKELY, or VERY_LIKELY
2457
+ * @description Confidence that the sample contains the indicated data type. More values may be added; clients must tolerate unknown values.
2448
2458
  * @example LIKELY
2459
+ * @enum {string}
2449
2460
  */
2450
- likelihood?: string;
2461
+ likelihood?: "LIKELIHOOD_UNSPECIFIED" | "VERY_UNLIKELY" | "UNLIKELY" | "POSSIBLE" | "LIKELY" | "VERY_LIKELY";
2451
2462
  /**
2452
- * @description Masked sample of the detected value
2453
- * @example j***@acme.com
2463
+ * @description Sample of the detected value. May contain unmasked personal data.
2464
+ * @example alex@example.com
2454
2465
  */
2455
2466
  quote?: string;
2456
2467
  /**
2457
- * @description Workflow scan run ID that recorded the label
2468
+ * @description Identifier of the personal data scan that recorded this finding. Separate from security scan IDs.
2458
2469
  * @example pii-scan-prj_01jw3k9m2xq8r5v0c7d4e6f2gh
2459
2470
  */
2460
2471
  scan_id?: string;
2461
2472
  /**
2462
- * @description Sensitivity bucket: low, mid, or high
2473
+ * @description Sensitivity assigned to the detected data type. More values may be added; clients must tolerate unknown values.
2463
2474
  * @example high
2475
+ * @enum {string}
2464
2476
  */
2465
- sensitivity?: string;
2477
+ sensitivity?: "low" | "mid" | "high";
2466
2478
  /**
2467
- * @description Where the PII was detected: chat, upload, cloud_storage, or cloud_sql
2479
+ * @description Where personal data was detected. More values may be added; clients must tolerate unknown values.
2468
2480
  * @example chat
2481
+ * @enum {string}
2469
2482
  */
2470
- source: string;
2471
- /** @description Database location for cloud_sql labels */
2483
+ source: "chat" | "upload" | "cloud_storage" | "cloud_sql" | "connector";
2484
+ /** @description Database schema, table, and optional column where personal data was detected. */
2472
2485
  sql_location?: string;
2473
2486
  /**
2474
- * @description Label status: open, ignored, or fixed
2487
+ * @description Review state of the personal data finding. A resolved finding indicates that the flagged content was redacted or removed. More values may be added; clients must tolerate unknown values.
2475
2488
  * @example open
2489
+ * @enum {string}
2476
2490
  */
2477
- status: string;
2478
- /** @description Cloud storage object path for cloud_storage labels */
2491
+ status: "open" | "ignored" | "fixed";
2492
+ /** @description Path of the cloud storage object where personal data was detected. */
2479
2493
  storage_path?: string;
2480
2494
  };
2481
- ProjectTrendResponse: {
2495
+ AnalyticsTrend: {
2482
2496
  /**
2483
2497
  * Format: int64
2484
- * @description Number of visitors currently active on the site.
2498
+ * @description Unique visitor sessions with a page view in the last 5 minutes.
2485
2499
  * @example 12
2486
2500
  */
2487
2501
  currentVisitors: number;
2488
- /** @description Time-ordered visit trend buckets. */
2502
+ /** @description One-minute buckets over the last 30 minutes, ordered oldest first. Minutes without visits are omitted. */
2489
2503
  data: components["schemas"]["TrendDataPoint"][] | null;
2490
2504
  };
2491
2505
  PublicV1ConnectorItem: {
@@ -2540,7 +2554,7 @@ export interface components {
2540
2554
  */
2541
2555
  is_published?: boolean;
2542
2556
  /**
2543
- * @description Remix job ID for tracking progress when source_project_id is provided
2557
+ * @description ID returned when source_project_id starts an asynchronous remix. Poll GET /v1/remix-jobs/{job_id} to obtain the new project ID when the copy completes.
2544
2558
  * @example job_01jw3k9m2xq8r5v0c7d4e6f2gh
2545
2559
  */
2546
2560
  job_id?: string;
@@ -2570,20 +2584,22 @@ export interface components {
2570
2584
  */
2571
2585
  preview_url?: string;
2572
2586
  /**
2573
- * @description Provisioning status of the project, not agent build progress. 'completed' means the project scaffold was created, and is set before the agent has finished the initial message, so the code at that point is often an empty starter page. To check whether the agent finished building, poll GET /v1/messages/{message_id}. One of: in_progress, completed, failed. More values may be added; clients must tolerate unknown values.
2587
+ * @description Project setup status. Successful setup means the project has been created; the AI may still be processing initial_message and the preview may not be ready. More values may be added; clients must tolerate unknown values.
2574
2588
  * @example completed
2589
+ * @enum {string}
2575
2590
  */
2576
- status?: string;
2591
+ status?: "in_progress" | "completed" | "failed";
2577
2592
  /**
2578
2593
  * @description Published project URL
2579
2594
  * @example https://acme-landing-page.lovable.app
2580
2595
  */
2581
2596
  url?: string;
2582
2597
  /**
2583
- * @description Project visibility: draft, private, workspace_view, public
2598
+ * @description Controls access to the project in the Lovable editor. Workspace roles and explicit sharing grants determine access. Published app access and open remixing are configured separately. More values may be added; clients must tolerate unknown values.
2584
2599
  * @example private
2600
+ * @enum {string}
2585
2601
  */
2586
- visibility?: string;
2602
+ visibility?: "draft" | "private" | "workspace_view" | "public";
2587
2603
  /**
2588
2604
  * @description Workspace ID
2589
2605
  * @example workspace_01jw3k9m2xq8r5v0c7d4e6f2gh
@@ -2600,11 +2616,11 @@ export interface components {
2600
2616
  /** @description Project ID */
2601
2617
  project_id: string;
2602
2618
  };
2603
- PublicV1GetWorkspaceBody: {
2619
+ GetWorkspaceResponse: {
2604
2620
  /** @description Caller's membership in this workspace. */
2605
- current_member?: components["schemas"]["PublicV1WorkspaceMember"];
2621
+ current_member?: components["schemas"]["WorkspaceMembership"];
2606
2622
  /** @description Workspace details. */
2607
- workspace: components["schemas"]["PublicV1Workspace"];
2623
+ workspace: components["schemas"]["Workspace"];
2608
2624
  };
2609
2625
  PublicV1GitFilesResponse: {
2610
2626
  data: components["schemas"]["GitFileEntryLite"][] | null;
@@ -2612,7 +2628,72 @@ export interface components {
2612
2628
  /** @description Resolved Git ref */
2613
2629
  ref: string;
2614
2630
  };
2615
- PublicV1PatchProjectBody: {
2631
+ PiiLabel: {
2632
+ /**
2633
+ * @description Identifier of the chat message associated with a chat or uploaded-file finding, when available.
2634
+ * @example default:user#12#01jw3k9m2xq8r5v0c7d4e6f2gh
2635
+ */
2636
+ chat_message_id?: string;
2637
+ /** @description Identifier of the uploaded file where personal data was detected. */
2638
+ chat_upload_id?: string;
2639
+ /** @description Connected service associated with this finding. */
2640
+ connector_id?: string;
2641
+ /**
2642
+ * Format: date-time
2643
+ * @description When the label was recorded
2644
+ * @example 2026-01-15T09:30:00Z
2645
+ */
2646
+ found_at: string;
2647
+ /**
2648
+ * @description Unique ID for this personal data finding.
2649
+ * @example pii_01jw3k9m2xq8r5v0c7d4e6f2gh
2650
+ */
2651
+ id: string;
2652
+ /**
2653
+ * @description Type of personal data detected, such as email_address or phone_number.
2654
+ * @example email_address
2655
+ */
2656
+ info_type?: string;
2657
+ /**
2658
+ * @description Confidence that the sample contains the indicated data type. More values may be added; clients must tolerate unknown values.
2659
+ * @example likely
2660
+ * @enum {string}
2661
+ */
2662
+ likelihood?: "likelihood_unspecified" | "very_unlikely" | "unlikely" | "possible" | "likely" | "very_likely";
2663
+ /**
2664
+ * @description Sample of the detected value. May contain unmasked personal data.
2665
+ * @example alex@example.com
2666
+ */
2667
+ quote?: string;
2668
+ /**
2669
+ * @description Identifier of the personal data scan that recorded this finding. Separate from security scan IDs.
2670
+ * @example pii-scan-prj_01jw3k9m2xq8r5v0c7d4e6f2gh
2671
+ */
2672
+ scan_id?: string;
2673
+ /**
2674
+ * @description Sensitivity assigned to the detected data type. More values may be added; clients must tolerate unknown values.
2675
+ * @example high
2676
+ * @enum {string}
2677
+ */
2678
+ sensitivity?: "low" | "mid" | "high";
2679
+ /**
2680
+ * @description Where personal data was detected. More values may be added; clients must tolerate unknown values.
2681
+ * @example chat
2682
+ * @enum {string}
2683
+ */
2684
+ source: "chat" | "upload" | "cloud_storage" | "cloud_sql" | "connector";
2685
+ /** @description Database schema, table, and optional column where personal data was detected. */
2686
+ sql_location?: string;
2687
+ /**
2688
+ * @description Review state of the personal data finding. A resolved finding indicates that the flagged content was redacted or removed. More values may be added; clients must tolerate unknown values.
2689
+ * @example open
2690
+ * @enum {string}
2691
+ */
2692
+ status: "open" | "ignored" | "fixed";
2693
+ /** @description Path of the cloud storage object where personal data was detected. */
2694
+ storage_path?: string;
2695
+ };
2696
+ UpdateProjectRequest: {
2616
2697
  /**
2617
2698
  * @description Project description. Does not affect generated_description, which the agent maintains on its own.
2618
2699
  * @example A landing page for my SaaS product with a hero, features, and pricing.
@@ -2624,23 +2705,23 @@ export interface components {
2624
2705
  */
2625
2706
  display_name?: string;
2626
2707
  /**
2627
- * @description Project visibility
2708
+ * @description Controls access to the project in the Lovable editor. Workspace roles and explicit sharing grants determine access. Published app access and open remixing are configured separately. Omit to keep the current setting.
2628
2709
  * @example private
2629
2710
  * @enum {string}
2630
2711
  */
2631
2712
  visibility?: "draft" | "private" | "public" | "workspace_view";
2632
2713
  };
2633
- PublicV1ProjectAnalyticsBody: {
2634
- /** @description Top pages, sources, devices, and countries. Present when series=historical. */
2635
- lists?: components["schemas"]["ListsGroup"];
2636
- /** @description Historical metrics over time. Present when series=historical. */
2714
+ ProjectAnalytics: {
2715
+ /** @description Top pages, referring domains, device types, and countries, with up to 10 items per breakdown. Present for date-range analytics. */
2716
+ lists?: components["schemas"]["AnalyticsBreakdownGroup"];
2717
+ /** @description Metrics over time for date-range analytics. */
2637
2718
  timeSeries?: components["schemas"]["TimeSeriesGroup"];
2638
- /** @description Real-time visitor trend. Present when series=trend. */
2639
- trend?: components["schemas"]["ProjectTrendResponse"];
2719
+ /** @description Visitor counts for the real-time series. */
2720
+ trend?: components["schemas"]["AnalyticsTrend"];
2640
2721
  };
2641
2722
  PublicV1ProjectCreateInputBody: {
2642
2723
  /**
2643
- * @description Project description
2724
+ * @description Description saved on the project. Use initial_message to provide instructions for the AI.
2644
2725
  * @example A landing page for my SaaS product with a hero, features, and pricing.
2645
2726
  */
2646
2727
  description: string;
@@ -2651,42 +2732,39 @@ export interface components {
2651
2732
  display_name?: string;
2652
2733
  /**
2653
2734
  * @deprecated
2654
- * @description Deprecated (ENT-3330): both create-time file fields are slated for removal in favor of a unified attachment mechanism, but this is still the only supported way to attach uploads on create meanwhile. Ephemeral file references returned by POST /v1/files/ephemeral-upload-url; requires initial_message. file_id is the full "ephemeral/{user_id}/{uuid}" path; file_name/mime_type/type are carried through to the promoted file ref so the chat renderer keeps image-vs-file distinction. Copied into the new project's bucket and attached to the initial message after the project is created.
2735
+ * @description Deprecated temporary upload references for existing integrations. Requires initial_message. Public API integrations should use file_urls to attach supported files from HTTPS URLs.
2655
2736
  */
2656
2737
  ephemeral_files?: components["schemas"]["V1UnscopedFile"][] | null;
2657
- /** @description Public HTTPS image or HTML file URLs to fetch server-side and attach to the initial message. Currently supports JPEG, PNG, WebP, and HTML. */
2738
+ /** @description Publicly accessible HTTPS URLs to attach to initial_message, which is required when this field is set. Supports JPEG, PNG, WebP, and HTML files. */
2658
2739
  file_urls?: string[] | null;
2659
2740
  /**
2660
2741
  * @deprecated
2661
- * @description Deprecated (ENT-3330): both create-time file fields are slated for removal in favor of a unified attachment mechanism; use ephemeral_files meanwhile. Pre-uploaded user-scoped file references ("{user_id}/{uuid}/{name}" from the deprecated POST /v1/files/upload-url endpoint), attached in place without copying; requires initial_message.
2742
+ * @description Deprecated upload references for existing integrations. Requires initial_message. Public API integrations should use file_urls to attach supported files from HTTPS URLs.
2662
2743
  */
2663
2744
  files?: components["schemas"]["V1UnscopedFile"][] | null;
2664
2745
  /**
2665
- * @description Initial chat message to send after creation
2746
+ * @description Instructions for the AI to run after the project is created. Omit to create the project without starting an AI response.
2666
2747
  * @example A landing page for my SaaS product with a hero, features, and pricing.
2667
2748
  */
2668
2749
  initial_message?: string;
2669
- /**
2670
- * @description Sandbox runtime template for the new project. Omit for the default stack; requires a workspace with access to the requested template.
2671
- * @example lovable-on-lovable
2672
- */
2750
+ /** @description Optional runtime template for workspaces with access to a specialized runtime. Omit for the standard runtime. */
2673
2751
  sandbox_template?: string;
2674
2752
  /** @description Design system library projects to connect to the new project */
2675
2753
  selected_libraries?: components["schemas"]["V1SelectedLibrary"][] | null;
2676
2754
  /** @description Ignored when null, empty, or whitespace. Set a non-empty value to remix from a source project. */
2677
2755
  source_project_id?: string | null;
2678
2756
  /**
2679
- * @description Technology stack (default: vite)
2757
+ * @description Technology stack for the new project. Omit to use Lovable's current default. When template_project_id is set, the template determines the stack.
2680
2758
  * @example vite
2681
2759
  */
2682
2760
  tech_stack?: string;
2683
2761
  /**
2684
- * @description Template project ID to clone from (from list_template_projects)
2762
+ * @description ID of a template or design-system library project to use as the starting point; any template the caller can view is accepted, including from other workspaces. Use GET /v1/projects with a project-type filter to find templates.
2685
2763
  * @example prj_01jw3k9m2xq8r5v0c7d4e6f2gh
2686
2764
  */
2687
2765
  template_project_id?: string;
2688
2766
  /**
2689
- * @description Project visibility: draft, private, workspace_view, public
2767
+ * @description Controls access to the project in the Lovable editor. Workspace roles and explicit sharing grants determine access. Published app access and open remixing are configured separately. Omit to use the workspace default.
2690
2768
  * @example private
2691
2769
  * @enum {string}
2692
2770
  */
@@ -2703,7 +2781,7 @@ export interface components {
2703
2781
  /** @description Project ID */
2704
2782
  project_id: string;
2705
2783
  };
2706
- PublicV1ProjectListItem: {
2784
+ ProjectSummary: {
2707
2785
  /**
2708
2786
  * Format: date-time
2709
2787
  * @description When the project was created.
@@ -2742,7 +2820,7 @@ export interface components {
2742
2820
  is_published?: boolean;
2743
2821
  /**
2744
2822
  * Format: date-time
2745
- * @description When the project was last edited.
2823
+ * @description When the project last received an edit or a user chat message.
2746
2824
  * @example 2026-01-15T09:30:00Z
2747
2825
  */
2748
2826
  last_edited_at?: string;
@@ -2757,25 +2835,28 @@ export interface components {
2757
2835
  */
2758
2836
  name?: string;
2759
2837
  /**
2760
- * @description Open Graph image URL.
2838
+ * @description Image URL used when sharing a link to the project on social platforms.
2761
2839
  * @example https://lovable.dev/cdn/projects/acme-landing-page/og.png
2762
2840
  */
2763
2841
  og_image_url?: string;
2764
2842
  /**
2765
- * @description Project type. One of: project, library. Absent on older projects. More values may be added; clients must tolerate unknown values.
2843
+ * @description Project type. Absent on older projects. More values may be added; clients must tolerate unknown values.
2766
2844
  * @example project
2845
+ * @enum {string}
2767
2846
  */
2768
- project_type?: string;
2847
+ project_type?: "project" | "library";
2769
2848
  /**
2770
- * @description Published visibility. One of: public, private. More values may be added; clients must tolerate unknown values.
2849
+ * @description Who can access the published app. Separate from editor sharing. More values may be added; clients must tolerate unknown values.
2771
2850
  * @example public
2851
+ * @enum {string}
2772
2852
  */
2773
- publish_visibility?: string;
2853
+ publish_visibility?: "public" | "private" | "workspace_only";
2774
2854
  /**
2775
- * @description Provisioning status of the project, not agent build progress. 'completed' means the project scaffold was created, and is set before the agent has finished the initial message, so the code at that point is often an empty starter page. To check whether the agent finished building, poll GET /v1/messages/{message_id}. One of: in_progress, completed, failed. More values may be added; clients must tolerate unknown values.
2855
+ * @description Project setup status. Successful setup means the project has been created; the AI may still be processing a message and the preview may not be ready. More values may be added; clients must tolerate unknown values.
2776
2856
  * @example completed
2857
+ * @enum {string}
2777
2858
  */
2778
- status?: string;
2859
+ status?: "in_progress" | "completed" | "failed";
2779
2860
  /**
2780
2861
  * @description Project tech stack.
2781
2862
  * @example vite_react_shadcn_ts
@@ -2798,10 +2879,11 @@ export interface components {
2798
2879
  */
2799
2880
  user_id?: string;
2800
2881
  /**
2801
- * @description Project visibility: draft, private, workspace_view, or public.
2882
+ * @description Controls access to the project in the Lovable editor. Workspace roles and explicit sharing grants determine access. Published app access and open remixing are configured separately. More values may be added; clients must tolerate unknown values.
2802
2883
  * @example public
2884
+ * @enum {string}
2803
2885
  */
2804
- visibility?: string;
2886
+ visibility?: "draft" | "private" | "workspace_view" | "public";
2805
2887
  /**
2806
2888
  * @description Workspace the project belongs to.
2807
2889
  * @example workspace_01jw3k9m2xq8r5v0c7d4e6f2gh
@@ -2810,39 +2892,39 @@ export interface components {
2810
2892
  };
2811
2893
  PublicV1ProjectRemixInputBody: {
2812
2894
  /**
2813
- * @description Project description
2895
+ * @description Description for the new project. Omit to reuse the description the source project was created with, or Remix of followed by the source project ID when it had none.
2814
2896
  * @example A landing page for my SaaS product with a hero, features, and pricing.
2815
2897
  */
2816
2898
  description?: string;
2817
2899
  /**
2818
- * @description Human-facing project name
2900
+ * @description Display name for the new project. Defaults to Remix of followed by the source project name.
2819
2901
  * @example Acme Landing Page
2820
2902
  */
2821
2903
  display_name?: string;
2822
2904
  /**
2823
- * @description Whether remix-style creation should copy custom knowledge
2905
+ * @description Copy the source project's custom instructions and knowledge. Defaults to false. Requires edit access to the source project; otherwise the request fails with HTTP 403.
2824
2906
  * @example true
2825
2907
  */
2826
2908
  include_custom_knowledge?: boolean;
2827
- /** @description Copy project Files. Defaults to false. Requires edit access to the original project; view-only access or a public remix link is not enough. Omitted or false skips Files; true returns 403 without edit access. */
2909
+ /** @description Copy uploaded project files in addition to the project code. Defaults to false. Requires edit access to the source project; view-only access or a public remix link is not enough and the request fails with HTTP 403. */
2828
2910
  include_files?: boolean;
2829
2911
  /**
2830
- * @description Copy chat history. Defaults to false. Requires edit access to the original project; view-only access or a public remix link is not enough.
2912
+ * @description Copy chat history. Defaults to false. Requires edit access to the original project; view-only access or a public remix link is not enough and the request fails with HTTP 403.
2831
2913
  * @example true
2832
2914
  */
2833
2915
  include_history?: boolean;
2834
2916
  /**
2835
- * @description Initial chat message to send after remix
2917
+ * @description Instructions for the AI to run after the source project has been copied. When omitted, a default remix message starts an AI response unless skip_initial_remix_message is true.
2836
2918
  * @example A landing page for my SaaS product with a hero, features, and pricing.
2837
2919
  */
2838
2920
  initial_message?: string;
2839
2921
  /**
2840
- * @description Message ID to remix from
2922
+ * @description Message in the source project that sets the version to copy. Use remix_mode to choose before or after that message. Omit to copy the latest version.
2841
2923
  * @example msg_01jw3k9m2xq8r5v0c7d4e6f2gh
2842
2924
  */
2843
2925
  message_id?: string;
2844
2926
  /**
2845
- * @description How to apply message_id: before starts before the message, including includes that message's completed turn. Defaults to including.
2927
+ * @description Whether to include message_id's completed turn in the copy. Includes it by default.
2846
2928
  * @example including
2847
2929
  * @enum {string}
2848
2930
  */
@@ -2853,7 +2935,7 @@ export interface components {
2853
2935
  */
2854
2936
  skip_initial_remix_message?: boolean;
2855
2937
  /**
2856
- * @description Skip remixing integrations
2938
+ * @description Skip copying connected services and their configuration to the new project. Defaults to false.
2857
2939
  * @example false
2858
2940
  */
2859
2941
  skip_integrations?: boolean;
@@ -2868,7 +2950,7 @@ export interface components {
2868
2950
  */
2869
2951
  workspace_id: string;
2870
2952
  };
2871
- PublicV1PublishAudienceTarget: {
2953
+ PublishAudienceTarget: {
2872
2954
  /** @description Group ID or workspace member user ID */
2873
2955
  id: string;
2874
2956
  /**
@@ -2877,54 +2959,66 @@ export interface components {
2877
2959
  */
2878
2960
  type: "group" | "user";
2879
2961
  };
2880
- PublicV1PublishProjectInputBody: {
2881
- /** @description Complete set of group/user grants for visibility 'custom': replaces existing group and user grants, an empty list removes them all, omit to keep the current audience. Grants managed in the UI (org access, email invites) are preserved. Only valid with visibility 'custom'. */
2882
- audience?: components["schemas"]["PublicV1PublishAudienceTarget"][] | null;
2962
+ PublishProjectRequest: {
2963
+ /** @description Audience grants, available only with selected-audience app access. Providing a list replaces all group and user grants and removes workspace-wide access; an empty list removes those grants. Existing organization access and email invitations managed in the UI are preserved. Omit to keep the current audience. */
2964
+ audience?: components["schemas"]["PublishAudienceTarget"][] | null;
2883
2965
  /** @description Project slug for the published URL */
2884
2966
  name?: string;
2885
2967
  /**
2886
- * @description Who can view the published app: public (anyone with the link), workspace (workspace members only), or custom (only the groups/users in audience). Omit to keep the project's current setting. Clients must tolerate new values.
2968
+ * @description Who can view the published app. A selected audience can include existing grants managed in the UI. Omit to keep the current setting. Clients must tolerate new values.
2887
2969
  * @enum {string}
2888
2970
  */
2889
2971
  visibility?: "public" | "workspace" | "custom";
2890
2972
  };
2891
- PublicV1PublishProjectResponse: {
2973
+ PublishProjectResponse: {
2892
2974
  /** @description Deployment ID */
2893
2975
  deployment_id?: string;
2894
- /** @description Deployment status */
2895
- status: string;
2896
- /** @description Published project URL */
2976
+ /**
2977
+ * @description The deployment has been accepted. Poll GET /v1/projects/{project_id}/publish/{deployment_id} for completion or failure. More values may be added; clients must tolerate unknown values.
2978
+ * @enum {string}
2979
+ */
2980
+ status: "pending";
2981
+ /** @description URL where the app will be available after deployment succeeds. */
2897
2982
  url?: string;
2898
- /** @description Resolved visibility of the published app */
2899
- visibility: string;
2983
+ /**
2984
+ * @description Who can view the published app. More values may be added; clients must tolerate unknown values.
2985
+ * @enum {string}
2986
+ */
2987
+ visibility: "public" | "workspace" | "custom";
2900
2988
  };
2901
- PublicV1PublishStatusResponse: {
2989
+ Deployment: {
2902
2990
  /** @description The deployment being tracked */
2903
2991
  deployment_id: string;
2904
- /** @description Failure class when status is error: transient (a retry may succeed) or a user_* class (fix the project before republishing). Clients must tolerate new values. */
2905
- error_class?: string;
2906
- /** @description Machine-readable failure cause when one is recognized. Present only when status is error. */
2992
+ /**
2993
+ * @description Failure category, indicating whether retrying may help or whether the project, configuration, data, or policy needs attention. More values may be added; clients must tolerate unknown values.
2994
+ * @enum {string}
2995
+ */
2996
+ error_class?: "transient" | "user_code" | "user_config" | "user_config_code" | "user_config_external" | "user_data" | "blocked_by_policy" | "internal";
2997
+ /** @description Machine-readable cause of a deployment failure, when recognized. Omitted unless deployment fails. */
2907
2998
  error_code?: string;
2908
- /** @description Human-readable failure reason. Present only when status is error. */
2999
+ /** @description Human-readable reason for a deployment failure. Omitted unless deployment fails. */
2909
3000
  error_message?: string;
2910
3001
  /**
2911
- * @description Deployment status: running (still building or deploying), completed (published url is set), error (failed — error_message explains why), or unknown. Clients must tolerate new values.
3002
+ * @description Deployment progress. After a successful deployment, the app is published and url is set. Clients must tolerate new values.
2912
3003
  * @enum {string}
2913
3004
  */
2914
3005
  status: "running" | "completed" | "error" | "unknown";
2915
- /** @description Published project URL. Set once status is completed. */
3006
+ /** @description Published project URL. Set after a successful deployment. */
2916
3007
  url?: string;
2917
3008
  };
2918
- PublicV1RemixJobOutputBody: {
3009
+ RemixJob: {
2919
3010
  /** @description Machine-readable failure cause, present only for recognized failures */
2920
3011
  error_code?: string;
2921
- /** @description Safe failure summary when the remix job fails */
3012
+ /** @description Human-readable explanation if the copy fails. */
2922
3013
  error_message?: string;
2923
- /** @description Remix result, present when completed */
2924
- result?: components["schemas"]["V1RemixProgressResult"];
2925
- /** @description Job status: preparing, running, completed, or error. More values may be added; clients must tolerate unknown values. */
2926
- status: string;
2927
- /** @description Current step details when available */
3014
+ /** @description Remix result, present after a successful copy. */
3015
+ result?: components["schemas"]["RemixResult"];
3016
+ /**
3017
+ * @description Progress of copying the project. More values may be added; clients must tolerate unknown values.
3018
+ * @enum {string}
3019
+ */
3020
+ status: "preparing" | "running" | "completed" | "error" | "unknown";
3021
+ /** @description Current copying stage, when available. On failure, failure.failed_step identifies the stage that failed. */
2928
3022
  step?: components["schemas"]["RemixJobStepInfo"];
2929
3023
  };
2930
3024
  PublicV1SendMessageInputBody: {
@@ -2961,26 +3055,29 @@ export interface components {
2961
3055
  /** @description Project ID */
2962
3056
  project_id: string;
2963
3057
  };
2964
- PublicV1UpdatePublishSettingsInputBody: {
2965
- /** @description Complete set of group/user grants for visibility 'custom': replaces existing group and user grants, an empty list removes them all, omit to keep the current audience. Grants managed in the UI (org access, email invites) are preserved. Only valid with visibility 'custom'. */
2966
- audience?: components["schemas"]["PublicV1PublishAudienceTarget"][] | null;
3058
+ UpdatePublishSettingsRequest: {
3059
+ /** @description Audience grants, available only with selected-audience app access. Providing a list replaces all group and user grants and removes workspace-wide access; an empty list removes those grants. Existing organization access and email invitations managed in the UI are preserved. Omit to keep the current audience. */
3060
+ audience?: components["schemas"]["PublishAudienceTarget"][] | null;
2967
3061
  /** @description Set to false to take the published app offline; visibility and audience settings are kept and apply again on the next publish. true is rejected: publishing requires a deploy via POST /v1/projects/{project_id}/publish. */
2968
3062
  is_published?: boolean;
2969
3063
  /**
2970
- * @description Who can view the published app: public (anyone with the link), workspace (workspace members only), or custom (only the groups/users in audience). Omit to leave visibility unchanged. Clients must tolerate new values.
3064
+ * @description Who can view the published app. A selected audience can include existing grants managed in the UI. Omit to leave visibility unchanged. Clients must tolerate new values.
2971
3065
  * @enum {string}
2972
3066
  */
2973
3067
  visibility?: "public" | "workspace" | "custom";
2974
3068
  };
2975
- PublicV1UpdatePublishSettingsResponse: {
3069
+ PublishSettings: {
2976
3070
  /** @description Whether the project is currently published */
2977
3071
  is_published: boolean;
2978
- /** @description Published project URL */
3072
+ /** @description Published app URL. Omitted when is_published is false. */
2979
3073
  url?: string;
2980
- /** @description Resolved visibility of the published app */
2981
- visibility: string;
3074
+ /**
3075
+ * @description Who can view the published app. More values may be added; clients must tolerate unknown values.
3076
+ * @enum {string}
3077
+ */
3078
+ visibility: "public" | "workspace" | "custom";
2982
3079
  };
2983
- PublicV1Workspace: {
3080
+ Workspace: {
2984
3081
  /**
2985
3082
  * Format: date-time
2986
3083
  * @description When the workspace was created.
@@ -3014,10 +3111,11 @@ export interface components {
3014
3111
  */
3015
3112
  num_projects: number;
3016
3113
  /**
3017
- * @description Plan tier. One of: free, pro, business, enterprise. More values may be added; clients must tolerate unknown values.
3114
+ * @description Plan tier. More values may be added; clients must tolerate unknown values.
3018
3115
  * @example pro
3116
+ * @enum {string}
3019
3117
  */
3020
- plan: string;
3118
+ plan: "free" | "pro" | "business" | "enterprise";
3021
3119
  /**
3022
3120
  * Format: date-time
3023
3121
  * @description When the workspace was last updated.
@@ -3025,7 +3123,7 @@ export interface components {
3025
3123
  */
3026
3124
  updated_at?: string;
3027
3125
  };
3028
- PublicV1WorkspaceMember: {
3126
+ WorkspaceMembership: {
3029
3127
  /**
3030
3128
  * Format: date-time
3031
3129
  * @description When the caller joined the workspace.
@@ -3033,17 +3131,18 @@ export interface components {
3033
3131
  */
3034
3132
  joined_at?: string;
3035
3133
  /**
3036
- * @description Caller's role in the workspace. One of: owner, admin, member, viewer, collaborator. More values may be added; clients must tolerate unknown values.
3134
+ * @description Caller's role in the workspace. More values may be added; clients must tolerate unknown values.
3037
3135
  * @example admin
3136
+ * @enum {string}
3038
3137
  */
3039
- role: string;
3138
+ role: "owner" | "admin" | "member" | "viewer" | "collaborator";
3040
3139
  /**
3041
3140
  * @description Caller's user ID.
3042
3141
  * @example Xy7Kd2Lm9Qp4Rt6Vw8Zc1Bn3Fh5
3043
3142
  */
3044
3143
  user_id: string;
3045
3144
  };
3046
- PublicV1WorkspaceWithMembership: {
3145
+ WorkspaceWithMembership: {
3047
3146
  /**
3048
3147
  * Format: date-time
3049
3148
  * @description When the workspace was created.
@@ -3066,7 +3165,7 @@ export interface components {
3066
3165
  */
3067
3166
  image_url?: string;
3068
3167
  /** @description Caller's membership in this workspace. */
3069
- membership?: components["schemas"]["PublicV1WorkspaceMember"];
3168
+ membership?: components["schemas"]["WorkspaceMembership"];
3070
3169
  /**
3071
3170
  * @description Workspace display name.
3072
3171
  * @example Acme Inc
@@ -3079,10 +3178,11 @@ export interface components {
3079
3178
  */
3080
3179
  num_projects: number;
3081
3180
  /**
3082
- * @description Plan tier. One of: free, pro, business, enterprise. More values may be added; clients must tolerate unknown values.
3181
+ * @description Plan tier. More values may be added; clients must tolerate unknown values.
3083
3182
  * @example pro
3183
+ * @enum {string}
3084
3184
  */
3085
- plan: string;
3185
+ plan: "free" | "pro" | "business" | "enterprise";
3086
3186
  /**
3087
3187
  * Format: date-time
3088
3188
  * @description When the workspace was last updated.
@@ -3091,21 +3191,40 @@ export interface components {
3091
3191
  updated_at?: string;
3092
3192
  };
3093
3193
  RemixJobFailure: {
3194
+ /** @description Machine-readable failure code when the cause is recognized. Omitted for unclassified failures. */
3094
3195
  code?: string;
3095
- failed_step: string;
3196
+ /**
3197
+ * @description Stage of copying the project that failed. More values may be added; clients must tolerate unknown values.
3198
+ * @enum {string}
3199
+ */
3200
+ failed_step: "starting" | "creating_new_project" | "restoring_supabase" | "copying_history" | "preparing_repository" | "remixing_integration" | "pushing_repository" | "finalizing" | "completed" | "failed";
3201
+ /** @description Human-readable explanation of why this step failed. */
3096
3202
  message: string;
3097
3203
  };
3098
3204
  RemixJobStepInfo: {
3205
+ /** @description Details of a failed step, when available. */
3099
3206
  failure?: components["schemas"]["RemixJobFailure"];
3207
+ /** @description Connected service being copied, when the current step relates to an integration. */
3100
3208
  integration_name?: string;
3209
+ /** @description Progress detail reported by the connected service. Values vary by integration and are separate from the overall job status. */
3101
3210
  status?: string;
3102
- step: string;
3211
+ /**
3212
+ * @description Current stage of copying the project, such as preparing its code or copying connected services. More values may be added; clients must tolerate unknown values.
3213
+ * @enum {string}
3214
+ */
3215
+ step: "starting" | "creating_new_project" | "restoring_supabase" | "copying_history" | "preparing_repository" | "remixing_integration" | "pushing_repository" | "finalizing" | "completed" | "failed";
3103
3216
  };
3104
3217
  RemixWarning: {
3105
- /** @enum {string} */
3218
+ /**
3219
+ * @description Category of a non-fatal issue encountered while copying the project. More values may be added; clients must tolerate unknown values.
3220
+ * @enum {string}
3221
+ */
3106
3222
  code: "edge_functions_not_deployed" | "integration_skipped";
3223
+ /** @description Names of backend functions that could not be deployed in the new project. */
3107
3224
  failed_edge_functions?: string[] | null;
3225
+ /** @description Human-readable explanation of why the connected service was not copied. */
3108
3226
  reason?: string;
3227
+ /** @description Connected service that was not copied, when applicable. */
3109
3228
  skipped_integration?: string;
3110
3229
  };
3111
3230
  SeamlessConnectorAPI: {
@@ -3208,6 +3327,7 @@ export interface components {
3208
3327
  SearchWorkspaceProjectsResponse: {
3209
3328
  has_more: boolean;
3210
3329
  projects: components["schemas"]["SearchProjectItem"][] | null;
3330
+ title_search?: boolean;
3211
3331
  /** Format: int64 */
3212
3332
  total: number;
3213
3333
  };
@@ -3216,6 +3336,8 @@ export interface components {
3216
3336
  reason: string;
3217
3337
  };
3218
3338
  StandardConnectorAPI: {
3339
+ /** @description True when this workspace can publish apps into the connector's platform (the connect card then offers that choice) */
3340
+ can_deploy_apps: boolean;
3219
3341
  /** @description True when the workspace plan allows restricting connection creation to admins (Business and Enterprise) */
3220
3342
  can_restrict_to_admins: boolean;
3221
3343
  /** @description Connector categories (empty array when none) */
@@ -3286,7 +3408,7 @@ export interface components {
3286
3408
  updated_at: string;
3287
3409
  };
3288
3410
  TimeSeriesData: {
3289
- /** @description Per-bucket values ordered by date, one entry per bucket in the range (bucket size set by the granularity parameter). */
3411
+ /** @description Values ordered by bucket start time. Bucket size is set by granularity; future buckets are omitted. */
3290
3412
  data: components["schemas"]["TimeSeriesDataPoint"][] | null;
3291
3413
  /**
3292
3414
  * @description Metric identifier, e.g. "sessionDuration".
@@ -3295,7 +3417,7 @@ export interface components {
3295
3417
  label: string;
3296
3418
  /**
3297
3419
  * Format: double
3298
- * @description Period-level aggregate for this metric over the requested range. How it is computed (sum, ratio, or average) and its unit depend on the metric — see the metric field's description.
3420
+ * @description Aggregate over the requested range. The unit and calculation (sum, ratio, or average) are defined by the parent metric.
3299
3421
  * @example 1280
3300
3422
  */
3301
3423
  total: number;
@@ -3308,7 +3430,7 @@ export interface components {
3308
3430
  date: string;
3309
3431
  /**
3310
3432
  * Format: double
3311
- * @description Metric value for this bucket. Unit matches the parent metric see its description.
3433
+ * @description Metric value for this bucket, in the unit defined by the parent metric.
3312
3434
  * @example 1280
3313
3435
  */
3314
3436
  value: number;
@@ -3322,7 +3444,7 @@ export interface components {
3322
3444
  pageviewsPerVisit: components["schemas"]["TimeSeriesData"];
3323
3445
  /** @description Average session duration in seconds. Each data point is the mean session length for that bucket; total is the mean of the per-bucket values across buckets that had at least one visitor, rounded to whole seconds (it is not a sum). */
3324
3446
  sessionDuration: components["schemas"]["TimeSeriesData"];
3325
- /** @description Unique visitors. Each data point is that bucket's visitor count; total is the sum over the requested range. */
3447
+ /** @description Visitor sessions, counted once per time bucket. total sums the bucket counts, so a session active in multiple buckets is counted more than once. */
3326
3448
  visitors: components["schemas"]["TimeSeriesData"];
3327
3449
  };
3328
3450
  ToolDisplayData: {
@@ -3341,7 +3463,7 @@ export interface components {
3341
3463
  time: string;
3342
3464
  /**
3343
3465
  * Format: int64
3344
- * @description Number of visits recorded in this bucket.
3466
+ * @description Unique visitor sessions with a page view in this minute. A session can appear in multiple buckets.
3345
3467
  * @example 42
3346
3468
  */
3347
3469
  visits: number;
@@ -3359,6 +3481,11 @@ export interface components {
3359
3481
  awaiting_input?: components["schemas"]["V1AwaitingInputSummary"];
3360
3482
  /** @description Git commit SHA for this change */
3361
3483
  commit_sha?: string;
3484
+ /**
3485
+ * @description How the turn ended; only present once the turn has ended. Refines status: max_iterations means the agent hit its iteration cap and closed the turn with work possibly incomplete (status completed); policy_violation means safety validation blocked the turn before any model call (status completed). New values may be added; clients must tolerate unknown values by falling back to status
3486
+ * @enum {string}
3487
+ */
3488
+ completion_reason?: "finished" | "stopped" | "error" | "policy_violation" | "max_iterations";
3362
3489
  /** @description AI response text */
3363
3490
  content: string;
3364
3491
  /**
@@ -3423,34 +3550,48 @@ export interface components {
3423
3550
  event_id: string;
3424
3551
  /** @description UserInputBlock[] schema for tools that require structured user input */
3425
3552
  input_schema?: unknown;
3553
+ /** @description Validated JSON parameters of the tool call awaiting approval, as the Lovable editor shows them on the approval card. Absent when the call never reached parameter validation. */
3554
+ params?: unknown;
3426
3555
  /** @description Suspended AI message ID to pass back as prev_session_id when resuming */
3427
3556
  prev_session_id?: string;
3557
+ /** @description Stable identifier of the tool awaiting approval, e.g. app_user_connector--provision_app. Omitted when the tool call carries no stable tool id. */
3558
+ tool_id?: string;
3428
3559
  };
3429
- V1BillingBulkSetMemberCreditLimitInputBody: {
3430
- /** @description Per-member limits to apply (1-1000 entries). Use the workspace default (PATCH /v1/workspaces/{workspace_id}/settings) to cap everyone at once. */
3431
- members: components["schemas"]["V1BulkMemberCreditLimitItem"][];
3560
+ SetMemberCreditLimitsRequest: {
3561
+ /** @description Per-member limits to apply, with each member listed at most once. To set the default for members without an explicit limit, use PATCH /v1/workspaces/{workspace_id}/settings. */
3562
+ members: components["schemas"]["MemberCreditLimitUpdate"][];
3432
3563
  };
3433
- V1BillingCreditLimitRow: {
3564
+ MemberCreditLimit: {
3434
3565
  /**
3435
3566
  * Format: double
3436
- * @description Explicit monthly credit cap for this member. Absent means no per-member cap is set and the member inherits the workspace default.
3567
+ * @description Explicit ongoing monthly build-credit limit for this member. Omitted when the member inherits the workspace default. An active higher temporary limit can override it.
3437
3568
  */
3438
3569
  monthly_credit_limit?: number;
3570
+ /**
3571
+ * Format: date-time
3572
+ * @description When temporary_monthly_credit_limit expires.
3573
+ */
3574
+ temporary_limit_expires_at?: string;
3575
+ /**
3576
+ * Format: double
3577
+ * @description Active temporary monthly build-credit limit for this member. It overrides the permanent or default limit only when higher. Omitted when no temporary limit is active.
3578
+ */
3579
+ temporary_monthly_credit_limit?: number;
3439
3580
  /** @description Member the cap applies to. Join GET /v1/workspaces/{workspace_id}/members for display metadata. */
3440
3581
  user_id: string;
3441
3582
  };
3442
- V1BillingCreditLimitsBody: {
3583
+ CreditLimitPage: {
3443
3584
  /** @description Items in this page. */
3444
- data: components["schemas"]["V1BillingCreditLimitRow"][] | null;
3585
+ data: components["schemas"]["MemberCreditLimit"][] | null;
3445
3586
  /**
3446
3587
  * Format: double
3447
- * @description Workspace default cap applied to members without an explicit per-member limit. Absent when unset (members are bounded only by the workspace balance).
3588
+ * @description Default monthly build-credit limit for members without an explicit per-member limit. Omitted when unset. An active higher temporary limit can override it.
3448
3589
  */
3449
3590
  default_monthly_credit_limit?: number;
3450
- /** @description Pagination cursors for fetching adjacent pages. */
3591
+ /** @description Whether more results are available and the cursor to fetch the next page. */
3451
3592
  pagination: components["schemas"]["Pagination"];
3452
3593
  };
3453
- V1BillingPeriod: {
3594
+ BillingPeriod: {
3454
3595
  /**
3455
3596
  * Format: date-time
3456
3597
  * @description Exclusive end of the period these credit figures cover (RFC3339, UTC).
@@ -3464,49 +3605,53 @@ export interface components {
3464
3605
  */
3465
3606
  start: string;
3466
3607
  };
3467
- V1BillingUsageBody: {
3608
+ CreditUsagePage: {
3468
3609
  /** @description Items in this page. */
3469
- data: components["schemas"]["V1BillingUsageRow"][] | null;
3610
+ data: components["schemas"]["CreditUsageEntry"][] | null;
3470
3611
  /**
3471
3612
  * Format: int64
3472
3613
  * @description Number of grouped entities across all pages; group_by queries only.
3473
3614
  * @example 12
3474
3615
  */
3475
3616
  entity_count?: number;
3476
- /** @description Pagination cursors for fetching adjacent pages. */
3617
+ /** @description Whether more results are available and the cursor to fetch the next page. */
3477
3618
  pagination: components["schemas"]["Pagination"];
3478
- /** @description The resolved window these rows cover, echoed so callers can see what the server applied. */
3479
- period: components["schemas"]["V1BillingUsagePeriod"];
3619
+ /** @description Date window and grouping applied to this response. */
3620
+ period: components["schemas"]["CreditUsagePeriod"];
3480
3621
  /**
3481
3622
  * Format: double
3482
- * @description Total matching credits across the whole window same on every page, not just this page's rows.
3623
+ * @description Total matching credits across the requested window and all pages. Includes usage without a member or project attribution, which is omitted from grouped rows.
3483
3624
  * @example 500
3484
3625
  */
3485
3626
  workspace_total: number;
3486
3627
  };
3487
- V1BillingUsagePeriod: {
3628
+ CreditUsagePeriod: {
3488
3629
  /**
3489
3630
  * @description Inclusive end of the covered window (YYYY-MM-DD, UTC).
3490
3631
  * @example 2026-01-31
3491
3632
  */
3492
3633
  end: string;
3493
3634
  /**
3494
- * @description Grouping dimension the rows use; group_by queries only.
3635
+ * @description Grouping dimension the rows use; group_by queries only. More values may be added; clients must tolerate unknown values.
3495
3636
  * @example member
3637
+ * @enum {string}
3638
+ */
3639
+ group_by?: "member" | "project";
3640
+ /**
3641
+ * @description Bucket size the rows use; interval queries only. More values may be added; clients must tolerate unknown values.
3642
+ * @enum {string}
3496
3643
  */
3497
- group_by?: string;
3498
- /** @description Bucket size the rows use; interval queries only. */
3499
- interval?: string;
3644
+ interval?: "day" | "week" | "month";
3500
3645
  /**
3501
3646
  * @description Inclusive start of the covered window (YYYY-MM-DD, UTC).
3502
3647
  * @example 2026-01-01
3503
3648
  */
3504
3649
  start: string;
3505
3650
  };
3506
- V1BillingUsageRow: {
3651
+ CreditUsageEntry: {
3507
3652
  /**
3508
3653
  * Format: double
3509
- * @description Build-time credits.
3654
+ * @description Credits used to create, edit, or plan apps in Lovable.
3510
3655
  * @example 120
3511
3656
  */
3512
3657
  build: number;
@@ -3517,7 +3662,7 @@ export interface components {
3517
3662
  */
3518
3663
  connectors: number;
3519
3664
  /** @description Per-connector breakdown. Interval buckets only. */
3520
- connectors_breakdown?: components["schemas"]["V1WorkspaceUsageConnectorBreakdown"][] | null;
3665
+ connectors_breakdown?: components["schemas"]["ConnectorUsage"][] | null;
3521
3666
  /**
3522
3667
  * Format: double
3523
3668
  * @description Database credits.
@@ -3525,14 +3670,14 @@ export interface components {
3525
3670
  */
3526
3671
  database: number;
3527
3672
  /** @description Database server/storage breakdown. Interval buckets only. */
3528
- database_breakdown?: components["schemas"]["V1WorkspaceUsageDatabaseBreakdown"][] | null;
3673
+ database_breakdown?: components["schemas"]["DatabaseUsage"][] | null;
3529
3674
  /**
3530
- * @description Member display name. Present on member-attributed rows (group_by=member, or a query filtered to one user_id).
3675
+ * @description Member display name, when available. Included only when grouping by workspace membership, or for ungrouped results filtered to one user_id.
3531
3676
  * @example Jane Cooper
3532
3677
  */
3533
3678
  display_name?: string;
3534
3679
  /**
3535
- * @description Member email as stored on the workspace membership (not the user's primary/personal email). Present on member-attributed rows.
3680
+ * @description Member email address in this workspace, when available. Included only when grouping by workspace membership, or for ungrouped results filtered to one user_id.
3536
3681
  * @example jane.cooper@acme.com
3537
3682
  */
3538
3683
  email?: string;
@@ -3544,12 +3689,12 @@ export interface components {
3544
3689
  functions: number;
3545
3690
  /**
3546
3691
  * Format: double
3547
- * @description AI Gateway credits.
3692
+ * @description Credits used for AI model requests made by apps through Lovable AI.
3548
3693
  * @example 200
3549
3694
  */
3550
3695
  gateway: number;
3551
- /** @description Per-model AI Gateway breakdown. Interval buckets only. */
3552
- gateway_models?: components["schemas"]["V1WorkspaceUsageGatewayModel"][] | null;
3696
+ /** @description Up to three AI models with the highest credit usage in this time bucket, ordered by credits descending. Their sum may be less than gateway. Included only for interval queries. */
3697
+ gateway_models?: components["schemas"]["GatewayModelUsage"][] | null;
3553
3698
  /**
3554
3699
  * Format: double
3555
3700
  * @description Network data-transfer credits.
@@ -3560,17 +3705,17 @@ export interface components {
3560
3705
  period_end?: string;
3561
3706
  /** @description Inclusive row start (YYYY-MM-DD, UTC). Present on interval buckets and the aggregate row. */
3562
3707
  period_start?: string;
3563
- /** @description Project this row aggregates (group_by=project). Join /v1/projects for the name. */
3708
+ /** @description Project ID when grouping usage by project. Use GET /v1/projects/{project_id} for project details. */
3564
3709
  project_id?: string;
3565
3710
  /**
3566
3711
  * Format: double
3567
- * @description Realtime credits.
3712
+ * @description Credits used for realtime app updates and subscriptions.
3568
3713
  * @example 40
3569
3714
  */
3570
3715
  realtime: number;
3571
3716
  /**
3572
3717
  * Format: double
3573
- * @description Run-time credits (sum of the per-category fields below).
3718
+ * @description Credits used by app services, equal to the sum of gateway, realtime, functions, storage, database, network, and connectors.
3574
3719
  * @example 380
3575
3720
  */
3576
3721
  run: number;
@@ -3582,22 +3727,27 @@ export interface components {
3582
3727
  storage: number;
3583
3728
  /**
3584
3729
  * Format: double
3585
- * @description Total credits in this row.
3730
+ * @description Total Lovable credits used in this row, equal to build plus run.
3586
3731
  * @example 500
3587
3732
  */
3588
3733
  total: number;
3589
3734
  /**
3590
- * @description Member this row aggregates (group_by=member) or is filtered to (user_id).
3735
+ * @description Member whose usage this row summarizes. Present when grouping by workspace membership or filtering to one user_id.
3591
3736
  * @example Xy7Kd2Lm9Qp4Rt6Vw8Zc1Bn3Fh5
3592
3737
  */
3593
3738
  user_id?: string;
3594
3739
  };
3595
- V1BulkMemberCreditLimitItem: {
3740
+ MemberCreditLimitUpdate: {
3741
+ /**
3742
+ * @description How long the limit applies. Omit for an ongoing limit. Temporary increases must exceed an existing effective limit and expire at the end of the current UTC calendar month. Temporary increases must be supported by the workspace.
3743
+ * @enum {string}
3744
+ */
3745
+ duration?: "permanent" | "current_period";
3596
3746
  /** @description Member's workspace email (case-insensitive; the address on the workspace membership, not the user's personal email). Provide exactly one of user_id or email. */
3597
3747
  email?: string;
3598
3748
  /**
3599
3749
  * Format: double
3600
- * @description A number (0 blocks all spend) to set the cap, or null to clear it (the member inherits the workspace default).
3750
+ * @description Monthly build-credit limit, as a nonnegative number of Lovable credits. Zero sets a zero-credit limit. With permanent duration, null clears the explicit limit so the workspace default applies. An active higher temporary limit can still apply.
3601
3751
  * @example 500
3602
3752
  */
3603
3753
  monthly_credit_limit: number | null;
@@ -3607,19 +3757,30 @@ export interface components {
3607
3757
  */
3608
3758
  user_id?: string;
3609
3759
  };
3610
- V1BulkMemberCreditLimitResult: {
3760
+ MemberCreditLimitResult: {
3761
+ /**
3762
+ * Format: date-time
3763
+ * @description When a current-period limit expires. Omitted for permanent updates.
3764
+ */
3765
+ approved_until?: string;
3766
+ /**
3767
+ * @description Duration of a temporary-limit update. Omitted for ongoing-limit updates. More values may be added; clients must tolerate unknown values.
3768
+ * @enum {string}
3769
+ */
3770
+ duration?: "current_period";
3611
3771
  /** @description Echoed when the item was addressed by email, so email-addressed results stay correlatable. */
3612
3772
  email?: string;
3613
3773
  /**
3614
- * @description Failure reason when status is error.
3774
+ * @description Reason the member update did not succeed.
3615
3775
  * @example member not found
3616
3776
  */
3617
3777
  error?: string;
3618
3778
  /**
3619
- * @description success or error.
3779
+ * @description Outcome of this member update. More values may be added; clients must tolerate unknown values.
3620
3780
  * @example error
3781
+ * @enum {string}
3621
3782
  */
3622
- status: string;
3783
+ status: "success" | "error";
3623
3784
  /**
3624
3785
  * @description The member this result is for (resolved from email when the item was addressed by email).
3625
3786
  * @example Xy7Kd2Lm9Qp4Rt6Vw8Zc1Bn3Fh5
@@ -3628,11 +3789,11 @@ export interface components {
3628
3789
  };
3629
3790
  V1BulkSetMemberCreditLimitInputBody: {
3630
3791
  /** @description Per-member limits to apply (1-50 entries). Use the workspace default (PATCH /v1/settings) to cap everyone at once. */
3631
- members: components["schemas"]["V1BulkMemberCreditLimitItem"][];
3792
+ members: components["schemas"]["MemberCreditLimitUpdate"][];
3632
3793
  /** @description Workspace ID. */
3633
3794
  workspace_id: string;
3634
3795
  };
3635
- V1BulkSetMemberCreditLimitOutputBody: {
3796
+ SetMemberCreditLimitsResponse: {
3636
3797
  /**
3637
3798
  * Format: int64
3638
3799
  * @description Number that failed (see per-item error).
@@ -3640,7 +3801,7 @@ export interface components {
3640
3801
  */
3641
3802
  failed: number;
3642
3803
  /** @description Per-member outcome, in request order. */
3643
- results: components["schemas"]["V1BulkMemberCreditLimitResult"][] | null;
3804
+ results: components["schemas"]["MemberCreditLimitResult"][] | null;
3644
3805
  /**
3645
3806
  * Format: int64
3646
3807
  * @description Number applied successfully.
@@ -3684,16 +3845,16 @@ export interface components {
3684
3845
  /** @description MCP server URL */
3685
3846
  url?: string;
3686
3847
  };
3687
- V1CreateEmbedURLInputBody: {
3848
+ CreateEmbedURLRequest: {
3688
3849
  /**
3689
- * @description Exact HTTPS origin (scheme + host, no path) allowed to frame the static preview. The minted token only loads inside a frame served from this origin.
3850
+ * @description HTTPS origin allowed to embed the preview, using a lowercase hostname with no port, trailing slash, path, query, or fragment. The preview URL only loads in an iframe on this origin.
3690
3851
  * @example https://acme.com
3691
3852
  */
3692
3853
  parent_origin: string;
3693
3854
  };
3694
- V1CreateEmbedURLOutputBody: {
3855
+ CreateEmbedURLResponse: {
3695
3856
  /**
3696
- * @description Origin-bound static-preview URL carrying a short-lived signed token (?__lovable_token=…). Load it in an iframe on the requested parent_origin.
3857
+ * @description Preview URL for an iframe on parent_origin. It allows visitors to view the built preview without a Lovable login until expires_at.
3697
3858
  * @example https://acme-landing-page.lovable.app/?__lovable_token=eyJhbGciOiJIUzI1NiJ9
3698
3859
  */
3699
3860
  embed_url: string;
@@ -3711,14 +3872,14 @@ export interface components {
3711
3872
  display_name?: string;
3712
3873
  /**
3713
3874
  * @deprecated
3714
- * @description Deprecated (ENT-3330): both create-time file fields are slated for removal in favor of a unified attachment mechanism, but this is still the only supported way to attach uploads on create meanwhile. Ephemeral file references returned by POST /v1/files/ephemeral-upload-url; requires initial_message. file_id is the full "ephemeral/{user_id}/{uuid}" path; file_name/mime_type/type are carried through to the promoted file ref so the chat renderer keeps image-vs-file distinction. Copied into the new project's bucket and attached to the initial message after the project is created.
3875
+ * @description Deprecated: create-time file attachment is slated for replacement by a unified attachment mechanism, but this is still the only supported way to attach uploads on create meanwhile. Ephemeral file references for files staged before the project exists; requires initial_message. file_id is the full "ephemeral/{user_id}/{uuid}" path; file_name/mime_type/type are carried through to the promoted file ref so the image-vs-file distinction is kept. Copied into the new project's bucket and attached to the initial message after the project is created.
3715
3876
  */
3716
3877
  ephemeral_files?: components["schemas"]["V1UnscopedFile"][] | null;
3717
3878
  /** @description Public HTTPS image or HTML file URLs to fetch server-side and attach to the initial message. Currently supports JPEG, PNG, WebP, and HTML. */
3718
3879
  file_urls?: string[] | null;
3719
3880
  /**
3720
3881
  * @deprecated
3721
- * @description Deprecated (ENT-3330): both create-time file fields are slated for removal in favor of a unified attachment mechanism; use ephemeral_files meanwhile. Pre-uploaded user-scoped file references ("{user_id}/{uuid}/{name}" from the deprecated POST /v1/files/upload-url endpoint), attached in place without copying; requires initial_message.
3882
+ * @description Deprecated: create-time file attachment is slated for replacement by a unified attachment mechanism; use ephemeral_files meanwhile. Pre-uploaded user-scoped file references ("{user_id}/{uuid}/{name}"), attached in place without copying; requires initial_message.
3722
3883
  */
3723
3884
  files?: components["schemas"]["V1UnscopedFile"][] | null;
3724
3885
  /** @description Initial chat message to send after creation */
@@ -3776,7 +3937,7 @@ export interface components {
3776
3937
  is_published?: boolean;
3777
3938
  /**
3778
3939
  * Format: date-time
3779
- * @description When the project was last edited.
3940
+ * @description When the project last received an edit or a user chat message.
3780
3941
  * @example 2026-01-15T09:30:00Z
3781
3942
  */
3782
3943
  last_edited_at?: string;
@@ -3798,7 +3959,7 @@ export interface components {
3798
3959
  */
3799
3960
  name?: string;
3800
3961
  /**
3801
- * @description Open Graph image URL.
3962
+ * @description Image URL used when sharing a link to the project on social platforms.
3802
3963
  * @example https://lovable.dev/cdn/projects/acme-landing-page/og.png
3803
3964
  */
3804
3965
  og_image_url?: string;
@@ -3808,20 +3969,23 @@ export interface components {
3808
3969
  */
3809
3970
  preview_url?: string;
3810
3971
  /**
3811
- * @description Project type. One of: project, library. Absent on older projects. More values may be added; clients must tolerate unknown values.
3972
+ * @description Project type. Absent on older projects. More values may be added; clients must tolerate unknown values.
3812
3973
  * @example project
3974
+ * @enum {string}
3813
3975
  */
3814
- project_type?: string;
3976
+ project_type?: "project" | "library";
3815
3977
  /**
3816
- * @description Published visibility. One of: public, private. More values may be added; clients must tolerate unknown values.
3978
+ * @description Who can access the published app. Separate from editor sharing. More values may be added; clients must tolerate unknown values.
3817
3979
  * @example public
3980
+ * @enum {string}
3818
3981
  */
3819
- publish_visibility?: string;
3982
+ publish_visibility?: "public" | "private" | "workspace_only";
3820
3983
  /**
3821
- * @description Provisioning status of the project, not agent build progress. 'completed' means the project scaffold was created, and is set before the agent has finished the initial message, so the code at that point is often an empty starter page. To check whether the agent finished building, poll GET /v1/messages/{message_id}. One of: in_progress, completed, failed. More values may be added; clients must tolerate unknown values.
3984
+ * @description Project setup status. Successful setup means the project has been created; the AI may still be processing a message and the preview may not be ready. More values may be added; clients must tolerate unknown values.
3822
3985
  * @example completed
3986
+ * @enum {string}
3823
3987
  */
3824
- status?: string;
3988
+ status?: "in_progress" | "completed" | "failed";
3825
3989
  /**
3826
3990
  * @description Project tech stack.
3827
3991
  * @example vite_react_shadcn_ts
@@ -3844,10 +4008,11 @@ export interface components {
3844
4008
  */
3845
4009
  user_id?: string;
3846
4010
  /**
3847
- * @description Project visibility: draft, private, workspace_view, or public.
4011
+ * @description Controls access to the project in the Lovable editor. Workspace roles and explicit sharing grants determine access. Published app access and open remixing are configured separately. More values may be added; clients must tolerate unknown values.
3848
4012
  * @example public
4013
+ * @enum {string}
3849
4014
  */
3850
- visibility?: string;
4015
+ visibility?: "draft" | "private" | "workspace_view" | "public";
3851
4016
  /**
3852
4017
  * @description Workspace the project belongs to.
3853
4018
  * @example workspace_01jw3k9m2xq8r5v0c7d4e6f2gh
@@ -3870,7 +4035,12 @@ export interface components {
3870
4035
  /** @description The variant's identifier */
3871
4036
  variant_id: string;
3872
4037
  };
3873
- V1CreditHistoryEntry: {
4038
+ CreditHistoryEntry: {
4039
+ /**
4040
+ * @description ID linking entries for the same credit allocation. A granted entry followed by an offsetting adjustment means the remaining credits were removed early, for example after a plan change or refund. Usage deductions are not included in this history, so summing these entries does not give the remaining balance.
4041
+ * @example 01jw3k9m2xq8r5v0c7d4e6f2aa
4042
+ */
4043
+ credit_grant_id: string;
3874
4044
  /**
3875
4045
  * Format: double
3876
4046
  * @description Signed change in Lovable credits: positive for grants, negative for expiries and debits.
@@ -3878,13 +4048,13 @@ export interface components {
3878
4048
  */
3879
4049
  credits_change: number;
3880
4050
  /**
3881
- * @description What happened to the credits.
4051
+ * @description How this event changed the credit balance. Early removal can reflect a plan change or refund replacing or revoking an earlier grant. Legacy balances may also be re-denominated.
3882
4052
  * @example granted
3883
4053
  * @enum {string}
3884
4054
  */
3885
4055
  event_type: "granted" | "expired" | "adjustment" | "converted";
3886
4056
  /**
3887
- * @description Credit bucket this entry affected.
4057
+ * @description Source of the credits affected. More values may be added; clients must tolerate unknown values.
3888
4058
  * @example billing
3889
4059
  * @enum {string}
3890
4060
  */
@@ -3982,13 +4152,13 @@ export interface components {
3982
4152
  /** @description Whether there are older edits available */
3983
4153
  has_more: boolean;
3984
4154
  };
3985
- V1GetSecurityScanOutputBody: {
3986
- /** @description Security findings captured in this scan. */
3987
- findings: components["schemas"]["V1SecurityFinding"][] | null;
3988
- /** @description Scan invocation summary. */
3989
- scan: components["schemas"]["V1SecurityScanSummary"];
3990
- /** @description Per-scanner execution records for this scan. */
3991
- scanner_runs: components["schemas"]["V1SecurityScannerRun"][] | null;
4155
+ SecurityScanDetail: {
4156
+ /** @description Findings in this scan snapshot, including results reused from earlier scans and findings marked fixed or ignored. */
4157
+ findings: components["schemas"]["SecurityFinding"][] | null;
4158
+ /** @description Status, initiator, and timing of the security scan. */
4159
+ scan: components["schemas"]["SecurityScan"];
4160
+ /** @description Execution results for individual security checks. Results may be reused from an earlier scan. */
4161
+ scanner_runs: components["schemas"]["SecurityScannerRun"][] | null;
3992
4162
  };
3993
4163
  V1GetWorkspaceSkillOutputBody: {
3994
4164
  skill: components["schemas"]["V1WorkspaceSkillDTO"];
@@ -4107,9 +4277,9 @@ export interface components {
4107
4277
  */
4108
4278
  total: number;
4109
4279
  };
4110
- V1ListWorkspacesBody: {
4280
+ WorkspacePage: {
4111
4281
  /** @description Workspaces the user is a member of */
4112
- data: components["schemas"]["PublicV1WorkspaceWithMembership"][] | null;
4282
+ data: components["schemas"]["WorkspaceWithMembership"][] | null;
4113
4283
  /** @description Pagination metadata */
4114
4284
  pagination: components["schemas"]["Pagination"];
4115
4285
  };
@@ -4138,6 +4308,11 @@ export interface components {
4138
4308
  awaiting_input?: components["schemas"]["V1AwaitingInputSummary"];
4139
4309
  /** @description Git commit SHA for this change */
4140
4310
  commit_sha?: string;
4311
+ /**
4312
+ * @description How the assistant turn ended; only present for assistant messages once the turn has ended. Refines status: max_iterations means the agent hit its iteration cap and closed the turn with work possibly incomplete (status completed); policy_violation means safety validation blocked the turn before any model call (status completed). New values may be added; clients must tolerate unknown values by falling back to status
4313
+ * @enum {string}
4314
+ */
4315
+ completion_reason?: "finished" | "stopped" | "error" | "policy_violation" | "max_iterations";
4141
4316
  /** @description Message text content */
4142
4317
  content: string;
4143
4318
  /**
@@ -4175,50 +4350,56 @@ export interface components {
4175
4350
  /** @description Project IDs to move into the folder */
4176
4351
  project_ids: string[] | null;
4177
4352
  };
4178
- V1ProjectCollaborator: {
4353
+ ProjectCollaborator: {
4179
4354
  /**
4180
4355
  * Format: date-time
4181
- * @description When the user accepted the project invitation. Null if the invite is still pending.
4356
+ * @description When the user accepted the project invitation. Omitted when no acceptance time is recorded, including pending invitations.
4182
4357
  * @example 2026-01-15T09:30:00Z
4183
4358
  */
4184
4359
  accepted_at?: string;
4185
4360
  /**
4186
- * @description Access level: owner, admin, write, or read
4361
+ * @description Access level granted to this collaborator.
4187
4362
  * @example admin
4188
4363
  * @enum {string}
4189
4364
  */
4190
4365
  access_level: "owner" | "admin" | "write" | "read" | "none";
4191
4366
  /**
4192
- * @description Human-readable display name. Falls back to the email when the user has not set a display name.
4367
+ * @description Collaborator display name, falling back to the email address. Omitted when neither is available.
4193
4368
  * @example Jane Cooper
4194
4369
  */
4195
4370
  display_name?: string;
4196
4371
  /**
4197
- * @description Email address of the collaborator. Empty if the user has no resolvable email (e.g. deleted user records that were not filtered out, or service-account-like users without an email on file).
4372
+ * @description Collaborator email address. Uses the workspace membership email when available, otherwise the account email. Omitted when unavailable.
4198
4373
  * @example jane.cooper@acme.com
4199
4374
  */
4200
4375
  email?: string;
4201
4376
  /**
4202
4377
  * Format: date-time
4203
- * @description When the user was invited to the project. Null for the project owner.
4378
+ * @description When the user was invited to the project. Omitted when no invitation time is recorded.
4204
4379
  * @example 2026-01-15T09:30:00Z
4205
4380
  */
4206
4381
  invited_at?: string;
4207
4382
  /**
4208
- * @description User ID of the inviter. Empty for the project owner.
4383
+ * @description User ID of the inviter. Omitted when no inviter is recorded.
4209
4384
  * @example Xy7Kd2Lm9Qp4Rt6Vw8Zc1Bn3Fh5
4210
4385
  */
4211
4386
  invited_by?: string;
4212
4387
  /**
4213
- * @description True when the user is internal to the workspace: either a workspace member, or their email belongs to a domain the workspace has verified (typical SSO / JIT provisioning case). Useful for distinguishing internal vs. external collaborators in security reviews.
4388
+ * @description Whether the collaborator belongs to the project's workspace or has an email address on a domain verified by that workspace. Internal refers to the customer's workspace, not Lovable staff.
4214
4389
  * @example true
4215
4390
  */
4216
4391
  is_internal: boolean;
4217
4392
  /**
4218
- * @description True when the user is a member of the project's workspace. False indicates an ad-hoc project collaborator who has no broader workspace access.
4393
+ * @description Whether the collaborator also belongs to the project's workspace.
4219
4394
  * @example true
4220
4395
  */
4221
4396
  is_workspace_member: boolean;
4397
+ /**
4398
+ * Format: date-time
4399
+ * @description When the collaborator last accessed this project, from the most recent project or preview auth token mint (session-start granularity, not per page view). Any authenticated open of the project surface counts, including a published-site open by a collaborator. Always present, so an access review can tell 'never accessed' from a missing field. Null when no access is recorded under the current grant: an access that predates invited_at belongs to a revoked grant and reports as null.
4400
+ * @example 2026-01-20T14:05:00Z
4401
+ */
4402
+ last_accessed_at: string | null;
4222
4403
  /**
4223
4404
  * @description User ID of the collaborator
4224
4405
  * @example Xy7Kd2Lm9Qp4Rt6Vw8Zc1Bn3Fh5
@@ -4242,7 +4423,7 @@ export interface components {
4242
4423
  */
4243
4424
  total: number;
4244
4425
  };
4245
- V1ProjectResponse: {
4426
+ Project: {
4246
4427
  /**
4247
4428
  * Format: date-time
4248
4429
  * @description When the project was created.
@@ -4281,7 +4462,7 @@ export interface components {
4281
4462
  is_published?: boolean;
4282
4463
  /**
4283
4464
  * Format: date-time
4284
- * @description When the project was last edited.
4465
+ * @description When the project last received an edit or a user chat message.
4285
4466
  * @example 2026-01-15T09:30:00Z
4286
4467
  */
4287
4468
  last_edited_at?: string;
@@ -4301,7 +4482,7 @@ export interface components {
4301
4482
  */
4302
4483
  name?: string;
4303
4484
  /**
4304
- * @description Open Graph image URL.
4485
+ * @description Image URL used when sharing a link to the project on social platforms.
4305
4486
  * @example https://lovable.dev/cdn/projects/acme-landing-page/og.png
4306
4487
  */
4307
4488
  og_image_url?: string;
@@ -4311,20 +4492,23 @@ export interface components {
4311
4492
  */
4312
4493
  preview_url?: string;
4313
4494
  /**
4314
- * @description Project type. One of: project, library. Absent on older projects. More values may be added; clients must tolerate unknown values.
4495
+ * @description Project type. Absent on older projects. More values may be added; clients must tolerate unknown values.
4315
4496
  * @example project
4497
+ * @enum {string}
4316
4498
  */
4317
- project_type?: string;
4499
+ project_type?: "project" | "library";
4318
4500
  /**
4319
- * @description Published visibility. One of: public, private. More values may be added; clients must tolerate unknown values.
4501
+ * @description Who can access the published app. Separate from editor sharing. More values may be added; clients must tolerate unknown values.
4320
4502
  * @example public
4503
+ * @enum {string}
4321
4504
  */
4322
- publish_visibility?: string;
4505
+ publish_visibility?: "public" | "private" | "workspace_only";
4323
4506
  /**
4324
- * @description Provisioning status of the project, not agent build progress. 'completed' means the project scaffold was created, and is set before the agent has finished the initial message, so the code at that point is often an empty starter page. To check whether the agent finished building, poll GET /v1/messages/{message_id}. One of: in_progress, completed, failed. More values may be added; clients must tolerate unknown values.
4507
+ * @description Project setup status. Successful setup means the project has been created; the AI may still be processing a message and the preview may not be ready. More values may be added; clients must tolerate unknown values.
4325
4508
  * @example completed
4509
+ * @enum {string}
4326
4510
  */
4327
- status?: string;
4511
+ status?: "in_progress" | "completed" | "failed";
4328
4512
  /**
4329
4513
  * @description Project tech stack.
4330
4514
  * @example vite_react_shadcn_ts
@@ -4347,10 +4531,11 @@ export interface components {
4347
4531
  */
4348
4532
  user_id?: string;
4349
4533
  /**
4350
- * @description Project visibility: draft, private, workspace_view, or public.
4534
+ * @description Controls access to the project in the Lovable editor. Workspace roles and explicit sharing grants determine access. Published app access and open remixing are configured separately. More values may be added; clients must tolerate unknown values.
4351
4535
  * @example public
4536
+ * @enum {string}
4352
4537
  */
4353
- visibility?: string;
4538
+ visibility?: "draft" | "private" | "workspace_view" | "public";
4354
4539
  /**
4355
4540
  * @description Workspace the project belongs to.
4356
4541
  * @example workspace_01jw3k9m2xq8r5v0c7d4e6f2gh
@@ -4385,7 +4570,7 @@ export interface components {
4385
4570
  /** @description Custom name for the new project */
4386
4571
  project_name?: string;
4387
4572
  /**
4388
- * @description How to apply message_id: before starts before the message, including includes that message's completed turn. Defaults to including.
4573
+ * @description Whether to include message_id's completed turn in the copy. Includes it by default.
4389
4574
  * @enum {string}
4390
4575
  */
4391
4576
  remix_mode?: "before" | "including";
@@ -4406,13 +4591,13 @@ export interface components {
4406
4591
  /** @description Error details when the remix job fails */
4407
4592
  error_message?: string;
4408
4593
  /** @description Remix result (present when completed) */
4409
- result?: components["schemas"]["V1RemixProgressResult"];
4594
+ result?: components["schemas"]["RemixResult"];
4410
4595
  /** @description Job status: preparing, running, completed, or error */
4411
4596
  status: string;
4412
4597
  /** @description Current step details (present when running) */
4413
4598
  step?: components["schemas"]["RemixJobStepInfo"];
4414
4599
  };
4415
- V1RemixProgressResult: {
4600
+ RemixResult: {
4416
4601
  /** @description ID of the newly created project */
4417
4602
  project_id: string;
4418
4603
  /** @description Non-fatal issues encountered while creating the project */
@@ -4422,7 +4607,7 @@ export interface components {
4422
4607
  /** @description Whether the connector was removed */
4423
4608
  success: boolean;
4424
4609
  };
4425
- V1SecurityFinding: {
4610
+ SecurityFinding: {
4426
4611
  /**
4427
4612
  * @description Finding category.
4428
4613
  * @example data_exposure
@@ -4440,7 +4625,7 @@ export interface components {
4440
4625
  */
4441
4626
  description?: string;
4442
4627
  /**
4443
- * @description Raw scanner output (e.g. matched pattern fragments). May be empty due to access restrictions; use 'description' and 'metadata' for the user-facing summary.
4628
+ * @description Additional scanner detail, available only to Lovable staff and omitted for API integrations. Use description for the finding summary.
4444
4629
  * @example table: public.profiles; rls_enabled: false
4445
4630
  */
4446
4631
  details?: string;
@@ -4450,21 +4635,22 @@ export interface components {
4450
4635
  */
4451
4636
  finding_id: string;
4452
4637
  /**
4453
- * @description Scan invocation ID where this finding was first seen.
4638
+ * @description ID of the security scan that first recorded this finding.
4454
4639
  * @example a1b2c3d4-e5f6-7890-abcd-ef1234567890
4455
4640
  */
4456
4641
  first_seen_scan_id?: string;
4457
4642
  /**
4458
- * @description error | warn | info
4643
+ * @description Severity reported by the scanner. More values may be added; clients must tolerate unknown values.
4459
4644
  * @example error
4645
+ * @enum {string}
4460
4646
  */
4461
- level: string;
4647
+ level: "error" | "warn" | "info";
4462
4648
  /**
4463
4649
  * @description Link to remediation guidance for this finding.
4464
4650
  * @example https://docs.lovable.dev/security/rls
4465
4651
  */
4466
4652
  link?: string;
4467
- /** @description Scanner-specific metadata (file_path, line_number, package, cve, ...) */
4653
+ /** @description Additional context supplied by the scanner, such as file_path, line_number, package, or cve. Keys vary by scanner and finding type. */
4468
4654
  metadata?: {
4469
4655
  [key: string]: unknown;
4470
4656
  };
@@ -4475,12 +4661,12 @@ export interface components {
4475
4661
  name: string;
4476
4662
  /**
4477
4663
  * Format: int64
4478
- * @description Number of consecutive scans this finding has appeared in
4664
+ * @description Number of times this finding has been detected again while ignored. Starts at zero and resets when the finding is ignored again.
4479
4665
  * @example 3
4480
4666
  */
4481
4667
  recurrence: number;
4482
4668
  /**
4483
- * @description Estimated remediation effort (easy, medium, or hard).
4669
+ * @description Estimated remediation effort reported by the scanner (e.g. easy, medium, or hard).
4484
4670
  * @example medium
4485
4671
  */
4486
4672
  remediation_difficulty?: string;
@@ -4490,10 +4676,11 @@ export interface components {
4490
4676
  */
4491
4677
  scanner_name: string;
4492
4678
  /**
4493
- * @description Finding status. One of: open, fixed, ignored. More values may be added; clients must tolerate unknown values.
4679
+ * @description Review state of the security finding. More values may be added; clients must tolerate unknown values.
4494
4680
  * @example open
4681
+ * @enum {string}
4495
4682
  */
4496
- status: string;
4683
+ status: "open" | "fixed" | "ignored";
4497
4684
  /**
4498
4685
  * Format: date-time
4499
4686
  * @description When this finding was last updated, UTC.
@@ -4501,19 +4688,22 @@ export interface components {
4501
4688
  */
4502
4689
  updated_at: string;
4503
4690
  };
4504
- V1SecurityScanActor: {
4691
+ SecurityScanActor: {
4505
4692
  /** @description Email of the user actor, when resolvable. */
4506
4693
  email?: string;
4507
4694
  /** @description Lovable user ID when the actor is a user. */
4508
4695
  id?: string;
4509
4696
  /** @description Display name of the user actor, when resolvable. */
4510
4697
  name?: string;
4511
- /** @description Actor type. One of: user, system. More values may be added; clients must tolerate unknown values. */
4512
- type: string;
4698
+ /**
4699
+ * @description Kind of initiator. Automatic editor checks and scans without a recorded source are attributed to the caller; scheduled and integration-triggered scans are automated. More values may be added; clients must tolerate unknown values.
4700
+ * @enum {string}
4701
+ */
4702
+ type: "user" | "system";
4513
4703
  };
4514
- V1SecurityScanSummary: {
4704
+ SecurityScan: {
4515
4705
  /**
4516
- * @description Project commit at scan start
4706
+ * @description Git commit SHA of the project when the scan started. Omitted when unavailable.
4517
4707
  * @example 9fceb02d0ae598e95dc970b74767f19372d61af8
4518
4708
  */
4519
4709
  commit_sha?: string;
@@ -4523,10 +4713,10 @@ export interface components {
4523
4713
  * @example 2026-01-15T09:30:00Z
4524
4714
  */
4525
4715
  finished_at?: string;
4526
- /** @description Scanners requested for this invocation */
4716
+ /** @description Identifiers of the security checks requested for this scan. */
4527
4717
  requested_scanners: string[] | null;
4528
4718
  /**
4529
- * @description Unique scan invocation ID
4719
+ * @description Unique ID for this security scan.
4530
4720
  * @example a1b2c3d4-e5f6-7890-abcd-ef1234567890
4531
4721
  */
4532
4722
  scan_id: string;
@@ -4537,27 +4727,29 @@ export interface components {
4537
4727
  */
4538
4728
  started_at: string;
4539
4729
  /**
4540
- * @description Scan status. One of: running, completed, failed. More values may be added; clients must tolerate unknown values.
4730
+ * @description Overall scan state. Finishing a scan does not mean that no security issues were found. More values may be added; clients must tolerate unknown values.
4541
4731
  * @example completed
4732
+ * @enum {string}
4542
4733
  */
4543
- status: string;
4734
+ status: "running" | "completed" | "failed";
4544
4735
  /**
4545
- * @description What triggered the scan. Known values include: workflow, user, ui_auto, aikido_import, app_mcp_deep_auto, hvt_scheduled, workspace_scheduled, enterprise_batch, gitsync_pull. More values may be added; clients must tolerate unknown values.
4736
+ * @description How the scan was initiated. More values may be added; clients must tolerate unknown values.
4546
4737
  * @example workflow
4738
+ * @enum {string}
4547
4739
  */
4548
- trigger_source: string;
4740
+ trigger_source: "workflow" | "user" | "ui_auto" | "aikido_import" | "manage_findings" | "app_mcp_deep_auto" | "hvt_scheduled" | "workspace_scheduled" | "enterprise_batch" | "gitsync_pull";
4549
4741
  /** @description Actor that triggered the scan. */
4550
- triggered_by: components["schemas"]["V1SecurityScanActor"];
4742
+ triggered_by: components["schemas"]["SecurityScanActor"];
4551
4743
  };
4552
- V1SecurityScannerRun: {
4744
+ SecurityScannerRun: {
4553
4745
  /**
4554
- * @description Commit at which this scanner actually ran (may differ from invocation commit on carry-forward)
4746
+ * @description Git commit SHA checked by this scanner. May be older than scan.commit_sha when results from an earlier scan are reused.
4555
4747
  * @example 9fceb02d0ae598e95dc970b74767f19372d61af8
4556
4748
  */
4557
4749
  commit_sha?: string;
4558
4750
  /**
4559
- * @description Error message when the scanner failed.
4560
- * @example Scanner timed out after 300s
4751
+ * @description User-facing retry guidance when the scanner failed. Omitted for other statuses.
4752
+ * @example The scanner failed to complete. Try running the security scan again.
4561
4753
  */
4562
4754
  error_message?: string;
4563
4755
  /**
@@ -4567,12 +4759,12 @@ export interface components {
4567
4759
  */
4568
4760
  finished_at?: string;
4569
4761
  /**
4570
- * @description Name of the scanner that ran.
4762
+ * @description Identifier of the security check.
4571
4763
  * @example agent_security
4572
4764
  */
4573
4765
  scanner_name: string;
4574
4766
  /**
4575
- * @description Version of the scanner that ran.
4767
+ * @description Version of the security check, when available.
4576
4768
  * @example 1.4.2
4577
4769
  */
4578
4770
  scanner_version?: string;
@@ -4583,10 +4775,11 @@ export interface components {
4583
4775
  */
4584
4776
  started_at: string;
4585
4777
  /**
4586
- * @description Scanner run status. One of: succeeded, failed, skipped. More values may be added; clients must tolerate unknown values.
4778
+ * @description Execution outcome for this check. Success does not mean that no security issues were found. More values may be added; clients must tolerate unknown values.
4587
4779
  * @example failed
4780
+ * @enum {string}
4588
4781
  */
4589
- status: string;
4782
+ status: "succeeded" | "failed" | "skipped";
4590
4783
  };
4591
4784
  V1SelectedLibrary: {
4592
4785
  /**
@@ -4666,22 +4859,23 @@ export interface components {
4666
4859
  /** @description Project ID */
4667
4860
  project_id: string;
4668
4861
  };
4669
- V1TriggerSecurityScanResponseBody: {
4862
+ TriggerSecurityScanResponse: {
4670
4863
  /**
4671
4864
  * @description Human-readable status message
4672
4865
  * @example Security scan started.
4673
4866
  */
4674
4867
  message?: string;
4675
4868
  /**
4676
- * @description Scan invocation ID. Poll GET /v1/projects/{project_id}/security-scans/{scan_id} for status (running | completed | failed) and findings.
4869
+ * @description ID of the new or reused scan. Poll GET /v1/projects/{project_id}/security-scans/{scan_id} for status and findings.
4677
4870
  * @example a1b2c3d4-e5f6-7890-abcd-ef1234567890
4678
4871
  */
4679
4872
  scan_id: string;
4680
4873
  /**
4681
- * @description One of: started, running, completed. More values may be added; clients must tolerate unknown values.
4874
+ * @description Whether a new scan began or an existing scan covers this request. In-progress scans are reused for the same commit and scanner set; finished scans are reused for the current commit. More values may be added; clients must tolerate unknown values.
4682
4875
  * @example started
4876
+ * @enum {string}
4683
4877
  */
4684
- status: string;
4878
+ status: "started" | "running" | "completed";
4685
4879
  };
4686
4880
  V1UnscopedFile: {
4687
4881
  /**
@@ -4718,17 +4912,17 @@ export interface components {
4718
4912
  V1UpdateWorkspaceSettingsInputBody: {
4719
4913
  /**
4720
4914
  * Format: double
4721
- * @description Default monthly credit cap applied to each member without an explicit per-member limit. Send a number >= 0 (0 blocks all member spend) to set it, or null to clear it (members are then bounded only by the workspace balance).
4915
+ * @description Default monthly build-credit limit for members without an explicit per-member limit. Send a nonnegative number of Lovable credits, or null to clear the default. Explicit member limits and active higher temporary limits still apply. This field is required for an update.
4722
4916
  * @example 500
4723
4917
  */
4724
4918
  default_monthly_member_credit_limit?: number | null;
4725
4919
  /** @description Workspace ID. */
4726
4920
  workspace_id: string;
4727
4921
  };
4728
- V1UpdateWorkspaceSettingsNestedInputBody: {
4922
+ UpdateWorkspaceSettingsRequest: {
4729
4923
  /**
4730
4924
  * Format: double
4731
- * @description Default monthly credit cap applied to each member without an explicit per-member limit. Send a number >= 0 (0 blocks all member spend) to set it, or null to clear it (members are then bounded only by the workspace balance).
4925
+ * @description Default monthly build-credit limit for members without an explicit per-member limit. Send a nonnegative number of Lovable credits, or null to clear the default. Explicit member limits and active higher temporary limits still apply. This field is required for an update.
4732
4926
  * @example 500
4733
4927
  */
4734
4928
  default_monthly_member_credit_limit?: number | null;
@@ -4831,32 +5025,32 @@ export interface components {
4831
5025
  V1WorkspaceAuditLogsBody: {
4832
5026
  /** @description Items in this page. */
4833
5027
  data: components["schemas"]["V1WorkspaceAuditLogEntry"][] | null;
4834
- /** @description Pagination cursors for fetching adjacent pages. */
5028
+ /** @description Whether more results are available and the cursor to fetch the next page. */
4835
5029
  pagination: components["schemas"]["Pagination"];
4836
5030
  };
4837
- V1WorkspaceCreditHistoryBody: {
5031
+ CreditHistoryPage: {
4838
5032
  /** @description Items in this page. */
4839
- data: components["schemas"]["V1CreditHistoryEntry"][] | null;
4840
- /** @description Pagination cursors for fetching adjacent pages. */
5033
+ data: components["schemas"]["CreditHistoryEntry"][] | null;
5034
+ /** @description Whether more results are available and the cursor to fetch the next page. */
4841
5035
  pagination: components["schemas"]["Pagination"];
4842
5036
  /**
4843
5037
  * Format: int64
4844
- * @description Total entry count, present only on the first page. Capped see total_is_capped.
5038
+ * @description Number of matching entries in the past 365 days, up to 500. Present only on the first page. Check total_is_capped before treating this as an exact count.
4845
5039
  * @example 42
4846
5040
  */
4847
5041
  total?: number;
4848
5042
  /**
4849
- * @description True when total reached the count cap and the real total is higher.
5043
+ * @description Whether more than 500 matching entries exist. When true, total is 500 and is a lower bound. Present only on the first page.
4850
5044
  * @example false
4851
5045
  */
4852
5046
  total_is_capped?: boolean;
4853
5047
  };
4854
- V1WorkspaceCreditsBody: {
5048
+ CreditBalance: {
4855
5049
  /** @description The workspace billing cycle that total_billing_period_used covers. */
4856
- billing_period: components["schemas"]["V1BillingPeriod"];
5050
+ billing_period: components["schemas"]["BillingPeriod"];
4857
5051
  /**
4858
5052
  * Format: double
4859
- * @description Daily credit limit for this workspace.
5053
+ * @description Total credits allocated by active daily grants, before usage. This is a daily allowance, not a cap on spending other credits.
4860
5054
  * @example 500
4861
5055
  */
4862
5056
  daily_limit: number;
@@ -4866,10 +5060,10 @@ export interface components {
4866
5060
  * @example 300
4867
5061
  */
4868
5062
  daily_remaining: number;
4869
- /** @description All future grant expiry groups sorted by date (excluding daily/overage). */
4870
- expiring_grants: components["schemas"]["V1WorkspaceCreditsExpiringGrant"][] | null;
4871
- /** @description Per-display-bucket credit balances. */
4872
- grant_type_balances: components["schemas"]["V1WorkspaceCreditsGrantTypeBalance"][] | null;
5063
+ /** @description Remaining general-purpose and build credits with expiry dates, grouped by source, eligible usage, and expiry time. Ordered by earliest expiry first. Excludes daily credits. */
5064
+ expiring_grants: components["schemas"]["ExpiringCreditGrant"][] | null;
5065
+ /** @description General-purpose and build-credit balances grouped by source or allocation category. */
5066
+ grant_type_balances: components["schemas"]["CreditGrantTypeBalance"][] | null;
4873
5067
  /**
4874
5068
  * Format: double
4875
5069
  * @description Credits used in the current billing period (see billing_period for the exact window).
@@ -4878,23 +5072,24 @@ export interface components {
4878
5072
  total_billing_period_used: number;
4879
5073
  /**
4880
5074
  * Format: double
4881
- * @description Total credits granted across all active grants.
5075
+ * @description Original amount granted for the active general-purpose and build-credit grants, including amounts already used. This is not a lifetime total.
4882
5076
  * @example 2000
4883
5077
  */
4884
5078
  total_granted: number;
4885
5079
  /**
4886
5080
  * Format: double
4887
- * @description Total remaining credits across all active grants.
5081
+ * @description Remaining general-purpose and build credits, including daily credits. Excludes separate Cloud and AI allowances.
4888
5082
  * @example 1500
4889
5083
  */
4890
5084
  total_remaining: number;
4891
5085
  };
4892
- V1WorkspaceCreditsExpiringGrant: {
5086
+ ExpiringCreditGrant: {
4893
5087
  /**
4894
- * @description What the expiring credits apply to (e.g. build_time, cloud, ai_gateway).
5088
+ * @description Usage categories that can consume this grant. Omitted when unspecified. More values may be added; clients must tolerate unknown values.
4895
5089
  * @example build_time
5090
+ * @enum {string}
4896
5091
  */
4897
- applicability?: string;
5092
+ applicability?: "generic" | "build_time" | "build_mode" | "plan_mode";
4898
5093
  /**
4899
5094
  * Format: double
4900
5095
  * @description Total credits expiring at this date.
@@ -4908,17 +5103,19 @@ export interface components {
4908
5103
  */
4909
5104
  expires_at: string;
4910
5105
  /**
4911
- * @description Display bucket: billing, rollover, topup, commitment, cashback, or granted.
5106
+ * @description Source or allocation category of the credits. More values may be added; clients must tolerate unknown values.
4912
5107
  * @example billing
5108
+ * @enum {string}
4913
5109
  */
4914
- grant_type: string;
5110
+ grant_type: "billing" | "rollover" | "topup" | "commitment" | "cashback" | "granted" | "overage" | "unlimited" | "allowance";
4915
5111
  };
4916
- V1WorkspaceCreditsGrantTypeBalance: {
5112
+ CreditGrantTypeBalance: {
4917
5113
  /**
4918
- * @description Display bucket: billing, daily, rollover, topup, commitment, cashback, or granted.
5114
+ * @description Source or allocation category of the credits. More values may be added; clients must tolerate unknown values.
4919
5115
  * @example billing
5116
+ * @enum {string}
4920
5117
  */
4921
- grant_type: string;
5118
+ grant_type: "billing" | "daily" | "rollover" | "topup" | "commitment" | "cashback" | "granted" | "overage" | "unlimited" | "allowance";
4922
5119
  /**
4923
5120
  * Format: double
4924
5121
  * @description Total credits granted for this type.
@@ -4932,7 +5129,7 @@ export interface components {
4932
5129
  */
4933
5130
  remaining: number;
4934
5131
  };
4935
- V1WorkspaceGroup: {
5132
+ WorkspaceGroup: {
4936
5133
  /**
4937
5134
  * Format: date-time
4938
5135
  * @description When the group was created.
@@ -4977,86 +5174,89 @@ export interface components {
4977
5174
  */
4978
5175
  workspace_id: string;
4979
5176
  };
4980
- V1WorkspaceInsightsActivityFreshness: {
5177
+ WorkspaceInsightsActivityFreshness: {
4981
5178
  /**
4982
5179
  * Format: date-time
4983
- * @description Data horizon for the edit counts.
5180
+ * @description Latest data timestamp used by the stored edit counts on this page. Omitted when unavailable.
4984
5181
  * @example 2026-01-15T09:30:00Z
4985
5182
  */
4986
5183
  edits_as_of?: string;
4987
5184
  /**
4988
5185
  * Format: date-time
4989
- * @description Data horizon for the visitor counts.
5186
+ * @description Latest data timestamp used by stored visitor counts on this page. Omitted when counts are retrieved live or no timestamp is available.
4990
5187
  * @example 2026-01-15T09:30:00Z
4991
5188
  */
4992
5189
  visitors_as_of?: string;
4993
5190
  };
4994
- V1WorkspaceInsightsBody: {
5191
+ WorkspaceInsights: {
4995
5192
  /**
4996
5193
  * Format: date-time
4997
- * @description Conservative workspace-wide freshness horizon for the risk rollups; individual project rollups may be newer.
5194
+ * @description Timestamp indicating the freshness of workspace review-priority data. Individual projects may have newer results. Omitted when unavailable. This is not a security scan completion time.
4998
5195
  * @example 2026-01-15T09:30:00Z
4999
5196
  */
5000
5197
  as_of?: string;
5001
- /** @description Finding-catalog counts, dominance-suppressed and severity-ordered. */
5002
- findings: components["schemas"]["V1WorkspaceInsightsFinding"][] | null;
5003
- /** @description KPI cards for the workspace security posture. */
5004
- summary: components["schemas"]["V1WorkspaceInsightsSummary"];
5198
+ /** @description Finding types and their matching project counts, including types with zero matches, ordered by higher review priority first. Related conditions may be combined under a more specific finding. A project can appear under multiple finding types. Types requiring personal data detection access are omitted when that feature is unavailable. Returns an empty array when no types are included. */
5199
+ findings: components["schemas"]["WorkspaceInsightsFinding"][];
5200
+ /** @description Workspace project counts, membership counts, and project review priorities. */
5201
+ summary: components["schemas"]["WorkspaceInsightsSummary"];
5005
5202
  };
5006
- V1WorkspaceInsightsEdgeFunction: {
5203
+ WorkspaceInsightsEdgeFunction: {
5007
5204
  /**
5008
- * @description Edge function name.
5205
+ * @description Name of a backend function deployed for this project.
5009
5206
  * @example send-welcome-email
5010
5207
  */
5011
5208
  name: string;
5012
5209
  };
5013
- V1WorkspaceInsightsFinding: {
5210
+ WorkspaceInsightsFinding: {
5014
5211
  /**
5015
- * @description Finding category (e.g. data, access, exposure).
5016
- * @example data
5212
+ * @description Finding category. More values may be added; clients must tolerate unknown values.
5213
+ * @example exposure
5214
+ * @enum {string}
5017
5215
  */
5018
- category: string;
5216
+ category: "security" | "data" | "exposure" | "credentials" | "access" | "integrations" | "runtime";
5019
5217
  /**
5020
- * @description Human-readable finding description.
5021
- * @example A public table has row-level security disabled, exposing all rows to anonymous callers.
5218
+ * @description Explanation of the condition represented by this finding type.
5219
+ * @example Publicly published projects with error-level security findings.
5022
5220
  */
5023
5221
  description: string;
5024
5222
  /**
5025
- * @description Stable finding-catalog slug (e.g. public_pii_exposure, orphaned_owner).
5026
- * @example public_pii_exposure
5223
+ * @description Stable identifier for the finding type. Use as finding_id on GET /v1/workspaces/{workspace_id}/security-center/insights/projects to list matching projects; that endpoint requires Enterprise.
5224
+ * @example public_security_exposure
5027
5225
  */
5028
5226
  id: string;
5029
5227
  /**
5030
5228
  * Format: int64
5031
- * @description Projects matching this finding.
5229
+ * @description Number of distinct projects represented by this finding type. Counts across finding types can overlap and must not be summed to obtain a unique project total.
5032
5230
  * @example 12
5033
5231
  */
5034
5232
  project_count: number;
5035
5233
  /**
5036
- * @description Review priority: needs_review | review_recommended | no_review_needed.
5234
+ * @description Review priority assigned to this finding type. May differ from an individual scan finding's severity, its UI badge, or a project's overall review priority. More values may be added; clients must tolerate unknown values.
5037
5235
  * @example needs_review
5236
+ * @enum {string}
5038
5237
  */
5039
- severity: string;
5238
+ severity: "needs_review" | "review_recommended" | "no_review_needed";
5040
5239
  /**
5041
- * @description Human-readable finding title.
5042
- * @example Row-level security disabled on a public table
5240
+ * @description Short display name for the finding type. Use id for programmatic matching.
5241
+ * @example Public app with security errors
5043
5242
  */
5044
5243
  title: string;
5045
5244
  };
5046
- V1WorkspaceInsightsOwner: {
5245
+ WorkspaceInsightsOwner: {
5047
5246
  /**
5048
5247
  * @description Project owner's display name.
5049
5248
  * @example Jane Cooper
5050
5249
  */
5051
5250
  display_name?: string;
5052
5251
  };
5053
- V1WorkspaceInsightsProject: {
5252
+ WorkspaceInsightsProject: {
5054
5253
  /**
5055
- * @description Activity bucket: active, inactive, or dead.
5056
- * @example active
5254
+ * @description Last-edit recency, using 14-day and 60-day boundaries. More values may be added; clients must tolerate unknown values.
5255
+ * @example last_14_days
5256
+ * @enum {string}
5057
5257
  */
5058
- activity_group?: string;
5059
- /** @description Configured connector names. */
5258
+ activity_group?: "last_14_days" | "last_60_days" | "older";
5259
+ /** @description Names of services connected to the project. */
5060
5260
  connectors?: string[] | null;
5061
5261
  /**
5062
5262
  * @description User-provided project description.
@@ -5068,8 +5268,8 @@ export interface components {
5068
5268
  * @example Acme Landing Page
5069
5269
  */
5070
5270
  display_name?: string;
5071
- /** @description Deployed edge functions. */
5072
- edge_functions?: components["schemas"]["V1WorkspaceInsightsEdgeFunction"][] | null;
5271
+ /** @description Backend functions deployed for the project. */
5272
+ edge_functions?: components["schemas"]["WorkspaceInsightsEdgeFunction"][] | null;
5073
5273
  /**
5074
5274
  * Format: int64
5075
5275
  * @description Total edits over the project's lifetime.
@@ -5117,15 +5317,15 @@ export interface components {
5117
5317
  last_edited_at?: string;
5118
5318
  /**
5119
5319
  * Format: date-time
5120
- * @description When the project was last security-scanned.
5320
+ * @description Completion time of the latest completed security scan. Omitted if no completed scan is available.
5121
5321
  * @example 2026-01-15T09:30:00Z
5122
5322
  */
5123
5323
  last_security_scan_at?: string;
5124
- /** @description The reason matching the single applied finding_id, when set. */
5125
- matched_reason?: components["schemas"]["V1WorkspaceInsightsReason"];
5324
+ /** @description Condition matching the finding_id filter when exactly one finding type is selected. May be absent from review_priority_explanation when a more specific condition is displayed there. */
5325
+ matched_reason?: components["schemas"]["WorkspaceInsightsReason"];
5126
5326
  /**
5127
5327
  * Format: int64
5128
- * @description Total chat messages in the project.
5328
+ * @description Agent message usage recorded for this project during the current UTC calendar month, excluding usage covered by unlimited plans.
5129
5329
  * @example 56
5130
5330
  */
5131
5331
  message_count: number;
@@ -5139,32 +5339,35 @@ export interface components {
5139
5339
  * @example https://lovable.dev/cdn/projects/acme-landing-page/og.png
5140
5340
  */
5141
5341
  og_image_url?: string;
5142
- /** @description Project owner identity. */
5143
- owner?: components["schemas"]["V1WorkspaceInsightsOwner"];
5342
+ /** @description Project owner's display name, when available. */
5343
+ owner?: components["schemas"]["WorkspaceInsightsOwner"];
5144
5344
  /**
5145
- * @description Publishing status: external, workspace, or not_published.
5146
- * @example external
5345
+ * @description Who can access the published site. Separate from editor sharing. More values may be added; clients must tolerate unknown values.
5346
+ * @example public
5347
+ * @enum {string}
5147
5348
  */
5148
- publish_visibility?: string;
5349
+ publish_visibility?: "public" | "private" | "workspace_only";
5149
5350
  /**
5150
- * @description Review priority: needs_review, review_recommended, no_review_needed, or unscored.
5351
+ * @description Security Center review priority, or an indication that the project has not yet been scored. A lower priority does not guarantee the absence of security issues. More values may be added; clients must tolerate unknown values.
5151
5352
  * @example needs_review
5353
+ * @enum {string}
5152
5354
  */
5153
- review_priority?: string;
5154
- /** @description Risk reasons explaining the review priority. */
5155
- review_priority_explanation: components["schemas"]["V1WorkspaceInsightsReason"][] | null;
5355
+ review_priority?: "needs_review" | "review_recommended" | "no_review_needed" | "unscored";
5356
+ /** @description Conditions contributing to the project's review priority. Not every scoring input is listed, and related conditions may be combined under a more specific explanation. */
5357
+ review_priority_explanation: components["schemas"]["WorkspaceInsightsReason"][] | null;
5156
5358
  /** @description Per-project security and activity signals. */
5157
- signals: components["schemas"]["V1WorkspaceInsightsSignals"];
5359
+ signals: components["schemas"]["WorkspaceInsightsSignals"];
5158
5360
  /**
5159
- * @description Live project preview URL.
5361
+ * @description Configured site URL, when available. Unpublishing clears it, but later renames or URL changes can set it while the app is offline; check is_published before using it.
5160
5362
  * @example https://acme-landing-page.lovable.app
5161
5363
  */
5162
5364
  url?: string;
5163
5365
  /**
5164
- * @description Project visibility: public, private, or draft.
5366
+ * @description Who can access the project in the Lovable editor. Separate from published site access. More values may be added; clients must tolerate unknown values.
5165
5367
  * @example public
5368
+ * @enum {string}
5166
5369
  */
5167
- visibility?: string;
5370
+ visibility?: "draft" | "private" | "workspace_view" | "public";
5168
5371
  /**
5169
5372
  * Format: int64
5170
5373
  * @description Unique visitors in the last 24 hours.
@@ -5184,20 +5387,20 @@ export interface components {
5184
5387
  */
5185
5388
  visitors_7d: number;
5186
5389
  };
5187
- V1WorkspaceInsightsProjectsBody: {
5188
- /** @description Per-family data horizons for the activity columns. */
5189
- activity_as_of?: components["schemas"]["V1WorkspaceInsightsActivityFreshness"];
5190
- /** @description The catalog finding applied as a filter, when exactly one finding_id is set. */
5191
- applied_finding?: components["schemas"]["V1WorkspaceInsightsFinding"];
5390
+ WorkspaceInsightsProjectPage: {
5391
+ /** @description Available data timestamps for the edit and visitor counts on this page. */
5392
+ activity_as_of?: components["schemas"]["WorkspaceInsightsActivityFreshness"];
5393
+ /** @description Finding type used as a filter when exactly one finding_id is selected. project_count equals the total matching projects after all filters are applied. */
5394
+ applied_finding?: components["schemas"]["WorkspaceInsightsFinding"];
5192
5395
  /**
5193
5396
  * Format: date-time
5194
- * @description Conservative workspace-wide freshness horizon for the risk rollups; individual project rollups may be newer.
5397
+ * @description Timestamp indicating the freshness of workspace review-priority data. Individual projects may have newer results. Omitted when unavailable; not a security scan completion time.
5195
5398
  * @example 2026-01-15T09:30:00Z
5196
5399
  */
5197
5400
  as_of?: string;
5198
5401
  /** @description Items in this page. */
5199
- data: components["schemas"]["V1WorkspaceInsightsProject"][] | null;
5200
- /** @description Pagination cursors for fetching adjacent pages. */
5402
+ data: components["schemas"]["WorkspaceInsightsProject"][] | null;
5403
+ /** @description Whether more results are available and the cursor to fetch the next page. */
5201
5404
  pagination: components["schemas"]["Pagination"];
5202
5405
  /**
5203
5406
  * Format: int64
@@ -5206,36 +5409,38 @@ export interface components {
5206
5409
  */
5207
5410
  total: number;
5208
5411
  };
5209
- V1WorkspaceInsightsReason: {
5412
+ WorkspaceInsightsReason: {
5210
5413
  /**
5211
- * @description Risk-reason category (e.g. data, access, exposure).
5414
+ * @description Topic of the condition contributing to the review priority. More values may be added; clients must tolerate unknown values.
5212
5415
  * @example data
5416
+ * @enum {string}
5213
5417
  */
5214
- category: string;
5418
+ category: "security" | "data" | "exposure" | "credentials" | "access" | "integrations" | "runtime";
5215
5419
  /**
5216
- * @description Human-readable explanation of the risk reason.
5420
+ * @description Explanation of how this condition contributes to the project's review priority.
5217
5421
  * @example A public table exposes personal data to anonymous callers.
5218
5422
  */
5219
5423
  detail: string;
5220
5424
  /**
5221
- * @description Stable risk-reason slug.
5425
+ * @description Stable identifier for the condition contributing to this project's review priority.
5222
5426
  * @example public_pii_exposure
5223
5427
  */
5224
5428
  id: string;
5225
5429
  /**
5226
- * @description Human-readable risk-reason label.
5430
+ * @description Short display name for this condition. Use id for programmatic matching.
5227
5431
  * @example Public PII exposure
5228
5432
  */
5229
5433
  label: string;
5230
5434
  /**
5231
- * @description Review priority: needs_review | review_recommended | no_review_needed.
5435
+ * @description Review priority assigned to this condition. May differ from the project's overall priority. More values may be added; clients must tolerate unknown values.
5232
5436
  * @example needs_review
5437
+ * @enum {string}
5233
5438
  */
5234
- severity: string;
5235
- /** @description Typed per-reason counts. */
5236
- values?: components["schemas"]["V1WorkspaceInsightsReasonValues"];
5439
+ severity: "needs_review" | "review_recommended" | "no_review_needed";
5440
+ /** @description Counts relevant to this condition. Only applicable fields are populated. */
5441
+ values?: components["schemas"]["WorkspaceInsightsReasonValues"];
5237
5442
  };
5238
- V1WorkspaceInsightsReasonValues: {
5443
+ WorkspaceInsightsReasonValues: {
5239
5444
  /**
5240
5445
  * Format: int64
5241
5446
  * @description Number of configured connectors.
@@ -5285,27 +5490,27 @@ export interface components {
5285
5490
  */
5286
5491
  warning_count?: number;
5287
5492
  };
5288
- V1WorkspaceInsightsReviewPriority: {
5493
+ WorkspaceInsightsReviewPriority: {
5289
5494
  /**
5290
5495
  * Format: int64
5291
- * @description Projects that need review (critical risk).
5496
+ * @description Projects assigned high review priority, shown as "High" in Security Center.
5292
5497
  * @example 3
5293
5498
  */
5294
5499
  needs_review: number;
5295
5500
  /**
5296
5501
  * Format: int64
5297
- * @description Projects that don't need review (low or minimal risk).
5502
+ * @description Projects assigned low review priority, shown as "Low" in Security Center. This classification does not guarantee that a project has no security issues.
5298
5503
  * @example 12
5299
5504
  */
5300
5505
  no_review_needed: number;
5301
5506
  /**
5302
5507
  * Format: int64
5303
- * @description Projects where review is recommended (high or medium risk).
5508
+ * @description Projects assigned medium review priority, shown as "Medium" in Security Center.
5304
5509
  * @example 5
5305
5510
  */
5306
5511
  review_recommended: number;
5307
5512
  };
5308
- V1WorkspaceInsightsSignals: {
5513
+ WorkspaceInsightsSignals: {
5309
5514
  /**
5310
5515
  * Format: int64
5311
5516
  * @description Number of chat attachments.
@@ -5341,12 +5546,12 @@ export interface components {
5341
5546
  */
5342
5547
  has_chat_attachment: boolean;
5343
5548
  /**
5344
- * @description Whether the project has collaborators outside the workspace.
5549
+ * @description Whether the project has collaborators outside the workspace. Interpret only when external_collaborators_known is true.
5345
5550
  * @example true
5346
5551
  */
5347
5552
  has_external_collaborators: boolean;
5348
5553
  /**
5349
- * @description Whether the project has any detected PII.
5554
+ * @description Whether the project is flagged as containing personally identifiable information (PII). False when personal data detection is unavailable.
5350
5555
  * @example true
5351
5556
  */
5352
5557
  has_pii: boolean;
@@ -5382,7 +5587,7 @@ export interface components {
5382
5587
  */
5383
5588
  is_published: boolean;
5384
5589
  /**
5385
- * @description Whether Lovable Cloud (Supabase) is enabled for the project.
5590
+ * @description Whether the project uses Lovable Cloud for its backend.
5386
5591
  * @example true
5387
5592
  */
5388
5593
  lovable_cloud_enabled: boolean;
@@ -5393,7 +5598,7 @@ export interface components {
5393
5598
  */
5394
5599
  open_pii_finding_count: number;
5395
5600
  /**
5396
- * @description Whether the project is shared more broadly than recommended.
5601
+ * @description Whether the project is shared with at least 10 users.
5397
5602
  * @example false
5398
5603
  */
5399
5604
  overshared: boolean;
@@ -5443,19 +5648,19 @@ export interface components {
5443
5648
  supabase_table_count?: number;
5444
5649
  /**
5445
5650
  * Format: int64
5446
- * @description Number of error-level supply-chain findings.
5651
+ * @description Number of error-level findings in project dependencies.
5447
5652
  * @example 1
5448
5653
  */
5449
5654
  supply_chain_error_count: number;
5450
5655
  /**
5451
5656
  * Format: int64
5452
- * @description Number of info-level supply-chain findings.
5657
+ * @description Number of informational findings in project dependencies.
5453
5658
  * @example 4
5454
5659
  */
5455
5660
  supply_chain_info_count: number;
5456
5661
  /**
5457
5662
  * Format: int64
5458
- * @description Number of warning-level supply-chain findings.
5663
+ * @description Number of warning-level findings in project dependencies.
5459
5664
  * @example 3
5460
5665
  */
5461
5666
  supply_chain_warning_count: number;
@@ -5466,48 +5671,48 @@ export interface components {
5466
5671
  */
5467
5672
  warning_count: number;
5468
5673
  };
5469
- V1WorkspaceInsightsStat: {
5674
+ WorkspaceInsightsStat: {
5470
5675
  /**
5471
5676
  * Format: int64
5472
- * @description Signed change over the delta window.
5677
+ * @description Number of items in the current count that were created or joined within the last 30 days, as defined by the metric. This is not a net change from the count 30 days ago.
5473
5678
  * @example 3
5474
5679
  */
5475
5680
  delta_30d: number;
5476
5681
  /**
5477
- * @description Human-readable window for delta_30d (e.g. "30 days").
5682
+ * @description Display label for the reporting period used by delta_30d. Currently "30 days".
5478
5683
  * @example 30 days
5479
5684
  */
5480
5685
  delta_window: string;
5481
5686
  /**
5482
5687
  * Format: int64
5483
- * @description Current count.
5688
+ * @description Current count for this metric.
5484
5689
  * @example 42
5485
5690
  */
5486
5691
  value: number;
5487
5692
  };
5488
- V1WorkspaceInsightsSummary: {
5489
- /** @description Projects published to an external (public) audience. */
5490
- externally_published: components["schemas"]["V1WorkspaceInsightsStat"];
5491
- /** @description Review-priority rollup across scored projects (needs_review / review_recommended / no_review_needed). */
5492
- risk: components["schemas"]["V1WorkspaceInsightsReviewPriority"];
5493
- /** @description Total projects in the workspace. */
5494
- total_projects: components["schemas"]["V1WorkspaceInsightsStat"];
5495
- /** @description Active workspace members. */
5496
- workspace_members: components["schemas"]["V1WorkspaceInsightsStat"];
5693
+ WorkspaceInsightsSummary: {
5694
+ /** @description Projects currently published for public access. Excludes privately published projects shared with selected external viewers. delta_30d counts currently public projects created within the last 30 days, not publication events. */
5695
+ externally_published: components["schemas"]["WorkspaceInsightsStat"];
5696
+ /** @description Project counts grouped by review priority. Projects without a calculated priority are excluded, so these counts may total less than total_projects.value. */
5697
+ risk: components["schemas"]["WorkspaceInsightsReviewPriority"];
5698
+ /** @description Projects currently in the workspace, excluding deleted projects. delta_30d counts those created within the last 30 days. */
5699
+ total_projects: components["schemas"]["WorkspaceInsightsStat"];
5700
+ /** @description Current active workspace members, excluding pending invitations. delta_30d counts current members who joined within the last 30 days; members who subsequently left are excluded. */
5701
+ workspace_members: components["schemas"]["WorkspaceInsightsStat"];
5497
5702
  };
5498
- V1WorkspaceMember: {
5703
+ WorkspaceMember: {
5499
5704
  /**
5500
- * @description User display name as stored on the membership.
5705
+ * @description Member display name in this workspace. Omitted when unavailable.
5501
5706
  * @example Jane Cooper
5502
5707
  */
5503
5708
  display_name?: string;
5504
5709
  /**
5505
- * @description Member email as stored on the membership. For pending invites this is the invited email. May be absent on legacy membership rows.
5710
+ * @description Member email address in this workspace. For pending invitations, this is the invited address. Omitted when unavailable.
5506
5711
  * @example jane.cooper@acme.com
5507
5712
  */
5508
5713
  email?: string;
5509
5714
  /** @description Groups the member belongs to, sorted by group name. Never truncated: a member in many groups returns all of them, so response size scales with group membership. Present whenever the request asks for include=groups, empty for a member in no groups; absent otherwise. */
5510
- groups?: components["schemas"]["V1WorkspaceMemberGroup"][];
5715
+ groups?: components["schemas"]["WorkspaceMemberGroup"][];
5511
5716
  /**
5512
5717
  * Format: date-time
5513
5718
  * @description When the user was invited.
@@ -5522,17 +5727,18 @@ export interface components {
5522
5727
  joined_at?: string;
5523
5728
  /**
5524
5729
  * Format: double
5525
- * @description Explicit monthly credit cap for this member. Absent means no per-member cap is set and the workspace default applies. Visible for yourself; visible for other members only with permission to view member usage.
5730
+ * @description Explicit monthly build-credit limit for this member. When unset, the workspace default applies. Omitted when unset or when the caller lacks permission to view this member's limit. Your own limit is visible to you.
5526
5731
  * @example 500
5527
5732
  */
5528
5733
  monthly_credit_limit?: number;
5529
5734
  /**
5530
- * @description Workspace role. One of: owner, admin, member, viewer, collaborator.
5735
+ * @description Workspace role. More values may be added; clients must tolerate unknown values.
5531
5736
  * @example admin
5737
+ * @enum {string}
5532
5738
  */
5533
- role: string;
5739
+ role: "owner" | "admin" | "member" | "viewer" | "collaborator";
5534
5740
  /**
5535
- * @description Stable opaque identifier for the entry. For active members this is the user ID; for pending invites this is the Spanner-generated membership row id (never an email-derived value).
5741
+ * @description Opaque identifier for this member or invitation. For active members it is the user ID. For pending invitations it identifies the invitation and cannot be used to update a member credit limit.
5536
5742
  * @example Xy7Kd2Lm9Qp4Rt6Vw8Zc1Bn3Fh5
5537
5743
  */
5538
5744
  user_id: string;
@@ -5542,7 +5748,7 @@ export interface components {
5542
5748
  */
5543
5749
  workspace_id: string;
5544
5750
  };
5545
- V1WorkspaceMemberGroup: {
5751
+ WorkspaceMemberGroup: {
5546
5752
  /**
5547
5753
  * @description Group ID, as returned by GET /v1/workspaces/{workspace_id}/groups.
5548
5754
  * @example engineering_workspace_01jw3k9m2xq8r5v0c7d4e6f2gh
@@ -5554,37 +5760,38 @@ export interface components {
5554
5760
  */
5555
5761
  name: string;
5556
5762
  };
5557
- V1WorkspaceSettingsBody: {
5763
+ WorkspaceSettings: {
5558
5764
  /**
5559
5765
  * Format: date-time
5560
- * @description End of the current billing period.
5766
+ * @description Exclusive end of the current billing period. Omitted when no billing period is recorded or when the caller lacks permission to view workspace usage.
5561
5767
  * @example 2026-02-01T00:00:00Z
5562
5768
  */
5563
5769
  billing_period_end_date?: string;
5564
5770
  /**
5565
5771
  * Format: date-time
5566
- * @description Start of the current billing period.
5772
+ * @description Inclusive start of the current billing period. Omitted when no billing period is recorded or when the caller lacks permission to view workspace usage.
5567
5773
  * @example 2026-01-01T00:00:00Z
5568
5774
  */
5569
5775
  billing_period_start_date?: string;
5570
5776
  /**
5571
5777
  * Format: double
5572
- * @description Default monthly credit cap applied to each member who has no explicit per-member limit. Absent when unset (members are bounded only by the workspace balance) or when the caller lacks permission to view workspace usage.
5778
+ * @description Default monthly build-credit limit for members without an explicit per-member limit. Omitted when unset or when the caller lacks permission to view workspace usage. Active higher temporary limits can override it.
5573
5779
  * @example 500
5574
5780
  */
5575
5781
  default_monthly_member_credit_limit?: number;
5576
5782
  /**
5577
- * @description Default visibility applied to new projects. One of: public, private, draft. Absent means the workspace effective default of private.
5783
+ * @description Default editor sharing for new projects, separate from published app access. New projects follow workspace roles unless the setting restricts access to project and workspace owners and explicit sharing grants, and the plan supports that restriction. Unsupported or omitted settings fall back to workspace roles. More values may be added; clients must tolerate unknown values.
5578
5784
  * @example private
5785
+ * @enum {string}
5579
5786
  */
5580
- default_project_visibility?: string;
5787
+ default_project_visibility?: "draft" | "private" | "workspace_view" | "public";
5581
5788
  /**
5582
- * @description Whether PII scanning is enabled across project resources.
5789
+ * @description Whether scanning for personally identifiable information (PII), such as names and email addresses, is enabled for workspace projects.
5583
5790
  * @example true
5584
5791
  */
5585
5792
  enable_pii: boolean;
5586
5793
  /**
5587
- * @description Whether SSO is enforced for all members.
5794
+ * @description Whether workspace members are required to sign in through single sign-on (SSO).
5588
5795
  * @example true
5589
5796
  */
5590
5797
  enforce_sso: boolean;
@@ -5600,20 +5807,22 @@ export interface components {
5600
5807
  name: string;
5601
5808
  /**
5602
5809
  * Format: int64
5603
- * @description Workspace-specific seat limit when one has been explicitly configured. Absent when the workspace runs on its plan's default (Enterprise workspaces are typically unlimited unless a per-tenant cap is set).
5810
+ * @description Configured maximum number of workspace seats. Omitted when no positive workspace-specific seat limit is configured or when the caller lacks permission to view workspace usage.
5604
5811
  * @example 25
5605
5812
  */
5606
5813
  num_seats?: number;
5607
5814
  /**
5608
- * @description Plan tier. One of: free, pro, business, enterprise. More values may be added; clients must tolerate unknown values.
5815
+ * @description Plan tier. More values may be added; clients must tolerate unknown values.
5609
5816
  * @example enterprise
5817
+ * @enum {string}
5610
5818
  */
5611
- plan: string;
5819
+ plan: "free" | "pro" | "business" | "enterprise";
5612
5820
  /**
5613
- * @description Restriction on what publish audiences are allowed: org_only, workspace_only, or disabled. Absent means no restriction.
5821
+ * @description Policy limiting who can view published apps or preventing publishing altogether. Omitted when no audience restriction is configured. More values may be added; clients must tolerate unknown values.
5614
5822
  * @example workspace_only
5823
+ * @enum {string}
5615
5824
  */
5616
- publishing_policy?: string;
5825
+ publishing_policy?: "org_only" | "workspace_only" | "disabled";
5617
5826
  };
5618
5827
  V1WorkspaceSkillDTO: {
5619
5828
  /** @description Short description from SKILL.md frontmatter */
@@ -5631,7 +5840,7 @@ export interface components {
5631
5840
  };
5632
5841
  V1WorkspaceUsageBreakdownBody: {
5633
5842
  /** @description The calendar month that each row's total_credits_used_in_billing_period covers. */
5634
- billing_period: components["schemas"]["V1BillingPeriod"];
5843
+ billing_period: components["schemas"]["BillingPeriod"];
5635
5844
  /** @description Items in this page. */
5636
5845
  data: components["schemas"]["V1WorkspaceUsageBreakdownEntry"][] | null;
5637
5846
  /**
@@ -5639,7 +5848,7 @@ export interface components {
5639
5848
  * @description Total matching members across all pages.
5640
5849
  */
5641
5850
  member_count: number;
5642
- /** @description Pagination cursors for fetching adjacent pages. */
5851
+ /** @description Whether more results are available and the cursor to fetch the next page. */
5643
5852
  pagination: components["schemas"]["Pagination"];
5644
5853
  };
5645
5854
  V1WorkspaceUsageBreakdownEntry: {
@@ -5667,7 +5876,7 @@ export interface components {
5667
5876
  /** @description User ID, or pending-invite ID for unaccepted invitations. */
5668
5877
  user_id: string;
5669
5878
  };
5670
- V1WorkspaceUsageConnectorBreakdown: {
5879
+ ConnectorUsage: {
5671
5880
  /**
5672
5881
  * Format: double
5673
5882
  * @description Credits attributed to this connector in the bucket.
@@ -5678,7 +5887,7 @@ export interface components {
5678
5887
  /** @description Display label for the connector. */
5679
5888
  label: string;
5680
5889
  };
5681
- V1WorkspaceUsageDatabaseBreakdown: {
5890
+ DatabaseUsage: {
5682
5891
  /**
5683
5892
  * Format: double
5684
5893
  * @description Credits attributed to this database subcategory in the bucket.
@@ -5697,7 +5906,7 @@ export interface components {
5697
5906
  */
5698
5907
  label: string;
5699
5908
  };
5700
- V1WorkspaceUsageGatewayModel: {
5909
+ GatewayModelUsage: {
5701
5910
  /**
5702
5911
  * Format: double
5703
5912
  * @description Credits attributed to this model in the bucket.
@@ -5789,7 +5998,7 @@ export interface components {
5789
5998
  * @description Number of projects with usage in the window.
5790
5999
  */
5791
6000
  entity_count: number;
5792
- /** @description Pagination cursors for fetching adjacent pages. */
6001
+ /** @description Whether more results are available and the cursor to fetch the next page. */
5793
6002
  pagination: components["schemas"]["Pagination"];
5794
6003
  /** @description The resolved window these rows cover, echoed so callers can see the dates the server applied. */
5795
6004
  period: components["schemas"]["V1UsagePeriod"];
@@ -5802,7 +6011,7 @@ export interface components {
5802
6011
  V1WorkspaceUsageTimeseriesBody: {
5803
6012
  /** @description Items in this page. */
5804
6013
  data: components["schemas"]["V1WorkspaceUsageTimeseriesBucket"][] | null;
5805
- /** @description Pagination cursors for fetching adjacent pages. */
6014
+ /** @description Whether more results are available and the cursor to fetch the next page. */
5806
6015
  pagination: components["schemas"]["Pagination"];
5807
6016
  /** @description The resolved window these buckets cover, echoed so callers can see the dates and granularity the server applied. */
5808
6017
  period: components["schemas"]["V1UsagePeriod"];
@@ -5824,14 +6033,14 @@ export interface components {
5824
6033
  */
5825
6034
  connectors: number;
5826
6035
  /** @description Per-connector breakdown for the bucket. */
5827
- connectors_breakdown: components["schemas"]["V1WorkspaceUsageConnectorBreakdown"][] | null;
6036
+ connectors_breakdown: components["schemas"]["ConnectorUsage"][] | null;
5828
6037
  /**
5829
6038
  * Format: double
5830
6039
  * @description Database credits.
5831
6040
  */
5832
6041
  database: number;
5833
6042
  /** @description Database server/storage breakdown for the bucket. */
5834
- database_breakdown: components["schemas"]["V1WorkspaceUsageDatabaseBreakdown"][] | null;
6043
+ database_breakdown: components["schemas"]["DatabaseUsage"][] | null;
5835
6044
  /**
5836
6045
  * Format: double
5837
6046
  * @description Compute credits from functions and workers.
@@ -5843,7 +6052,7 @@ export interface components {
5843
6052
  */
5844
6053
  gateway: number;
5845
6054
  /** @description Per-model AI Gateway breakdown for the bucket. */
5846
- gateway_models: components["schemas"]["V1WorkspaceUsageGatewayModel"][] | null;
6055
+ gateway_models: components["schemas"]["GatewayModelUsage"][] | null;
5847
6056
  /**
5848
6057
  * Format: double
5849
6058
  * @description Network data-transfer credits.
@@ -5895,8 +6104,8 @@ export interface components {
5895
6104
  previous_visibility?: "public" | "private" | "draft" | "workspace_view";
5896
6105
  project_id: string;
5897
6106
  };
5898
- WorkspaceAnalyticsResponse: {
5899
- /** @description Workspace-wide time-series metrics aggregated across all projects. */
6107
+ WorkspaceAnalytics: {
6108
+ /** @description Website traffic metrics for the workspace, including historical traffic from projects that have since been deleted. */
5900
6109
  timeSeries: components["schemas"]["TimeSeriesGroup"];
5901
6110
  };
5902
6111
  };
@@ -5964,7 +6173,7 @@ export interface operations {
5964
6173
  [name: string]: unknown;
5965
6174
  };
5966
6175
  content: {
5967
- "application/json": components["schemas"]["ProjectTrendResponse"];
6176
+ "application/json": components["schemas"]["AnalyticsTrend"];
5968
6177
  };
5969
6178
  };
5970
6179
  /** @description Error */
@@ -5983,9 +6192,9 @@ export interface operations {
5983
6192
  query: {
5984
6193
  /** @description Workspace ID */
5985
6194
  workspace_id: string;
5986
- /** @description Maximum results per page. */
6195
+ /** @description Maximum number of items to return per page. */
5987
6196
  limit?: number;
5988
- /** @description Opaque cursor returned by a previous page; omit for the first page. */
6197
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
5989
6198
  cursor?: string;
5990
6199
  /** @description Comma-separated audit-log action filter (exact match, e.g. workspace.member.added). */
5991
6200
  actions?: string;
@@ -5995,9 +6204,9 @@ export interface operations {
5995
6204
  target_ids?: string;
5996
6205
  /** @description Token-based search on target_id and target_display_name. Minimum 3 characters. */
5997
6206
  search?: string;
5998
- /** @description RFC3339 inclusive start of the time range. Defaults to 30 days ago. When paginating with cursor, pass an explicit start_date so the default lower bound does not drift between pages. */
6207
+ /** @description RFC3339 inclusive start of the time range. Defaults to 30 days ago. Entries are retained for 13 weeks; on /v1beta/workspaces/{workspace_id}/audit-logs an older start_date is clamped to 13 weeks ago when end_date is omitted. When paginating with cursor, pass an explicit start_date so the default lower bound does not drift between pages. */
5999
6208
  start_date?: string;
6000
- /** @description RFC3339 inclusive end of the time range. Defaults to now. */
6209
+ /** @description RFC3339 inclusive end of the time range. Defaults to now. On /v1beta/workspaces/{workspace_id}/audit-logs an explicit end_date must be at most 13 weeks after start_date. */
6001
6210
  end_date?: string;
6002
6211
  };
6003
6212
  header?: never;
@@ -6031,9 +6240,9 @@ export interface operations {
6031
6240
  query: {
6032
6241
  /** @description Project ID */
6033
6242
  project_id: string;
6034
- /** @description Maximum number of items to return */
6243
+ /** @description Maximum number of items to return per page. */
6035
6244
  limit?: number;
6036
- /** @description Opaque pagination cursor returned by the previous page */
6245
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
6037
6246
  cursor?: string;
6038
6247
  };
6039
6248
  header?: never;
@@ -6048,7 +6257,7 @@ export interface operations {
6048
6257
  [name: string]: unknown;
6049
6258
  };
6050
6259
  content: {
6051
- "application/json": components["schemas"]["CursorListResponseV1ProjectCollaborator"];
6260
+ "application/json": components["schemas"]["ProjectCollaboratorPage"];
6052
6261
  };
6053
6262
  };
6054
6263
  /** @description Error */
@@ -6071,9 +6280,9 @@ export interface operations {
6071
6280
  type?: string;
6072
6281
  /** @description Optional status filter. For seamless and app-user connectors, connected matches workspace-enabled connectors. */
6073
6282
  status?: "connected";
6074
- /** @description Maximum number of items to return */
6283
+ /** @description Maximum number of items to return per page. */
6075
6284
  limit?: number;
6076
- /** @description Opaque pagination cursor returned by the previous page */
6285
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
6077
6286
  cursor?: string;
6078
6287
  };
6079
6288
  header?: never;
@@ -6109,9 +6318,9 @@ export interface operations {
6109
6318
  workspace_id: string;
6110
6319
  /** @description Filter to one or more event types. Repeat to include multiple; omit for all. */
6111
6320
  event_type?: ("granted" | "expired" | "adjustment" | "converted")[] | null;
6112
- /** @description Maximum number of items to return */
6321
+ /** @description Maximum number of items to return per page. */
6113
6322
  limit?: number;
6114
- /** @description Opaque pagination cursor returned by the previous page */
6323
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
6115
6324
  cursor?: string;
6116
6325
  };
6117
6326
  header?: never;
@@ -6126,7 +6335,7 @@ export interface operations {
6126
6335
  [name: string]: unknown;
6127
6336
  };
6128
6337
  content: {
6129
- "application/json": components["schemas"]["V1WorkspaceCreditHistoryBody"];
6338
+ "application/json": components["schemas"]["CreditHistoryPage"];
6130
6339
  };
6131
6340
  };
6132
6341
  /** @description Error */
@@ -6158,7 +6367,7 @@ export interface operations {
6158
6367
  [name: string]: unknown;
6159
6368
  };
6160
6369
  content: {
6161
- "application/json": components["schemas"]["V1WorkspaceCreditsBody"];
6370
+ "application/json": components["schemas"]["CreditBalance"];
6162
6371
  };
6163
6372
  };
6164
6373
  /** @description Error */
@@ -6384,9 +6593,9 @@ export interface operations {
6384
6593
  project_id: string;
6385
6594
  /** @description Git ref (commit SHA, branch, or tag). Defaults to the latest ref. */
6386
6595
  ref?: string;
6387
- /** @description Maximum number of items to return */
6596
+ /** @description Maximum number of items to return per page. */
6388
6597
  limit?: number;
6389
- /** @description Opaque pagination cursor returned by the previous page */
6598
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
6390
6599
  cursor?: string;
6391
6600
  };
6392
6601
  header?: never;
@@ -6518,7 +6727,7 @@ export interface operations {
6518
6727
  };
6519
6728
  };
6520
6729
  };
6521
- "get-v1-me": {
6730
+ getMe: {
6522
6731
  parameters: {
6523
6732
  query?: never;
6524
6733
  header?: never;
@@ -6533,7 +6742,7 @@ export interface operations {
6533
6742
  [name: string]: unknown;
6534
6743
  };
6535
6744
  content: {
6536
- "application/json": components["schemas"]["GetMeOutputBody"];
6745
+ "application/json": components["schemas"]["CurrentUser"];
6537
6746
  };
6538
6747
  };
6539
6748
  /** @description Error */
@@ -6552,23 +6761,23 @@ export interface operations {
6552
6761
  query: {
6553
6762
  /** @description Workspace ID */
6554
6763
  workspace_id: string;
6555
- /** @description Maximum results per page. */
6764
+ /** @description Maximum number of items to return per page. */
6556
6765
  limit?: number;
6557
- /** @description Opaque cursor from a prior response. Omit on the first page. */
6766
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
6558
6767
  cursor?: string;
6559
- /** @description Substring filter applied to display name, username, and email tokens (matching the workspace member search backend). */
6768
+ /** @description Search by display name, username, or email. Each search term of at least 3 characters must match at least one of these fields; shorter terms are ignored. */
6560
6769
  query?: string;
6561
- /** @description Comma-separated role filter. Valid values: owner, admin, member, viewer, collaborator. Empty = all roles. Unknown values return 400. */
6770
+ /** @description Comma-separated workspace role filter. Omit to include every role. Unknown roles return 400. */
6562
6771
  roles?: string;
6563
- /** @description Filter by membership status. Default 'active' excludes pending invites. */
6772
+ /** @description Filter by membership status. Pending invites are excluded by default. */
6564
6773
  status?: "all" | "active" | "pending";
6565
- /** @description Sort field. Defaults to relevance when query is set, otherwise role + recency. */
6774
+ /** @description Sort field. With a search query, results default to best matches first. Otherwise, members are ordered by role precedence, then most recently joined or invited. */
6566
6775
  sort_by?: "name" | "joined_at" | "role" | "relevance";
6567
- /** @description Sort direction. Only applied when sort_by is set; the default-sort case has a fixed direction baked into the underlying query. */
6776
+ /** @description Direction for an explicit sort field. Defaults to descending. Ignored for the default order and relevance sorting. */
6568
6777
  sort_order?: "asc" | "desc";
6569
- /** @description Filter by SCIM provisioning status. Empty = all members, 'managed' = only SCIM-provisioned members, 'unmanaged' = only members not managed by SCIM. */
6778
+ /** @description Filter by identity-provider provisioning through SCIM (System for Cross-domain Identity Management). Omit to include members regardless of provisioning method. */
6570
6779
  scim_managed?: "managed" | "unmanaged";
6571
- /** @description Comma-separated optional expansions. Valid values: groups. Unknown values return 400, but a misspelled parameter *name* is ignored rather than rejected (the response carries X-Lovable-Unknown-Query-Params), so check the header if an expansion you asked for is missing. Expansions cost extra reads, so each response field is absent unless asked for. */
6780
+ /** @description Optional additional member details. Set include=groups to include group memberships; otherwise groups is omitted. Unknown values return 400. Unrecognized query parameter names on any endpoint are ignored and listed in the X-Lovable-Unknown-Query-Params response header. */
6572
6781
  include?: string;
6573
6782
  };
6574
6783
  header?: never;
@@ -6583,7 +6792,7 @@ export interface operations {
6583
6792
  [name: string]: unknown;
6584
6793
  };
6585
6794
  content: {
6586
- "application/json": components["schemas"]["CursorListResponseV1WorkspaceMember"];
6795
+ "application/json": components["schemas"]["WorkspaceMemberPage"];
6587
6796
  };
6588
6797
  };
6589
6798
  /** @description Error */
@@ -6616,7 +6825,7 @@ export interface operations {
6616
6825
  [name: string]: unknown;
6617
6826
  };
6618
6827
  content: {
6619
- "application/json": components["schemas"]["V1BulkSetMemberCreditLimitOutputBody"];
6828
+ "application/json": components["schemas"]["SetMemberCreditLimitsResponse"];
6620
6829
  };
6621
6830
  };
6622
6831
  /** @description Error */
@@ -6652,7 +6861,7 @@ export interface operations {
6652
6861
  [name: string]: unknown;
6653
6862
  };
6654
6863
  content: {
6655
- "application/json": components["schemas"]["V1WorkspaceMember"];
6864
+ "application/json": components["schemas"]["WorkspaceMember"];
6656
6865
  };
6657
6866
  };
6658
6867
  /** @description Error */
@@ -6832,9 +7041,9 @@ export interface operations {
6832
7041
  query: {
6833
7042
  /** @description Project ID */
6834
7043
  project_id: string;
6835
- /** @description Page size */
7044
+ /** @description Maximum number of items to return per page. */
6836
7045
  limit?: number;
6837
- /** @description Opaque cursor returned by a previous page; omit for the first page */
7046
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
6838
7047
  cursor?: string;
6839
7048
  };
6840
7049
  header?: never;
@@ -6896,32 +7105,32 @@ export interface operations {
6896
7105
  };
6897
7106
  };
6898
7107
  };
6899
- "get-v1-projects": {
7108
+ listProjects: {
6900
7109
  parameters: {
6901
7110
  query: {
6902
7111
  /** @description Workspace ID */
6903
7112
  workspace_id: string;
6904
- /** @description Filter by project creator user ID */
7113
+ /** @description Filter by project owner user ID */
6905
7114
  user_id?: string;
6906
- /** @description Filter by visibility */
7115
+ /** @description Filter projects by editor-sharing scope. Omit to include every scope you can access. */
6907
7116
  visibility?: "personal" | "workspace" | "public" | "all";
6908
- /** @description Filter by publish status */
7117
+ /** @description Filter by publication state and audience. Audience-specific filters require an explicit app-access setting; projects without one remain in the broader publication-state results. Omit to include every state. */
6909
7118
  publish_status?: "any" | "published" | "internal" | "external" | "not_published";
6910
7119
  /** @description Filter by folder ID */
6911
7120
  folder_id?: string;
6912
7121
  /** @description Filter by multiple folder IDs (comma-separated, takes precedence over folder_id) */
6913
7122
  folder_ids?: string;
6914
- /** @description Filter by project type. library returns design-system libraries; template returns non-library templates. */
7123
+ /** @description Filter by project type. Design-system libraries and reusable templates exclude personal drafts unless the sharing filter selects them. Omit to include every type. */
6915
7124
  type?: "" | "project" | "library" | "template" | "all";
6916
- /** @description Search query */
7125
+ /** @description Search project names, generated descriptions, and owner names or email addresses. Terms shorter than 3 characters are ignored. Use search_fields to restrict searching to project names. */
6917
7126
  query?: string;
6918
- /** @description Maximum number of projects to return */
7127
+ /** @description Maximum number of items to return per page. */
6919
7128
  limit?: number;
6920
- /** @description Opaque pagination cursor returned by the previous page */
7129
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
6921
7130
  cursor?: string;
6922
7131
  /** @description Only return projects viewed by the current user */
6923
7132
  viewed_by_me?: boolean;
6924
- /** @description Which fields to search: empty for all (default), 'name' for project name only */
7133
+ /** @description Limit searching to project names. Omit to also search generated descriptions and owner names or email addresses. */
6925
7134
  search_fields?: "" | "name";
6926
7135
  };
6927
7136
  header?: never;
@@ -6936,7 +7145,7 @@ export interface operations {
6936
7145
  [name: string]: unknown;
6937
7146
  };
6938
7147
  content: {
6939
- "application/json": components["schemas"]["CursorListResponsePublicV1ProjectListItem"];
7148
+ "application/json": components["schemas"]["ProjectSummaryPage"];
6940
7149
  };
6941
7150
  };
6942
7151
  /** @description Error */
@@ -6963,7 +7172,7 @@ export interface operations {
6963
7172
  };
6964
7173
  };
6965
7174
  responses: {
6966
- /** @description OK */
7175
+ /** @description Not returned by current servers; retained from an earlier published contract. Treat like 201. */
6967
7176
  200: {
6968
7177
  headers: {
6969
7178
  [name: string]: unknown;
@@ -6972,7 +7181,7 @@ export interface operations {
6972
7181
  "application/json": components["schemas"]["PublicV1CreateProjectResponse"];
6973
7182
  };
6974
7183
  };
6975
- /** @description Created */
7184
+ /** @description Project created. The body is the new project; message_id is present when initial_message was given. Location points at the project. */
6976
7185
  201: {
6977
7186
  headers: {
6978
7187
  Location?: string;
@@ -6982,7 +7191,7 @@ export interface operations {
6982
7191
  "application/json": components["schemas"]["PublicV1CreateProjectResponse"];
6983
7192
  };
6984
7193
  };
6985
- /** @description Accepted */
7194
+ /** @description Remix accepted. The body carries job_id only; poll GET /v1/remix-jobs/{job_id} (the Location header) for progress. */
6986
7195
  202: {
6987
7196
  headers: {
6988
7197
  Location?: string;
@@ -7003,7 +7212,7 @@ export interface operations {
7003
7212
  };
7004
7213
  };
7005
7214
  };
7006
- "get-v1-projects-project_id": {
7215
+ getProject: {
7007
7216
  parameters: {
7008
7217
  query?: never;
7009
7218
  header?: never;
@@ -7021,7 +7230,7 @@ export interface operations {
7021
7230
  [name: string]: unknown;
7022
7231
  };
7023
7232
  content: {
7024
- "application/json": components["schemas"]["V1ProjectResponse"];
7233
+ "application/json": components["schemas"]["Project"];
7025
7234
  };
7026
7235
  };
7027
7236
  /** @description Error */
@@ -7035,7 +7244,7 @@ export interface operations {
7035
7244
  };
7036
7245
  };
7037
7246
  };
7038
- "delete-v1-projects-project_id": {
7247
+ deleteProject: {
7039
7248
  parameters: {
7040
7249
  query?: never;
7041
7250
  header?: never;
@@ -7065,7 +7274,7 @@ export interface operations {
7065
7274
  };
7066
7275
  };
7067
7276
  };
7068
- "patch-v1-projects-project_id": {
7277
+ updateProject: {
7069
7278
  parameters: {
7070
7279
  query?: never;
7071
7280
  header?: never;
@@ -7077,7 +7286,7 @@ export interface operations {
7077
7286
  };
7078
7287
  requestBody: {
7079
7288
  content: {
7080
- "application/json": components["schemas"]["PublicV1PatchProjectBody"];
7289
+ "application/json": components["schemas"]["UpdateProjectRequest"];
7081
7290
  };
7082
7291
  };
7083
7292
  responses: {
@@ -7087,7 +7296,7 @@ export interface operations {
7087
7296
  [name: string]: unknown;
7088
7297
  };
7089
7298
  content: {
7090
- "application/json": components["schemas"]["V1ProjectResponse"];
7299
+ "application/json": components["schemas"]["Project"];
7091
7300
  };
7092
7301
  };
7093
7302
  /** @description Error */
@@ -7101,16 +7310,16 @@ export interface operations {
7101
7310
  };
7102
7311
  };
7103
7312
  };
7104
- "get-v1-projects-project_id-analytics": {
7313
+ getProjectAnalytics: {
7105
7314
  parameters: {
7106
7315
  query?: {
7107
- /** @description historical returns the time series and breakdowns for the requested date range; trend returns the real-time visitor trend for the last 30 minutes. */
7316
+ /** @description Select date-range analytics or the real-time visitor series for the last 30 minutes. */
7108
7317
  series?: "historical" | "trend";
7109
- /** @description Start date in RFC 3339 format (e.g. 2026-04-01T00:00:00Z). Required when series=historical. */
7318
+ /** @description Start of the date range in RFC 3339 format using UTC timestamps ending in Z (e.g. 2026-04-01T00:00:00Z). Required when series=historical (the default); ignored when series=trend. */
7110
7319
  start_date?: string;
7111
- /** @description End date in RFC 3339 format (e.g. 2026-04-08T00:00:00Z). Required when series=historical. */
7320
+ /** @description End of the date range in RFC 3339 format using UTC timestamps ending in Z (e.g. 2026-04-08T00:00:00Z). Required when series=historical (the default); ignored when series=trend. */
7112
7321
  end_date?: string;
7113
- /** @description Time bucket size for series=historical: hourly or daily (default: daily). */
7322
+ /** @description Time-bucket size for date-range analytics. Daily buckets include complete calendar dates from start_date through end_date; hourly buckets use the supplied times inclusively and support at most 31 days. Defaults to daily buckets. Ignored for real-time visitor data. */
7114
7323
  granularity?: string;
7115
7324
  };
7116
7325
  header?: never;
@@ -7128,7 +7337,7 @@ export interface operations {
7128
7337
  [name: string]: unknown;
7129
7338
  };
7130
7339
  content: {
7131
- "application/json": components["schemas"]["PublicV1ProjectAnalyticsBody"];
7340
+ "application/json": components["schemas"]["ProjectAnalytics"];
7132
7341
  };
7133
7342
  };
7134
7343
  /** @description Error */
@@ -7160,7 +7369,7 @@ export interface operations {
7160
7369
  [name: string]: unknown;
7161
7370
  };
7162
7371
  content: {
7163
- "application/json": components["schemas"]["ProjectTrendResponse"];
7372
+ "application/json": components["schemas"]["AnalyticsTrend"];
7164
7373
  };
7165
7374
  };
7166
7375
  /** @description Error */
@@ -7174,12 +7383,12 @@ export interface operations {
7174
7383
  };
7175
7384
  };
7176
7385
  };
7177
- "get-v1-projects-project_id-collaborators": {
7386
+ listProjectCollaborators: {
7178
7387
  parameters: {
7179
7388
  query?: {
7180
- /** @description Maximum number of items to return */
7389
+ /** @description Maximum number of items to return per page. */
7181
7390
  limit?: number;
7182
- /** @description Opaque pagination cursor returned by the previous page */
7391
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
7183
7392
  cursor?: string;
7184
7393
  };
7185
7394
  header?: never;
@@ -7197,7 +7406,7 @@ export interface operations {
7197
7406
  [name: string]: unknown;
7198
7407
  };
7199
7408
  content: {
7200
- "application/json": components["schemas"]["CursorListResponseV1ProjectCollaborator"];
7409
+ "application/json": components["schemas"]["ProjectCollaboratorPage"];
7201
7410
  };
7202
7411
  };
7203
7412
  /** @description Error */
@@ -7348,7 +7557,7 @@ export interface operations {
7348
7557
  };
7349
7558
  };
7350
7559
  };
7351
- "post-v1-projects-project_id-embed-url": {
7560
+ createEmbedUrl: {
7352
7561
  parameters: {
7353
7562
  query?: never;
7354
7563
  header?: never;
@@ -7360,17 +7569,17 @@ export interface operations {
7360
7569
  };
7361
7570
  requestBody: {
7362
7571
  content: {
7363
- "application/json": components["schemas"]["V1CreateEmbedURLInputBody"];
7572
+ "application/json": components["schemas"]["CreateEmbedURLRequest"];
7364
7573
  };
7365
7574
  };
7366
7575
  responses: {
7367
- /** @description OK */
7576
+ /** @description Embed URL created. The token expires after one hour. */
7368
7577
  200: {
7369
7578
  headers: {
7370
7579
  [name: string]: unknown;
7371
7580
  };
7372
7581
  content: {
7373
- "application/json": components["schemas"]["V1CreateEmbedURLOutputBody"];
7582
+ "application/json": components["schemas"]["CreateEmbedURLResponse"];
7374
7583
  };
7375
7584
  };
7376
7585
  /** @description Error */
@@ -7716,12 +7925,12 @@ export interface operations {
7716
7925
  };
7717
7926
  };
7718
7927
  };
7719
- "get-v1-projects-project_id-pii-labels": {
7928
+ listPiiLabels: {
7720
7929
  parameters: {
7721
7930
  query?: {
7722
- /** @description Page size */
7931
+ /** @description Maximum number of items to return per page. */
7723
7932
  limit?: number;
7724
- /** @description Opaque cursor returned by a previous page; omit for the first page */
7933
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
7725
7934
  cursor?: string;
7726
7935
  };
7727
7936
  header?: never;
@@ -7739,7 +7948,7 @@ export interface operations {
7739
7948
  [name: string]: unknown;
7740
7949
  };
7741
7950
  content: {
7742
- "application/json": components["schemas"]["CursorListResponseProjectPIIFindingDTO"];
7951
+ "application/json": components["schemas"]["PiiLabelPage"];
7743
7952
  };
7744
7953
  };
7745
7954
  /** @description Error */
@@ -7753,7 +7962,7 @@ export interface operations {
7753
7962
  };
7754
7963
  };
7755
7964
  };
7756
- "post-v1-projects-project_id-publish": {
7965
+ publishProject: {
7757
7966
  parameters: {
7758
7967
  query?: never;
7759
7968
  header?: never;
@@ -7765,26 +7974,18 @@ export interface operations {
7765
7974
  };
7766
7975
  requestBody: {
7767
7976
  content: {
7768
- "application/json": components["schemas"]["PublicV1PublishProjectInputBody"];
7977
+ "application/json": components["schemas"]["PublishProjectRequest"];
7769
7978
  };
7770
7979
  };
7771
7980
  responses: {
7772
- /** @description OK */
7773
- 200: {
7774
- headers: {
7775
- [name: string]: unknown;
7776
- };
7777
- content: {
7778
- "application/json": components["schemas"]["PublicV1PublishProjectResponse"];
7779
- };
7780
- };
7781
- /** @description Accepted */
7981
+ /** @description Deployment started. Poll GET /v1/projects/{project_id}/publish/{deployment_id} (the Location header) with the returned deployment_id until deployment finishes. */
7782
7982
  202: {
7783
7983
  headers: {
7984
+ Location?: string;
7784
7985
  [name: string]: unknown;
7785
7986
  };
7786
7987
  content: {
7787
- "application/json": components["schemas"]["PublicV1PublishProjectResponse"];
7988
+ "application/json": components["schemas"]["PublishProjectResponse"];
7788
7989
  };
7789
7990
  };
7790
7991
  /** @description Error */
@@ -7798,7 +7999,7 @@ export interface operations {
7798
7999
  };
7799
8000
  };
7800
8001
  };
7801
- "patch-v1-projects-project_id-publish": {
8002
+ updatePublishSettings: {
7802
8003
  parameters: {
7803
8004
  query?: never;
7804
8005
  header?: never;
@@ -7810,7 +8011,7 @@ export interface operations {
7810
8011
  };
7811
8012
  requestBody: {
7812
8013
  content: {
7813
- "application/json": components["schemas"]["PublicV1UpdatePublishSettingsInputBody"];
8014
+ "application/json": components["schemas"]["UpdatePublishSettingsRequest"];
7814
8015
  };
7815
8016
  };
7816
8017
  responses: {
@@ -7820,7 +8021,7 @@ export interface operations {
7820
8021
  [name: string]: unknown;
7821
8022
  };
7822
8023
  content: {
7823
- "application/json": components["schemas"]["PublicV1UpdatePublishSettingsResponse"];
8024
+ "application/json": components["schemas"]["PublishSettings"];
7824
8025
  };
7825
8026
  };
7826
8027
  /** @description Error */
@@ -7834,7 +8035,7 @@ export interface operations {
7834
8035
  };
7835
8036
  };
7836
8037
  };
7837
- "get-v1-projects-project_id-publish-deployment_id": {
8038
+ getDeployment: {
7838
8039
  parameters: {
7839
8040
  query?: never;
7840
8041
  header?: never;
@@ -7854,7 +8055,7 @@ export interface operations {
7854
8055
  [name: string]: unknown;
7855
8056
  };
7856
8057
  content: {
7857
- "application/json": components["schemas"]["PublicV1PublishStatusResponse"];
8058
+ "application/json": components["schemas"]["Deployment"];
7858
8059
  };
7859
8060
  };
7860
8061
  /** @description Error */
@@ -7939,12 +8140,12 @@ export interface operations {
7939
8140
  };
7940
8141
  };
7941
8142
  };
7942
- "get-v1-projects-project_id-security-scans": {
8143
+ listSecurityScans: {
7943
8144
  parameters: {
7944
8145
  query?: {
7945
- /** @description Page size (max 100) */
8146
+ /** @description Maximum number of items to return per page. */
7946
8147
  limit?: number;
7947
- /** @description Opaque cursor from a prior response */
8148
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
7948
8149
  cursor?: string;
7949
8150
  };
7950
8151
  header?: never;
@@ -7962,7 +8163,7 @@ export interface operations {
7962
8163
  [name: string]: unknown;
7963
8164
  };
7964
8165
  content: {
7965
- "application/json": components["schemas"]["CursorListResponseV1SecurityScanSummary"];
8166
+ "application/json": components["schemas"]["SecurityScanPage"];
7966
8167
  };
7967
8168
  };
7968
8169
  /** @description Error */
@@ -7976,7 +8177,7 @@ export interface operations {
7976
8177
  };
7977
8178
  };
7978
8179
  };
7979
- "post-v1-projects-project_id-security-scans": {
8180
+ triggerSecurityScan: {
7980
8181
  parameters: {
7981
8182
  query?: never;
7982
8183
  header?: never;
@@ -7988,13 +8189,14 @@ export interface operations {
7988
8189
  };
7989
8190
  requestBody?: never;
7990
8191
  responses: {
7991
- /** @description OK */
7992
- 200: {
8192
+ /** @description Scan request accepted. scan_id identifies the new scan, or the reused in-progress or completed scan (see status). Poll GET /v1/projects/{project_id}/security-scans/{scan_id} (the Location header) for results. */
8193
+ 202: {
7993
8194
  headers: {
8195
+ Location?: string;
7994
8196
  [name: string]: unknown;
7995
8197
  };
7996
8198
  content: {
7997
- "application/json": components["schemas"]["V1TriggerSecurityScanResponseBody"];
8199
+ "application/json": components["schemas"]["TriggerSecurityScanResponse"];
7998
8200
  };
7999
8201
  };
8000
8202
  /** @description Error */
@@ -8008,14 +8210,14 @@ export interface operations {
8008
8210
  };
8009
8211
  };
8010
8212
  };
8011
- "get-v1-projects-project_id-security-scans-scan_id": {
8213
+ getSecurityScan: {
8012
8214
  parameters: {
8013
8215
  query?: never;
8014
8216
  header?: never;
8015
8217
  path: {
8016
8218
  /** @description Project ID */
8017
8219
  project_id: string;
8018
- /** @description Scan invocation ID from the list endpoint */
8220
+ /** @description Security scan ID returned by the list or trigger endpoint. */
8019
8221
  scan_id: string;
8020
8222
  };
8021
8223
  cookie?: never;
@@ -8028,7 +8230,7 @@ export interface operations {
8028
8230
  [name: string]: unknown;
8029
8231
  };
8030
8232
  content: {
8031
- "application/json": components["schemas"]["V1GetSecurityScanOutputBody"];
8233
+ "application/json": components["schemas"]["SecurityScanDetail"];
8032
8234
  };
8033
8235
  };
8034
8236
  /** @description Error */
@@ -8189,7 +8391,7 @@ export interface operations {
8189
8391
  };
8190
8392
  };
8191
8393
  };
8192
- "get-v1-remix-jobs-job_id": {
8394
+ getRemixJob: {
8193
8395
  parameters: {
8194
8396
  query?: never;
8195
8397
  header?: never;
@@ -8207,7 +8409,7 @@ export interface operations {
8207
8409
  [name: string]: unknown;
8208
8410
  };
8209
8411
  content: {
8210
- "application/json": components["schemas"]["PublicV1RemixJobOutputBody"];
8412
+ "application/json": components["schemas"]["RemixJob"];
8211
8413
  };
8212
8414
  };
8213
8415
  /** @description Error */
@@ -8226,9 +8428,9 @@ export interface operations {
8226
8428
  query: {
8227
8429
  /** @description Project ID */
8228
8430
  project_id: string;
8229
- /** @description Page size (max 100) */
8431
+ /** @description Maximum number of items to return per page. */
8230
8432
  limit?: number;
8231
- /** @description Opaque cursor from a prior response */
8433
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
8232
8434
  cursor?: string;
8233
8435
  };
8234
8436
  header?: never;
@@ -8243,7 +8445,7 @@ export interface operations {
8243
8445
  [name: string]: unknown;
8244
8446
  };
8245
8447
  content: {
8246
- "application/json": components["schemas"]["CursorListResponseV1SecurityScanSummary"];
8448
+ "application/json": components["schemas"]["SecurityScanPage"];
8247
8449
  };
8248
8450
  };
8249
8451
  /** @description Error */
@@ -8273,10 +8475,11 @@ export interface operations {
8273
8475
  /** @description OK */
8274
8476
  200: {
8275
8477
  headers: {
8478
+ Location?: string;
8276
8479
  [name: string]: unknown;
8277
8480
  };
8278
8481
  content: {
8279
- "application/json": components["schemas"]["V1TriggerSecurityScanResponseBody"];
8482
+ "application/json": components["schemas"]["TriggerSecurityScanResponse"];
8280
8483
  };
8281
8484
  };
8282
8485
  /** @description Error */
@@ -8298,7 +8501,7 @@ export interface operations {
8298
8501
  };
8299
8502
  header?: never;
8300
8503
  path: {
8301
- /** @description Scan invocation ID from the list endpoint */
8504
+ /** @description Security scan ID returned by the list or trigger endpoint. */
8302
8505
  scan_id: string;
8303
8506
  };
8304
8507
  cookie?: never;
@@ -8311,7 +8514,7 @@ export interface operations {
8311
8514
  [name: string]: unknown;
8312
8515
  };
8313
8516
  content: {
8314
- "application/json": components["schemas"]["V1GetSecurityScanOutputBody"];
8517
+ "application/json": components["schemas"]["SecurityScanDetail"];
8315
8518
  };
8316
8519
  };
8317
8520
  /** @description Error */
@@ -8343,7 +8546,7 @@ export interface operations {
8343
8546
  [name: string]: unknown;
8344
8547
  };
8345
8548
  content: {
8346
- "application/json": components["schemas"]["V1WorkspaceSettingsBody"];
8549
+ "application/json": components["schemas"]["WorkspaceSettings"];
8347
8550
  };
8348
8551
  };
8349
8552
  /** @description Error */
@@ -8376,7 +8579,7 @@ export interface operations {
8376
8579
  [name: string]: unknown;
8377
8580
  };
8378
8581
  content: {
8379
- "application/json": components["schemas"]["V1WorkspaceSettingsBody"];
8582
+ "application/json": components["schemas"]["WorkspaceSettings"];
8380
8583
  };
8381
8584
  };
8382
8585
  /** @description Error */
@@ -8395,9 +8598,9 @@ export interface operations {
8395
8598
  query: {
8396
8599
  /** @description Project ID */
8397
8600
  project_id: string;
8398
- /** @description Maximum number of items to return */
8601
+ /** @description Maximum number of items to return per page. */
8399
8602
  limit?: number;
8400
- /** @description Opaque pagination cursor returned by the previous page */
8603
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
8401
8604
  cursor?: string;
8402
8605
  };
8403
8606
  header?: never;
@@ -8473,9 +8676,9 @@ export interface operations {
8473
8676
  sort_order?: "asc" | "desc";
8474
8677
  /** @description Membership status filter. Default excludes pending invites since they have no usage yet. */
8475
8678
  status?: "active" | "pending" | "all";
8476
- /** @description Maximum number of items to return */
8679
+ /** @description Maximum number of items to return per page. */
8477
8680
  limit?: number;
8478
- /** @description Opaque pagination cursor returned by the previous page */
8681
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
8479
8682
  cursor?: string;
8480
8683
  };
8481
8684
  header?: never;
@@ -8547,9 +8750,9 @@ export interface operations {
8547
8750
  end_date?: string;
8548
8751
  /** @description Filter credits to All, Build, or Run. */
8549
8752
  category?: "all" | "build" | "run";
8550
- /** @description Maximum number of items to return */
8753
+ /** @description Maximum number of items to return per page. */
8551
8754
  limit?: number;
8552
- /** @description Opaque pagination cursor returned by the previous page */
8755
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
8553
8756
  cursor?: string;
8554
8757
  };
8555
8758
  header?: never;
@@ -8595,9 +8798,9 @@ export interface operations {
8595
8798
  project_id?: string;
8596
8799
  /** @description Optional: restrict the series to a single member's usage. */
8597
8800
  user_id?: string;
8598
- /** @description Maximum number of items to return */
8801
+ /** @description Maximum number of items to return per page. */
8599
8802
  limit?: number;
8600
- /** @description Opaque pagination cursor returned by the previous page */
8803
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
8601
8804
  cursor?: string;
8602
8805
  };
8603
8806
  header?: never;
@@ -8626,12 +8829,12 @@ export interface operations {
8626
8829
  };
8627
8830
  };
8628
8831
  };
8629
- "get-v1-workspaces": {
8832
+ listWorkspaces: {
8630
8833
  parameters: {
8631
8834
  query?: {
8632
- /** @description Maximum number of items to return */
8835
+ /** @description Maximum number of items to return per page. */
8633
8836
  limit?: number;
8634
- /** @description Opaque pagination cursor returned by the previous page */
8837
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
8635
8838
  cursor?: string;
8636
8839
  };
8637
8840
  header?: never;
@@ -8646,7 +8849,7 @@ export interface operations {
8646
8849
  [name: string]: unknown;
8647
8850
  };
8648
8851
  content: {
8649
- "application/json": components["schemas"]["V1ListWorkspacesBody"];
8852
+ "application/json": components["schemas"]["WorkspacePage"];
8650
8853
  };
8651
8854
  };
8652
8855
  /** @description Error */
@@ -8660,7 +8863,7 @@ export interface operations {
8660
8863
  };
8661
8864
  };
8662
8865
  };
8663
- "get-v1-workspaces-workspace_id": {
8866
+ getWorkspace: {
8664
8867
  parameters: {
8665
8868
  query?: never;
8666
8869
  header?: never;
@@ -8678,7 +8881,7 @@ export interface operations {
8678
8881
  [name: string]: unknown;
8679
8882
  };
8680
8883
  content: {
8681
- "application/json": components["schemas"]["PublicV1GetWorkspaceBody"];
8884
+ "application/json": components["schemas"]["GetWorkspaceResponse"];
8682
8885
  };
8683
8886
  };
8684
8887
  /** @description Error */
@@ -8692,14 +8895,20 @@ export interface operations {
8692
8895
  };
8693
8896
  };
8694
8897
  };
8695
- "get-v1-workspaces-workspace_id-analytics": {
8898
+ getWorkspaceAnalytics: {
8696
8899
  parameters: {
8697
- query?: {
8698
- /** @description Start date in RFC 3339 format (e.g. 2026-07-01T00:00:00Z). Required. */
8699
- start_date?: string;
8700
- /** @description End date in RFC 3339 format (e.g. 2026-07-08T00:00:00Z). Required. */
8701
- end_date?: string;
8702
- /** @description Time bucket size: hourly or daily (default: daily) */
8900
+ query: {
8901
+ /**
8902
+ * @description Required start of the date range in RFC 3339 format. Use a UTC timestamp ending in Z, such as 2026-07-01T00:00:00Z.
8903
+ * @example 2026-07-01T00:00:00Z
8904
+ */
8905
+ start_date: string;
8906
+ /**
8907
+ * @description Required end of the date range in RFC 3339 format. Use a UTC timestamp ending in Z, such as 2026-07-08T00:00:00Z.
8908
+ * @example 2026-07-08T00:00:00Z
8909
+ */
8910
+ end_date: string;
8911
+ /** @description Time-bucket size. Whole-date buckets include start_date and end_date; sub-day buckets use the supplied times inclusively and support at most 31 days. */
8703
8912
  granularity?: "hourly" | "daily";
8704
8913
  };
8705
8914
  header?: never;
@@ -8717,7 +8926,7 @@ export interface operations {
8717
8926
  [name: string]: unknown;
8718
8927
  };
8719
8928
  content: {
8720
- "application/json": components["schemas"]["WorkspaceAnalyticsResponse"];
8929
+ "application/json": components["schemas"]["WorkspaceAnalytics"];
8721
8930
  };
8722
8931
  };
8723
8932
  /** @description Error */
@@ -8842,7 +9051,7 @@ export interface operations {
8842
9051
  };
8843
9052
  };
8844
9053
  };
8845
- "get-v1-workspaces-workspace_id-billing-credit-balance": {
9054
+ getCreditBalance: {
8846
9055
  parameters: {
8847
9056
  query?: never;
8848
9057
  header?: never;
@@ -8860,7 +9069,7 @@ export interface operations {
8860
9069
  [name: string]: unknown;
8861
9070
  };
8862
9071
  content: {
8863
- "application/json": components["schemas"]["V1WorkspaceCreditsBody"];
9072
+ "application/json": components["schemas"]["CreditBalance"];
8864
9073
  };
8865
9074
  };
8866
9075
  /** @description Error */
@@ -8874,14 +9083,14 @@ export interface operations {
8874
9083
  };
8875
9084
  };
8876
9085
  };
8877
- "get-v1-workspaces-workspace_id-billing-credit-history": {
9086
+ listCreditHistory: {
8878
9087
  parameters: {
8879
9088
  query?: {
8880
9089
  /** @description Filter to one or more event types. Repeat to include multiple; omit for all. */
8881
9090
  event_type?: ("granted" | "expired" | "adjustment" | "converted")[] | null;
8882
- /** @description Maximum number of items to return */
9091
+ /** @description Maximum number of items to return per page. */
8883
9092
  limit?: number;
8884
- /** @description Opaque pagination cursor returned by the previous page */
9093
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
8885
9094
  cursor?: string;
8886
9095
  };
8887
9096
  header?: never;
@@ -8899,7 +9108,7 @@ export interface operations {
8899
9108
  [name: string]: unknown;
8900
9109
  };
8901
9110
  content: {
8902
- "application/json": components["schemas"]["V1WorkspaceCreditHistoryBody"];
9111
+ "application/json": components["schemas"]["CreditHistoryPage"];
8903
9112
  };
8904
9113
  };
8905
9114
  /** @description Error */
@@ -8913,12 +9122,12 @@ export interface operations {
8913
9122
  };
8914
9123
  };
8915
9124
  };
8916
- "get-v1-workspaces-workspace_id-billing-credit-limits": {
9125
+ listCreditLimits: {
8917
9126
  parameters: {
8918
9127
  query?: {
8919
- /** @description Maximum results per page. */
9128
+ /** @description Maximum number of items to return per page. */
8920
9129
  limit?: number;
8921
- /** @description Opaque cursor from a prior response. Omit on the first page. */
9130
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
8922
9131
  cursor?: string;
8923
9132
  };
8924
9133
  header?: never;
@@ -8936,7 +9145,7 @@ export interface operations {
8936
9145
  [name: string]: unknown;
8937
9146
  };
8938
9147
  content: {
8939
- "application/json": components["schemas"]["V1BillingCreditLimitsBody"];
9148
+ "application/json": components["schemas"]["CreditLimitPage"];
8940
9149
  };
8941
9150
  };
8942
9151
  /** @description Error */
@@ -8950,7 +9159,7 @@ export interface operations {
8950
9159
  };
8951
9160
  };
8952
9161
  };
8953
- "post-v1-workspaces-workspace_id-billing-credit-limits": {
9162
+ setCreditLimits: {
8954
9163
  parameters: {
8955
9164
  query?: never;
8956
9165
  header?: never;
@@ -8962,7 +9171,7 @@ export interface operations {
8962
9171
  };
8963
9172
  requestBody: {
8964
9173
  content: {
8965
- "application/json": components["schemas"]["V1BillingBulkSetMemberCreditLimitInputBody"];
9174
+ "application/json": components["schemas"]["SetMemberCreditLimitsRequest"];
8966
9175
  };
8967
9176
  };
8968
9177
  responses: {
@@ -8972,7 +9181,7 @@ export interface operations {
8972
9181
  [name: string]: unknown;
8973
9182
  };
8974
9183
  content: {
8975
- "application/json": components["schemas"]["V1BulkSetMemberCreditLimitOutputBody"];
9184
+ "application/json": components["schemas"]["SetMemberCreditLimitsResponse"];
8976
9185
  };
8977
9186
  };
8978
9187
  /** @description Every member failed; same per-member response body as 200 */
@@ -8981,7 +9190,7 @@ export interface operations {
8981
9190
  [name: string]: unknown;
8982
9191
  };
8983
9192
  content: {
8984
- "application/json": components["schemas"]["V1BulkSetMemberCreditLimitOutputBody"];
9193
+ "application/json": components["schemas"]["SetMemberCreditLimitsResponse"];
8985
9194
  };
8986
9195
  };
8987
9196
  /** @description Error */
@@ -8995,26 +9204,26 @@ export interface operations {
8995
9204
  };
8996
9205
  };
8997
9206
  };
8998
- "get-v1-workspaces-workspace_id-billing-credit-usage": {
9207
+ getCreditUsage: {
8999
9208
  parameters: {
9000
9209
  query: {
9001
- /** @description Group rows by member or project across the window. Omit for one workspace-wide aggregate row. Cannot be combined with interval. */
9210
+ /** @description Group usage over the requested window. Omit both group_by and interval for one aggregate row. Cannot be combined with interval. */
9002
9211
  group_by?: "member" | "project";
9003
- /** @description Bucket rows by time. Coarser intervals allow a longer window (~400 days at day, ~3 years at week, ~10 years at month). Cannot be combined with group_by. */
9212
+ /** @description Time-bucket size in UTC. Weeks start Monday and months follow the calendar. Maximum windows are 400 days for daily buckets, 1100 days for weekly buckets, and 3660 days for monthly buckets. Cannot be combined with group_by. */
9004
9213
  interval?: "day" | "week" | "month";
9005
9214
  /** @description Required inclusive start (UTC day). */
9006
9215
  start_date: string;
9007
9216
  /** @description Inclusive end (UTC day). Defaults to today (UTC). */
9008
9217
  end_date?: string;
9009
- /** @description Filter credits to All, Build, or Run. */
9218
+ /** @description Filter usage by spend category. App-creation usage covers creating and editing apps in Lovable; deployed-app usage covers services such as AI, compute, storage, and databases. Omit to include both. */
9010
9219
  category?: "all" | "build" | "run";
9011
9220
  /** @description Optional: restrict to a single project's usage. */
9012
9221
  project_id?: string;
9013
9222
  /** @description Optional: restrict to a single member's usage. Pass 'me' for the calling user; queries not restricted to the caller require workspace admin permission. */
9014
9223
  user_id?: string;
9015
- /** @description Maximum number of items to return */
9224
+ /** @description Maximum number of items to return per page. */
9016
9225
  limit?: number;
9017
- /** @description Opaque pagination cursor returned by the previous page */
9226
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
9018
9227
  cursor?: string;
9019
9228
  };
9020
9229
  header?: never;
@@ -9032,7 +9241,7 @@ export interface operations {
9032
9241
  [name: string]: unknown;
9033
9242
  };
9034
9243
  content: {
9035
- "application/json": components["schemas"]["V1BillingUsageBody"];
9244
+ "application/json": components["schemas"]["CreditUsagePage"];
9036
9245
  };
9037
9246
  };
9038
9247
  /** @description Error */
@@ -9064,7 +9273,7 @@ export interface operations {
9064
9273
  [name: string]: unknown;
9065
9274
  };
9066
9275
  content: {
9067
- "application/json": components["schemas"]["V1WorkspaceCreditsBody"];
9276
+ "application/json": components["schemas"]["CreditBalance"];
9068
9277
  };
9069
9278
  };
9070
9279
  /** @description Error */
@@ -9081,23 +9290,23 @@ export interface operations {
9081
9290
  "get-v1-workspaces-workspace_id-billing-usage": {
9082
9291
  parameters: {
9083
9292
  query: {
9084
- /** @description Group rows by member or project across the window. Omit for one workspace-wide aggregate row. Cannot be combined with interval. */
9293
+ /** @description Group usage over the requested window. Omit both group_by and interval for one aggregate row. Cannot be combined with interval. */
9085
9294
  group_by?: "member" | "project";
9086
- /** @description Bucket rows by time. Coarser intervals allow a longer window (~400 days at day, ~3 years at week, ~10 years at month). Cannot be combined with group_by. */
9295
+ /** @description Time-bucket size in UTC. Weeks start Monday and months follow the calendar. Maximum windows are 400 days for daily buckets, 1100 days for weekly buckets, and 3660 days for monthly buckets. Cannot be combined with group_by. */
9087
9296
  interval?: "day" | "week" | "month";
9088
9297
  /** @description Required inclusive start (UTC day). */
9089
9298
  start_date: string;
9090
9299
  /** @description Inclusive end (UTC day). Defaults to today (UTC). */
9091
9300
  end_date?: string;
9092
- /** @description Filter credits to All, Build, or Run. */
9301
+ /** @description Filter usage by spend category. App-creation usage covers creating and editing apps in Lovable; deployed-app usage covers services such as AI, compute, storage, and databases. Omit to include both. */
9093
9302
  category?: "all" | "build" | "run";
9094
9303
  /** @description Optional: restrict to a single project's usage. */
9095
9304
  project_id?: string;
9096
9305
  /** @description Optional: restrict to a single member's usage. Pass 'me' for the calling user; queries not restricted to the caller require workspace admin permission. */
9097
9306
  user_id?: string;
9098
- /** @description Maximum number of items to return */
9307
+ /** @description Maximum number of items to return per page. */
9099
9308
  limit?: number;
9100
- /** @description Opaque pagination cursor returned by the previous page */
9309
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
9101
9310
  cursor?: string;
9102
9311
  };
9103
9312
  header?: never;
@@ -9115,7 +9324,7 @@ export interface operations {
9115
9324
  [name: string]: unknown;
9116
9325
  };
9117
9326
  content: {
9118
- "application/json": components["schemas"]["V1BillingUsageBody"];
9327
+ "application/json": components["schemas"]["CreditUsagePage"];
9119
9328
  };
9120
9329
  };
9121
9330
  /** @description Error */
@@ -9499,12 +9708,12 @@ export interface operations {
9499
9708
  };
9500
9709
  };
9501
9710
  };
9502
- "get-v1-workspaces-workspace_id-groups": {
9711
+ listWorkspaceGroups: {
9503
9712
  parameters: {
9504
9713
  query?: {
9505
- /** @description Maximum number of items to return */
9714
+ /** @description Maximum number of items to return per page. */
9506
9715
  limit?: number;
9507
- /** @description Opaque pagination cursor returned by the previous page */
9716
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
9508
9717
  cursor?: string;
9509
9718
  };
9510
9719
  header?: never;
@@ -9522,7 +9731,7 @@ export interface operations {
9522
9731
  [name: string]: unknown;
9523
9732
  };
9524
9733
  content: {
9525
- "application/json": components["schemas"]["CursorListResponseV1WorkspaceGroup"];
9734
+ "application/json": components["schemas"]["WorkspaceGroupPage"];
9526
9735
  };
9527
9736
  };
9528
9737
  /** @description Error */
@@ -9604,26 +9813,26 @@ export interface operations {
9604
9813
  };
9605
9814
  };
9606
9815
  };
9607
- "get-v1-workspaces-workspace_id-members": {
9816
+ listWorkspaceMembers: {
9608
9817
  parameters: {
9609
9818
  query?: {
9610
- /** @description Maximum results per page. */
9819
+ /** @description Maximum number of items to return per page. */
9611
9820
  limit?: number;
9612
- /** @description Opaque cursor from a prior response. Omit on the first page. */
9821
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
9613
9822
  cursor?: string;
9614
- /** @description Substring filter applied to display name, username, and email tokens (matching the workspace member search backend). */
9823
+ /** @description Search by display name, username, or email. Each search term of at least 3 characters must match at least one of these fields; shorter terms are ignored. */
9615
9824
  query?: string;
9616
- /** @description Comma-separated role filter. Valid values: owner, admin, member, viewer, collaborator. Empty = all roles. Unknown values return 400. */
9825
+ /** @description Comma-separated workspace role filter. Omit to include every role. Unknown roles return 400. */
9617
9826
  roles?: string;
9618
- /** @description Filter by membership status. Default 'active' excludes pending invites. */
9827
+ /** @description Filter by membership status. Pending invites are excluded by default. */
9619
9828
  status?: "all" | "active" | "pending";
9620
- /** @description Sort field. Defaults to relevance when query is set, otherwise role + recency. */
9829
+ /** @description Sort field. With a search query, results default to best matches first. Otherwise, members are ordered by role precedence, then most recently joined or invited. */
9621
9830
  sort_by?: "name" | "joined_at" | "role" | "relevance";
9622
- /** @description Sort direction. Only applied when sort_by is set; the default-sort case has a fixed direction baked into the underlying query. */
9831
+ /** @description Direction for an explicit sort field. Defaults to descending. Ignored for the default order and relevance sorting. */
9623
9832
  sort_order?: "asc" | "desc";
9624
- /** @description Filter by SCIM provisioning status. Empty = all members, 'managed' = only SCIM-provisioned members, 'unmanaged' = only members not managed by SCIM. */
9833
+ /** @description Filter by identity-provider provisioning through SCIM (System for Cross-domain Identity Management). Omit to include members regardless of provisioning method. */
9625
9834
  scim_managed?: "managed" | "unmanaged";
9626
- /** @description Comma-separated optional expansions. Valid values: groups. Unknown values return 400, but a misspelled parameter *name* is ignored rather than rejected (the response carries X-Lovable-Unknown-Query-Params), so check the header if an expansion you asked for is missing. Expansions cost extra reads, so each response field is absent unless asked for. */
9835
+ /** @description Optional additional member details. Set include=groups to include group memberships; otherwise groups is omitted. Unknown values return 400. Unrecognized query parameter names on any endpoint are ignored and listed in the X-Lovable-Unknown-Query-Params response header. */
9627
9836
  include?: string;
9628
9837
  };
9629
9838
  header?: never;
@@ -9641,7 +9850,7 @@ export interface operations {
9641
9850
  [name: string]: unknown;
9642
9851
  };
9643
9852
  content: {
9644
- "application/json": components["schemas"]["CursorListResponseV1WorkspaceMember"];
9853
+ "application/json": components["schemas"]["WorkspaceMemberPage"];
9645
9854
  };
9646
9855
  };
9647
9856
  /** @description Error */
@@ -9658,6 +9867,8 @@ export interface operations {
9658
9867
  "get-v1-workspaces-workspace_id-projects": {
9659
9868
  parameters: {
9660
9869
  query?: {
9870
+ /** @description Match visible project titles and order by relevance; acknowledged by title_search in the response */
9871
+ title_search?: boolean;
9661
9872
  /** @description Include per-project risk rollup fields (risk_score, risk_level, signals, reasons). Honored only for workspaces with the risk read surface enabled; ignored otherwise. Off by default so the default project list avoids the risk-table joins. */
9662
9873
  include_risk?: boolean;
9663
9874
  /** @description Skip computing the total: total is returned as -1; has_more still reports whether more results exist. Use for list UIs that paginate on has_more. */
@@ -9756,17 +9967,15 @@ export interface operations {
9756
9967
  };
9757
9968
  };
9758
9969
  };
9759
- "get-v1-workspaces-workspace_id-security-center-insights": {
9970
+ getSecurityInsights: {
9760
9971
  parameters: {
9761
9972
  query?: {
9762
- /** @description Repeat to keep only findings at these review priorities (needs_review=critical, review_recommended=high+medium, no_review_needed=low+minimal). Omit for all. */
9973
+ /** @description Filter finding types by review priority. Repeat to include any of the specified priorities; omit to include all. Only findings are filtered; summary counts remain workspace-wide. */
9763
9974
  review_priority?: ("needs_review" | "review_recommended" | "no_review_needed")[] | null;
9764
- /** @description Deprecated (ENT-3348): alias for review_priority; values from both parameters are combined. */
9765
- severity?: ("needs_review" | "review_recommended" | "no_review_needed")[] | null;
9766
9975
  };
9767
9976
  header?: never;
9768
9977
  path: {
9769
- /** @description Workspace ID */
9978
+ /** @description ID of the workspace to retrieve security insights for. */
9770
9979
  workspace_id: string;
9771
9980
  };
9772
9981
  cookie?: never;
@@ -9779,7 +9988,7 @@ export interface operations {
9779
9988
  [name: string]: unknown;
9780
9989
  };
9781
9990
  content: {
9782
- "application/json": components["schemas"]["V1WorkspaceInsightsBody"];
9991
+ "application/json": components["schemas"]["WorkspaceInsights"];
9783
9992
  };
9784
9993
  };
9785
9994
  /** @description Error */
@@ -9793,32 +10002,32 @@ export interface operations {
9793
10002
  };
9794
10003
  };
9795
10004
  };
9796
- "get-v1-workspaces-workspace_id-security-center-insights-projects": {
10005
+ listSecurityInsightProjects: {
9797
10006
  parameters: {
9798
10007
  query?: {
9799
- /** @description Max results per page. */
10008
+ /** @description Maximum number of items to return per page. */
9800
10009
  limit?: number;
9801
- /** @description Opaque cursor from a prior response. Omit on the first page. */
10010
+ /** @description Pass pagination.next_cursor from the previous response to fetch the next page. Omit for the first page; keep the same filters and sort order across pages. */
9802
10011
  cursor?: string;
9803
10012
  /** @description Free-text search across project name and owner. */
9804
10013
  query?: string;
9805
- /** @description Sort axis. When omitted, results sort by last_edited (or by relevance when 'query' is set). */
10014
+ /** @description Sort order. Defaults to most recently edited, or best matches first when query is set. Priority sorting puts the most urgent projects first; scan-time sorting uses the latest finished scan. */
9806
10015
  sort_by?: "review_priority_desc" | "name_asc" | "name_desc" | "published_status_asc" | "published_status_desc" | "last_edited_asc" | "last_edited_desc" | "risk_factors_asc" | "risk_factors_desc" | "pii_findings_asc" | "pii_findings_desc" | "external_access_asc" | "external_access_desc" | "most_edited_24h" | "most_edited_7d" | "most_edited_30d" | "most_visitors_24h" | "most_visitors_7d" | "most_visitors_30d" | "last_scan_desc" | "last_scan_asc";
9807
- /** @description Activity bucket filter. */
10016
+ /** @description Filter by time since the last edit, or last update for projects never edited. Uses 14-day and 60-day boundaries. */
9808
10017
  activity?: "active" | "inactive" | "dead";
9809
10018
  /** @description Filter by publishing status. Omit for no filter. */
9810
10019
  is_published?: "true" | "false";
9811
- /** @description Filter by project visibility. */
10020
+ /** @description Filter by who can access the project in the editor. Separate from the published site access controlled by publish_status. */
9812
10021
  visibility?: "public" | "private" | "draft";
9813
- /** @description Filter to projects flagged with PII. */
10022
+ /** @description Set true to include only projects flagged with personally identifiable information (PII). False or omitted applies no filter. Ignored when personal data detection is unavailable. */
9814
10023
  contains_pii?: boolean;
9815
- /** @description Filter to projects with at least one connector. */
10024
+ /** @description Set true to include only projects with a connected service. False or omitted applies no filter. */
9816
10025
  has_connectors?: boolean;
9817
- /** @description Repeat to include multiple publishing statuses. Omit for all. */
10026
+ /** @description Filter by published site access. Restricted sites may also have selected external viewers. Repeat to match any selected status; omit for no filter. */
9818
10027
  publish_status?: ("external" | "workspace" | "not_published")[] | null;
9819
- /** @description Repeat to include multiple review priorities (needs_review=critical, review_recommended=high+medium, no_review_needed=low+minimal). Unscored projects are not filterable but may appear in results. */
10028
+ /** @description Filter projects by Security Center review priority. Repeat to match any selected priority. Omit to include every project, including those not yet scored. */
9820
10029
  review_priority?: ("needs_review" | "review_recommended" | "no_review_needed")[] | null;
9821
- /** @description Repeat to filter to projects matching any of the listed catalog findings (e.g. public_pii_exposure, abandoned_published). Unknown finding ids return 400. */
10030
+ /** @description Finding type IDs returned by GET /v1/workspaces/{workspace_id}/security-center/insights. Repeat to match any selected type. Unknown IDs return 400. Types requiring personal data detection are ignored when that feature is unavailable. */
9822
10031
  finding_id?: string[] | null;
9823
10032
  };
9824
10033
  header?: never;
@@ -9836,7 +10045,7 @@ export interface operations {
9836
10045
  [name: string]: unknown;
9837
10046
  };
9838
10047
  content: {
9839
- "application/json": components["schemas"]["V1WorkspaceInsightsProjectsBody"];
10048
+ "application/json": components["schemas"]["WorkspaceInsightsProjectPage"];
9840
10049
  };
9841
10050
  };
9842
10051
  /** @description Error */
@@ -9850,7 +10059,7 @@ export interface operations {
9850
10059
  };
9851
10060
  };
9852
10061
  };
9853
- "get-v1-workspaces-workspace_id-settings": {
10062
+ getWorkspaceSettings: {
9854
10063
  parameters: {
9855
10064
  query?: never;
9856
10065
  header?: never;
@@ -9868,7 +10077,7 @@ export interface operations {
9868
10077
  [name: string]: unknown;
9869
10078
  };
9870
10079
  content: {
9871
- "application/json": components["schemas"]["V1WorkspaceSettingsBody"];
10080
+ "application/json": components["schemas"]["WorkspaceSettings"];
9872
10081
  };
9873
10082
  };
9874
10083
  /** @description Error */
@@ -9882,7 +10091,7 @@ export interface operations {
9882
10091
  };
9883
10092
  };
9884
10093
  };
9885
- "patch-v1-workspaces-workspace_id-settings": {
10094
+ updateWorkspaceSettings: {
9886
10095
  parameters: {
9887
10096
  query?: never;
9888
10097
  header?: never;
@@ -9894,7 +10103,7 @@ export interface operations {
9894
10103
  };
9895
10104
  requestBody: {
9896
10105
  content: {
9897
- "application/json": components["schemas"]["V1UpdateWorkspaceSettingsNestedInputBody"];
10106
+ "application/json": components["schemas"]["UpdateWorkspaceSettingsRequest"];
9898
10107
  };
9899
10108
  };
9900
10109
  responses: {
@@ -9904,7 +10113,7 @@ export interface operations {
9904
10113
  [name: string]: unknown;
9905
10114
  };
9906
10115
  content: {
9907
- "application/json": components["schemas"]["V1WorkspaceSettingsBody"];
10116
+ "application/json": components["schemas"]["WorkspaceSettings"];
9908
10117
  };
9909
10118
  };
9910
10119
  /** @description Error */