@zitadel/api 1.0.0-alpha.21 → 1.0.0-alpha.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/generated/endpoints/zitadelNextGen.d.mts +2 -2
  2. package/dist/generated/endpoints/zitadelNextGen.mjs +75 -4
  3. package/dist/generated/endpoints/zitadelNextGen.mjs.map +1 -1
  4. package/dist/generated/endpoints/zitadelNextGen.msw.d.mts +6 -2
  5. package/dist/generated/endpoints/zitadelNextGen.msw.d.mts.map +1 -1
  6. package/dist/generated/endpoints/zitadelNextGen.msw.mjs +622 -1
  7. package/dist/generated/endpoints/zitadelNextGen.msw.mjs.map +1 -1
  8. package/dist/generated/endpoints/zitadelNextGen.zod.d.mts +380 -24
  9. package/dist/generated/endpoints/zitadelNextGen.zod.d.mts.map +1 -1
  10. package/dist/generated/endpoints/zitadelNextGen.zod.mjs +370 -39
  11. package/dist/generated/endpoints/zitadelNextGen.zod.mjs.map +1 -1
  12. package/dist/generated/model/index.d.mts +2 -2
  13. package/dist/generated/model/index.mjs +54 -1
  14. package/dist/generated/model/index.mjs.map +1 -1
  15. package/dist/{index-BK4Q468Q.d.mts → index-DtExHu2p.d.mts} +1452 -140
  16. package/dist/index-DtExHu2p.d.mts.map +1 -0
  17. package/dist/runtime/api-factory.d.mts +1 -1
  18. package/dist/{zitadelNextGen-C8m49W5h.d.mts → zitadelNextGen-C79YSuEo.d.mts} +45 -7
  19. package/dist/zitadelNextGen-C79YSuEo.d.mts.map +1 -0
  20. package/package.json +1 -1
  21. package/src/generated/endpoints/zitadelNextGen.msw.ts +759 -55
  22. package/src/generated/endpoints/zitadelNextGen.ts +98 -3
  23. package/src/generated/endpoints/zitadelNextGen.zod.ts +1199 -422
  24. package/src/generated/model/completeClaim410.ts +21 -16
  25. package/src/generated/model/createFlowDefinition201FlowDefinition.ts +5 -3
  26. package/src/generated/model/createFlowDefinitionBodyFlowDefinition.ts +5 -3
  27. package/src/generated/model/createFlowDefinitionDefault.ts +0 -10
  28. package/src/generated/model/createGrant201.ts +32 -0
  29. package/src/generated/model/createGrant201Principal.ts +147 -0
  30. package/src/generated/model/createGrant201Team.ts +22 -0
  31. package/src/generated/model/createGrant201User.ts +38 -0
  32. package/src/generated/model/createSession201Session.ts +1 -0
  33. package/src/generated/model/createSession201SessionUser.ts +1 -0
  34. package/src/generated/model/exchangeHandoff200Session.ts +1 -0
  35. package/src/generated/model/exchangeHandoff200SessionUser.ts +1 -0
  36. package/src/generated/model/getClaimStatus410.ts +21 -16
  37. package/src/generated/model/getClaimWindow200.ts +23 -0
  38. package/src/generated/model/{createFlowDefinition409.ts → getClaimWindow404.ts} +3 -3
  39. package/src/generated/model/{createFlowDefinition409Details.ts → getClaimWindow404Details.ts} +1 -1
  40. package/src/generated/model/getClaimWindow429.ts +20 -0
  41. package/src/generated/model/getClaimWindow429Details.ts +12 -0
  42. package/src/generated/model/getClaimWindowDefault.ts +20 -0
  43. package/src/generated/model/getClaimWindowDefaultDetails.ts +12 -0
  44. package/src/generated/model/getClaimWindowParams.ts +15 -0
  45. package/src/generated/model/getEvent200.ts +75 -0
  46. package/src/generated/model/getFlowDefinition200FlowDefinition.ts +5 -3
  47. package/src/generated/model/getGrant200.ts +32 -0
  48. package/src/generated/model/getGrant200Principal.ts +147 -0
  49. package/src/generated/model/getGrant200Team.ts +22 -0
  50. package/src/generated/model/getGrant200User.ts +38 -0
  51. package/src/generated/model/getMySession200.ts +1 -0
  52. package/src/generated/model/getMySession200User.ts +1 -0
  53. package/src/generated/model/getSession200.ts +1 -0
  54. package/src/generated/model/getSession200User.ts +1 -0
  55. package/src/generated/model/index.ts +39 -2
  56. package/src/generated/model/initClaim410.ts +24 -0
  57. package/src/generated/model/listEvents200DataItem.ts +75 -0
  58. package/src/generated/model/listFlowDefinitions200.ts +3 -0
  59. package/src/generated/model/listFlowDefinitions200FlowDefinitionsItemFlowDefinition.ts +5 -3
  60. package/src/generated/model/listFlowDefinitionsParams.ts +8 -0
  61. package/src/generated/model/queryGrants200.ts +20 -0
  62. package/src/generated/model/queryGrants200GrantsItem.ts +66 -0
  63. package/src/generated/model/queryGrants200GrantsItemObjectType.ts +17 -0
  64. package/src/generated/model/queryGrants200GrantsItemPrincipal.ts +147 -0
  65. package/src/generated/model/queryGrants200GrantsItemPrincipalType.ts +18 -0
  66. package/src/generated/model/queryGrants200GrantsItemRelation.ts +19 -0
  67. package/src/generated/model/queryGrants200GrantsItemTeam.ts +22 -0
  68. package/src/generated/model/queryGrants200GrantsItemUser.ts +38 -0
  69. package/src/generated/model/queryGrants400.ts +20 -0
  70. package/src/generated/model/queryGrants400Details.ts +12 -0
  71. package/src/generated/model/queryGrants401.ts +20 -0
  72. package/src/generated/model/queryGrants401Details.ts +12 -0
  73. package/src/generated/model/queryGrants403.ts +20 -0
  74. package/src/generated/model/queryGrants403Details.ts +12 -0
  75. package/src/generated/model/queryGrantsBody.ts +33 -0
  76. package/src/generated/model/queryGrantsBodyExpandItem.ts +30 -0
  77. package/src/generated/model/queryGrantsBodyFilterItem.ts +33 -0
  78. package/src/generated/model/queryGrantsBodyFilterItemField.ts +27 -0
  79. package/src/generated/model/queryGrantsBodyFilterItemOperation.ts +30 -0
  80. package/src/generated/model/queryGrantsBodySorting.ts +17 -0
  81. package/src/generated/model/queryGrantsBodySortingDirection.ts +15 -0
  82. package/src/generated/model/queryGrantsBodySortingField.ts +21 -0
  83. package/src/generated/model/queryGrantsDefault.ts +99 -0
  84. package/src/generated/model/queryGrantsParams.ts +15 -0
  85. package/src/generated/model/querySessions200SessionsItem.ts +1 -0
  86. package/src/generated/model/querySessions200SessionsItemUser.ts +1 -0
  87. package/src/generated/model/updateFlowDefinition200FlowDefinition.ts +5 -3
  88. package/src/generated/model/updateFlowDefinitionBodyFlowDefinition.ts +5 -3
  89. package/dist/index-BK4Q468Q.d.mts.map +0 -1
  90. package/dist/zitadelNextGen-C8m49W5h.d.mts.map +0 -1
@@ -1,2 +1,2 @@
1
- import { $ as getGetFlowDefinitionUrl, $t as listReleases, A as getCreateGrantUrl, At as getQueryProjectsUrl, B as getDeleteTeamUrl, Bt as getSetUserPasswordUrl, C as getBrandingById, Ct as getListUserPasskeysUrl, D as getCreateBrandingUrl, Dt as getMyUser, E as getCreateAuthAttemptUrl, Et as getMySession, F as getCreateSessionUrl, Ft as getReleaseById, G as getFinishUserPasskeyRegistrationUrl, Gt as getUserByID, H as getEnvironmentByName, Ht as getTeam, I as getCreateTeamUrl, It as getRevokeMySessionUrl, J as getGetAuthAttemptUrl, Jt as issueChallenge, K as getFlowDefinition, Kt as getVerifyChallengeProofUrl, L as getCreateUserUrl, Lt as getRevokeSessionUrl, M as getCreateProjectUrl, Mt as getQueryTeamsUrl, N as getCreateReleaseUrl, Nt as getQueryUsersUrl, O as getCreateFlowDefinitionUrl, Ot as getPatchProjectUrl, P as getCreateSchemaUrl, Pt as getReady, Q as getGetEventUrl, Qt as listFlowDefinitions, R as getDeleteFlowDefinitionUrl, Rt as getSchemaById, S as getBeginUserPasskeyRegistrationUrl, St as getListSchemasUrl, T as getCompleteClaimUrl, Tt as getLive, U as getEvent, Ut as getUpdateFlowDefinitionUrl, V as getDeleteUserByIDUrl, Vt as getSubmitFlowStepUrl, W as getExchangeHandoffUrl, Wt as getUpdateTeamUrl, X as getGetClaimStatusUrl, Xt as listEnvironments, Y as getGetBrandingByIdUrl, Yt as listBranding, Z as getGetEnvironmentByNameUrl, Zt as listEvents, _ as deleteTeam, _t as getListBrandingUrl, a as createFlow, an as querySessions, at as getGetMyUserUrl, b as finishUserPasskeyRegistration, bt as getListFlowDefinitionsUrl, c as createHandoff, cn as revokeMySession, ct as getGetReleaseByIdUrl, d as createSchema, dn as submitFlowStep, dt as getGetTeamUrl, en as listSchemas, et as getGetFlowStepUrl, f as createSession, fn as updateFlowDefinition, ft as getGetUserByIDUrl, g as deleteGrant, gt as getIssueChallengeUrl, h as deleteFlowDefinition, ht as getInitClaimUrl, i as createBranding, in as queryProjects, it as getGetMySessionUrl, j as getCreateHandoffUrl, jt as getQuerySessionsUrl, k as getCreateFlowUrl, kt as getProject, l as createProject, ln as revokeSession, lt as getGetSchemaByIdUrl, m as createUser, mn as verifyChallengeProof, mt as getHealth, n as completeClaim, nn as listUserTeams, nt as getGetHealthUrl, o as createFlowDefinition, on as queryTeams, ot as getGetProjectUrl, p as createTeam, pn as updateTeam, pt as getGrant, q as getFlowStep, qt as initClaim, r as createAuthAttempt, rn as patchProject, rt as getGetLiveUrl, s as createGrant, sn as queryUsers, st as getGetReadyUrl, t as beginUserPasskeyRegistration, tn as listUserPasskeys, tt as getGetGrantUrl, u as createRelease, un as setUserPassword, ut as getGetSessionUrl, v as deleteUserByID, vt as getListEnvironmentsUrl, w as getClaimStatus, wt as getListUserTeamsUrl, x as getAuthAttempt, xt as getListReleasesUrl, y as exchangeHandoff, yt as getListEventsUrl, z as getDeleteGrantUrl, zt as getSession } from "../../zitadelNextGen-C8m49W5h.mjs";
2
- export { beginUserPasskeyRegistration, completeClaim, createAuthAttempt, createBranding, createFlow, createFlowDefinition, createGrant, createHandoff, createProject, createRelease, createSchema, createSession, createTeam, createUser, deleteFlowDefinition, deleteGrant, deleteTeam, deleteUserByID, exchangeHandoff, finishUserPasskeyRegistration, getAuthAttempt, getBeginUserPasskeyRegistrationUrl, getBrandingById, getClaimStatus, getCompleteClaimUrl, getCreateAuthAttemptUrl, getCreateBrandingUrl, getCreateFlowDefinitionUrl, getCreateFlowUrl, getCreateGrantUrl, getCreateHandoffUrl, getCreateProjectUrl, getCreateReleaseUrl, getCreateSchemaUrl, getCreateSessionUrl, getCreateTeamUrl, getCreateUserUrl, getDeleteFlowDefinitionUrl, getDeleteGrantUrl, getDeleteTeamUrl, getDeleteUserByIDUrl, getEnvironmentByName, getEvent, getExchangeHandoffUrl, getFinishUserPasskeyRegistrationUrl, getFlowDefinition, getFlowStep, getGetAuthAttemptUrl, getGetBrandingByIdUrl, getGetClaimStatusUrl, getGetEnvironmentByNameUrl, getGetEventUrl, getGetFlowDefinitionUrl, getGetFlowStepUrl, getGetGrantUrl, getGetHealthUrl, getGetLiveUrl, getGetMySessionUrl, getGetMyUserUrl, getGetProjectUrl, getGetReadyUrl, getGetReleaseByIdUrl, getGetSchemaByIdUrl, getGetSessionUrl, getGetTeamUrl, getGetUserByIDUrl, getGrant, getHealth, getInitClaimUrl, getIssueChallengeUrl, getListBrandingUrl, getListEnvironmentsUrl, getListEventsUrl, getListFlowDefinitionsUrl, getListReleasesUrl, getListSchemasUrl, getListUserPasskeysUrl, getListUserTeamsUrl, getLive, getMySession, getMyUser, getPatchProjectUrl, getProject, getQueryProjectsUrl, getQuerySessionsUrl, getQueryTeamsUrl, getQueryUsersUrl, getReady, getReleaseById, getRevokeMySessionUrl, getRevokeSessionUrl, getSchemaById, getSession, getSetUserPasswordUrl, getSubmitFlowStepUrl, getTeam, getUpdateFlowDefinitionUrl, getUpdateTeamUrl, getUserByID, getVerifyChallengeProofUrl, initClaim, issueChallenge, listBranding, listEnvironments, listEvents, listFlowDefinitions, listReleases, listSchemas, listUserPasskeys, listUserTeams, patchProject, queryProjects, querySessions, queryTeams, queryUsers, revokeMySession, revokeSession, setUserPassword, submitFlowStep, updateFlowDefinition, updateTeam, verifyChallengeProof };
1
+ import { $ as getGetEnvironmentByNameUrl, $t as listEnvironments, A as getCreateFlowUrl, At as getPatchProjectUrl, B as getDeleteGrantUrl, Bt as getRevokeSessionUrl, C as getBrandingById, Ct as getListReleasesUrl, D as getCreateAuthAttemptUrl, Dt as getLive, E as getCompleteClaimUrl, Et as getListUserTeamsUrl, F as getCreateSchemaUrl, Ft as getQueryTeamsUrl, G as getExchangeHandoffUrl, Gt as getTeam, H as getDeleteUserByIDUrl, Ht as getSession, I as getCreateSessionUrl, It as getQueryUsersUrl, J as getFlowStep, Jt as getUserByID, K as getFinishUserPasskeyRegistrationUrl, Kt as getUpdateFlowDefinitionUrl, L as getCreateTeamUrl, Lt as getReady, M as getCreateHandoffUrl, Mt as getQueryGrantsUrl, N as getCreateProjectUrl, Nt as getQueryProjectsUrl, O as getCreateBrandingUrl, Ot as getMySession, P as getCreateReleaseUrl, Pt as getQuerySessionsUrl, Q as getGetClaimWindowUrl, Qt as listBranding, R as getCreateUserUrl, Rt as getReleaseById, S as getBeginUserPasskeyRegistrationUrl, St as getListFlowDefinitionsUrl, T as getClaimWindow, Tt as getListUserPasskeysUrl, U as getEnvironmentByName, Ut as getSetUserPasswordUrl, V as getDeleteTeamUrl, Vt as getSchemaById, W as getEvent, Wt as getSubmitFlowStepUrl, X as getGetBrandingByIdUrl, Xt as initClaim, Y as getGetAuthAttemptUrl, Yt as getVerifyChallengeProofUrl, Z as getGetClaimStatusUrl, Zt as issueChallenge, _ as deleteTeam, _n as updateTeam, _t as getInitClaimUrl, a as createFlow, an as listUserTeams, at as getGetLiveUrl, b as finishUserPasskeyRegistration, bt as getListEnvironmentsUrl, c as createHandoff, cn as queryProjects, ct as getGetProjectUrl, d as createSchema, dn as queryUsers, dt as getGetSchemaByIdUrl, en as listEvents, et as getGetEventUrl, f as createSession, fn as revokeMySession, ft as getGetSessionUrl, g as deleteGrant, gn as updateFlowDefinition, gt as getHealth, h as deleteFlowDefinition, hn as submitFlowStep, ht as getGrant, i as createBranding, in as listUserPasskeys, it as getGetHealthUrl, j as getCreateGrantUrl, jt as getProject, k as getCreateFlowDefinitionUrl, kt as getMyUser, l as createProject, ln as querySessions, lt as getGetReadyUrl, m as createUser, mn as setUserPassword, mt as getGetUserByIDUrl, n as completeClaim, nn as listReleases, nt as getGetFlowStepUrl, o as createFlowDefinition, on as patchProject, ot as getGetMySessionUrl, p as createTeam, pn as revokeSession, pt as getGetTeamUrl, q as getFlowDefinition, qt as getUpdateTeamUrl, r as createAuthAttempt, rn as listSchemas, rt as getGetGrantUrl, s as createGrant, sn as queryGrants, st as getGetMyUserUrl, t as beginUserPasskeyRegistration, tn as listFlowDefinitions, tt as getGetFlowDefinitionUrl, u as createRelease, un as queryTeams, ut as getGetReleaseByIdUrl, v as deleteUserByID, vn as verifyChallengeProof, vt as getIssueChallengeUrl, w as getClaimStatus, wt as getListSchemasUrl, x as getAuthAttempt, xt as getListEventsUrl, y as exchangeHandoff, yt as getListBrandingUrl, z as getDeleteFlowDefinitionUrl, zt as getRevokeMySessionUrl } from "../../zitadelNextGen-C79YSuEo.mjs";
2
+ export { beginUserPasskeyRegistration, completeClaim, createAuthAttempt, createBranding, createFlow, createFlowDefinition, createGrant, createHandoff, createProject, createRelease, createSchema, createSession, createTeam, createUser, deleteFlowDefinition, deleteGrant, deleteTeam, deleteUserByID, exchangeHandoff, finishUserPasskeyRegistration, getAuthAttempt, getBeginUserPasskeyRegistrationUrl, getBrandingById, getClaimStatus, getClaimWindow, getCompleteClaimUrl, getCreateAuthAttemptUrl, getCreateBrandingUrl, getCreateFlowDefinitionUrl, getCreateFlowUrl, getCreateGrantUrl, getCreateHandoffUrl, getCreateProjectUrl, getCreateReleaseUrl, getCreateSchemaUrl, getCreateSessionUrl, getCreateTeamUrl, getCreateUserUrl, getDeleteFlowDefinitionUrl, getDeleteGrantUrl, getDeleteTeamUrl, getDeleteUserByIDUrl, getEnvironmentByName, getEvent, getExchangeHandoffUrl, getFinishUserPasskeyRegistrationUrl, getFlowDefinition, getFlowStep, getGetAuthAttemptUrl, getGetBrandingByIdUrl, getGetClaimStatusUrl, getGetClaimWindowUrl, getGetEnvironmentByNameUrl, getGetEventUrl, getGetFlowDefinitionUrl, getGetFlowStepUrl, getGetGrantUrl, getGetHealthUrl, getGetLiveUrl, getGetMySessionUrl, getGetMyUserUrl, getGetProjectUrl, getGetReadyUrl, getGetReleaseByIdUrl, getGetSchemaByIdUrl, getGetSessionUrl, getGetTeamUrl, getGetUserByIDUrl, getGrant, getHealth, getInitClaimUrl, getIssueChallengeUrl, getListBrandingUrl, getListEnvironmentsUrl, getListEventsUrl, getListFlowDefinitionsUrl, getListReleasesUrl, getListSchemasUrl, getListUserPasskeysUrl, getListUserTeamsUrl, getLive, getMySession, getMyUser, getPatchProjectUrl, getProject, getQueryGrantsUrl, getQueryProjectsUrl, getQuerySessionsUrl, getQueryTeamsUrl, getQueryUsersUrl, getReady, getReleaseById, getRevokeMySessionUrl, getRevokeSessionUrl, getSchemaById, getSession, getSetUserPasswordUrl, getSubmitFlowStepUrl, getTeam, getUpdateFlowDefinitionUrl, getUpdateTeamUrl, getUserByID, getVerifyChallengeProofUrl, initClaim, issueChallenge, listBranding, listEnvironments, listEvents, listFlowDefinitions, listReleases, listSchemas, listUserPasskeys, listUserTeams, patchProject, queryGrants, queryProjects, querySessions, queryTeams, queryUsers, revokeMySession, revokeSession, setUserPassword, submitFlowStep, updateFlowDefinition, updateTeam, verifyChallengeProof };
@@ -34,6 +34,7 @@ var zitadelNextGen_exports = /* @__PURE__ */ __exportAll({
34
34
  getBeginUserPasskeyRegistrationUrl: () => getBeginUserPasskeyRegistrationUrl,
35
35
  getBrandingById: () => getBrandingById,
36
36
  getClaimStatus: () => getClaimStatus,
37
+ getClaimWindow: () => getClaimWindow,
37
38
  getCompleteClaimUrl: () => getCompleteClaimUrl,
38
39
  getCreateAuthAttemptUrl: () => getCreateAuthAttemptUrl,
39
40
  getCreateBrandingUrl: () => getCreateBrandingUrl,
@@ -60,6 +61,7 @@ var zitadelNextGen_exports = /* @__PURE__ */ __exportAll({
60
61
  getGetAuthAttemptUrl: () => getGetAuthAttemptUrl,
61
62
  getGetBrandingByIdUrl: () => getGetBrandingByIdUrl,
62
63
  getGetClaimStatusUrl: () => getGetClaimStatusUrl,
64
+ getGetClaimWindowUrl: () => getGetClaimWindowUrl,
63
65
  getGetEnvironmentByNameUrl: () => getGetEnvironmentByNameUrl,
64
66
  getGetEventUrl: () => getGetEventUrl,
65
67
  getGetFlowDefinitionUrl: () => getGetFlowDefinitionUrl,
@@ -93,6 +95,7 @@ var zitadelNextGen_exports = /* @__PURE__ */ __exportAll({
93
95
  getMyUser: () => getMyUser,
94
96
  getPatchProjectUrl: () => getPatchProjectUrl,
95
97
  getProject: () => getProject,
98
+ getQueryGrantsUrl: () => getQueryGrantsUrl,
96
99
  getQueryProjectsUrl: () => getQueryProjectsUrl,
97
100
  getQuerySessionsUrl: () => getQuerySessionsUrl,
98
101
  getQueryTeamsUrl: () => getQueryTeamsUrl,
@@ -121,6 +124,7 @@ var zitadelNextGen_exports = /* @__PURE__ */ __exportAll({
121
124
  listUserPasskeys: () => listUserPasskeys,
122
125
  listUserTeams: () => listUserTeams,
123
126
  patchProject: () => patchProject,
127
+ queryGrants: () => queryGrants,
124
128
  queryProjects: () => queryProjects,
125
129
  querySessions: () => querySessions,
126
130
  queryTeams: () => queryTeams,
@@ -670,7 +674,11 @@ const getGetClaimStatusUrl = (projectId, params) => {
670
674
  * Polled by the CLI while a browser completes the claim. Authorized by the
671
675
  project secret that initiated the challenge. Returns `pending`, or
672
676
  `completed` with the owning team, the claim timestamp, and the dashboard
673
- URL once the browser leg has finished.
677
+ URL once the project is claimed. The claim grant, not the polled
678
+ challenge, is the source of truth: a project claimed through another
679
+ concurrent challenge also reports `completed`, and a completed claim
680
+ keeps reporting `completed` past this challenge's expiry and past the
681
+ project's claim window.
674
682
 
675
683
  * @summary Get claim status
676
684
  */
@@ -702,6 +710,30 @@ const completeClaim = async (projectId, completeClaimBody, options) => {
702
710
  body: JSON.stringify(completeClaimBody)
703
711
  });
704
712
  };
713
+ const getGetClaimWindowUrl = (projectId, params) => {
714
+ const normalizedParams = new URLSearchParams();
715
+ Object.entries(params || {}).forEach(([key, value]) => {
716
+ if (value !== void 0) normalizedParams.append(key, value === null ? "null" : value.toString());
717
+ });
718
+ const stringifiedParams = normalizedParams.toString();
719
+ return stringifiedParams.length > 0 ? `${getProxyPath()}/projects/${projectId}/claim/window?${stringifiedParams}` : `${getProxyPath()}/projects/${projectId}/claim/window`;
720
+ };
721
+ /**
722
+ * Read by the claim page in the browser to show how long is left to claim the
723
+ project. Unauthenticated by design: the claim page runs this before the
724
+ developer has signed in, and holding the `challenge_id` from the claim URL
725
+ is the authorization — the same capability `claim/complete` accepts. It
726
+ reveals only the window, never the project itself, and unlike
727
+ `claim/complete` it spends nothing, so a reload is free.
728
+
729
+ * @summary Get the claim window for a project
730
+ */
731
+ const getClaimWindow = async (projectId, params, options) => {
732
+ return customFetch(getGetClaimWindowUrl(projectId, params), {
733
+ ...options,
734
+ method: "GET"
735
+ });
736
+ };
705
737
  const getCreateSessionUrl = () => {
706
738
  return `${getProxyPath()}/sessions`;
707
739
  };
@@ -963,12 +995,17 @@ const getCreateFlowDefinitionUrl = () => {
963
995
  return `${getProxyPath()}/flow_definitions`;
964
996
  };
965
997
  /**
966
- * Creates a new flow definition.
998
+ * Publishes a new flow definition revision.
967
999
  Flow definitions are templates that define the sequence of steps (capabilities)
968
1000
  for a particular user journey (e.g., registration, login, password reset).
969
1001
 
970
1002
  Flow definitions are created based on the flow definition schema, which includes the flow's purpose, audience, and the steps involved.
971
1003
 
1004
+ Every call allocates a new opaque id. Revisions of one flow share its
1005
+ `name`; posting a definition under an existing `name` publishes a new
1006
+ revision of that flow, it is not a conflict. List with `name` to see a
1007
+ flow's revisions, newest by creation time first.
1008
+
972
1009
  * @summary Create a new flow definition
973
1010
  */
974
1011
  const createFlowDefinition = async (createFlowDefinitionBody, options) => {
@@ -991,8 +1028,9 @@ const getListFlowDefinitionsUrl = (params) => {
991
1028
  return stringifiedParams.length > 0 ? `${getProxyPath()}/flow_definitions?${stringifiedParams}` : `${getProxyPath()}/flow_definitions`;
992
1029
  };
993
1030
  /**
994
- * Retrieves a list of all flow definitions.
1031
+ * Retrieves a list of all flow definitions, newest by creation time first.
995
1032
  This endpoint can be used to view existing flow definitions and their configurations.
1033
+ Filter by `name` to list the revisions of one flow.
996
1034
 
997
1035
  * @summary List flow definitions
998
1036
  */
@@ -1377,6 +1415,39 @@ const createGrant = async (createGrantBody, params, options) => {
1377
1415
  body: JSON.stringify(createGrantBody)
1378
1416
  });
1379
1417
  };
1418
+ const getQueryGrantsUrl = (params) => {
1419
+ const normalizedParams = new URLSearchParams();
1420
+ Object.entries(params || {}).forEach(([key, value]) => {
1421
+ if (value !== void 0) normalizedParams.append(key, value === null ? "null" : value.toString());
1422
+ });
1423
+ const stringifiedParams = normalizedParams.toString();
1424
+ return stringifiedParams.length > 0 ? `${getProxyPath()}/grants/query?${stringifiedParams}` : `${getProxyPath()}/grants/query`;
1425
+ };
1426
+ /**
1427
+ * Returns the collaboration grants of a project, paginated with a cursor.
1428
+ Only unrevoked grants this API manages are listed (user or team bound to
1429
+ viewer, editor, or admin), including expired grants so a client can
1430
+ DELETE before re-granting. Project-secret setup (`sk_proj`) and
1431
+ owning-team (`relation=team`) rows are not returned. Grants are not in
1432
+ `resource_scope_index`; project scope is required on the query (same as
1433
+ get). Requires `project.read`. `expand: ["principal"]` additionally
1434
+ requires `user.read` and `team.read` (documented on the expand enum;
1435
+ those scopes cannot be ANDed onto this security block because they are
1436
+ body-conditional).
1437
+
1438
+ * @summary Query grants
1439
+ */
1440
+ const queryGrants = async (queryGrantsBody, params, options) => {
1441
+ return customFetch(getQueryGrantsUrl(params), {
1442
+ ...options,
1443
+ method: "POST",
1444
+ headers: {
1445
+ "Content-Type": "application/json",
1446
+ ...options?.headers
1447
+ },
1448
+ body: JSON.stringify(queryGrantsBody)
1449
+ });
1450
+ };
1380
1451
  const getGetGrantUrl = (id, params) => {
1381
1452
  const normalizedParams = new URLSearchParams();
1382
1453
  Object.entries(params || {}).forEach(([key, value]) => {
@@ -1484,6 +1555,6 @@ const getEvent = async (id, params, options) => {
1484
1555
  });
1485
1556
  };
1486
1557
  //#endregion
1487
- export { beginUserPasskeyRegistration, completeClaim, createAuthAttempt, createBranding, createFlow, createFlowDefinition, createGrant, createHandoff, createProject, createRelease, createSchema, createSession, createTeam, createUser, deleteFlowDefinition, deleteGrant, deleteTeam, deleteUserByID, exchangeHandoff, finishUserPasskeyRegistration, getAuthAttempt, getBeginUserPasskeyRegistrationUrl, getBrandingById, getClaimStatus, getCompleteClaimUrl, getCreateAuthAttemptUrl, getCreateBrandingUrl, getCreateFlowDefinitionUrl, getCreateFlowUrl, getCreateGrantUrl, getCreateHandoffUrl, getCreateProjectUrl, getCreateReleaseUrl, getCreateSchemaUrl, getCreateSessionUrl, getCreateTeamUrl, getCreateUserUrl, getDeleteFlowDefinitionUrl, getDeleteGrantUrl, getDeleteTeamUrl, getDeleteUserByIDUrl, getEnvironmentByName, getEvent, getExchangeHandoffUrl, getFinishUserPasskeyRegistrationUrl, getFlowDefinition, getFlowStep, getGetAuthAttemptUrl, getGetBrandingByIdUrl, getGetClaimStatusUrl, getGetEnvironmentByNameUrl, getGetEventUrl, getGetFlowDefinitionUrl, getGetFlowStepUrl, getGetGrantUrl, getGetHealthUrl, getGetLiveUrl, getGetMySessionUrl, getGetMyUserUrl, getGetProjectUrl, getGetReadyUrl, getGetReleaseByIdUrl, getGetSchemaByIdUrl, getGetSessionUrl, getGetTeamUrl, getGetUserByIDUrl, getGrant, getHealth, getInitClaimUrl, getIssueChallengeUrl, getListBrandingUrl, getListEnvironmentsUrl, getListEventsUrl, getListFlowDefinitionsUrl, getListReleasesUrl, getListSchemasUrl, getListUserPasskeysUrl, getListUserTeamsUrl, getLive, getMySession, getMyUser, getPatchProjectUrl, getProject, getQueryProjectsUrl, getQuerySessionsUrl, getQueryTeamsUrl, getQueryUsersUrl, getReady, getReleaseById, getRevokeMySessionUrl, getRevokeSessionUrl, getSchemaById, getSession, getSetUserPasswordUrl, getSubmitFlowStepUrl, getTeam, getUpdateFlowDefinitionUrl, getUpdateTeamUrl, getUserByID, getVerifyChallengeProofUrl, initClaim, issueChallenge, listBranding, listEnvironments, listEvents, listFlowDefinitions, listReleases, listSchemas, listUserPasskeys, listUserTeams, patchProject, queryProjects, querySessions, queryTeams, queryUsers, revokeMySession, revokeSession, setUserPassword, submitFlowStep, zitadelNextGen_exports as t, updateFlowDefinition, updateTeam, verifyChallengeProof };
1558
+ export { beginUserPasskeyRegistration, completeClaim, createAuthAttempt, createBranding, createFlow, createFlowDefinition, createGrant, createHandoff, createProject, createRelease, createSchema, createSession, createTeam, createUser, deleteFlowDefinition, deleteGrant, deleteTeam, deleteUserByID, exchangeHandoff, finishUserPasskeyRegistration, getAuthAttempt, getBeginUserPasskeyRegistrationUrl, getBrandingById, getClaimStatus, getClaimWindow, getCompleteClaimUrl, getCreateAuthAttemptUrl, getCreateBrandingUrl, getCreateFlowDefinitionUrl, getCreateFlowUrl, getCreateGrantUrl, getCreateHandoffUrl, getCreateProjectUrl, getCreateReleaseUrl, getCreateSchemaUrl, getCreateSessionUrl, getCreateTeamUrl, getCreateUserUrl, getDeleteFlowDefinitionUrl, getDeleteGrantUrl, getDeleteTeamUrl, getDeleteUserByIDUrl, getEnvironmentByName, getEvent, getExchangeHandoffUrl, getFinishUserPasskeyRegistrationUrl, getFlowDefinition, getFlowStep, getGetAuthAttemptUrl, getGetBrandingByIdUrl, getGetClaimStatusUrl, getGetClaimWindowUrl, getGetEnvironmentByNameUrl, getGetEventUrl, getGetFlowDefinitionUrl, getGetFlowStepUrl, getGetGrantUrl, getGetHealthUrl, getGetLiveUrl, getGetMySessionUrl, getGetMyUserUrl, getGetProjectUrl, getGetReadyUrl, getGetReleaseByIdUrl, getGetSchemaByIdUrl, getGetSessionUrl, getGetTeamUrl, getGetUserByIDUrl, getGrant, getHealth, getInitClaimUrl, getIssueChallengeUrl, getListBrandingUrl, getListEnvironmentsUrl, getListEventsUrl, getListFlowDefinitionsUrl, getListReleasesUrl, getListSchemasUrl, getListUserPasskeysUrl, getListUserTeamsUrl, getLive, getMySession, getMyUser, getPatchProjectUrl, getProject, getQueryGrantsUrl, getQueryProjectsUrl, getQuerySessionsUrl, getQueryTeamsUrl, getQueryUsersUrl, getReady, getReleaseById, getRevokeMySessionUrl, getRevokeSessionUrl, getSchemaById, getSession, getSetUserPasswordUrl, getSubmitFlowStepUrl, getTeam, getUpdateFlowDefinitionUrl, getUpdateTeamUrl, getUserByID, getVerifyChallengeProofUrl, initClaim, issueChallenge, listBranding, listEnvironments, listEvents, listFlowDefinitions, listReleases, listSchemas, listUserPasskeys, listUserTeams, patchProject, queryGrants, queryProjects, querySessions, queryTeams, queryUsers, revokeMySession, revokeSession, setUserPassword, submitFlowStep, zitadelNextGen_exports as t, updateFlowDefinition, updateTeam, verifyChallengeProof };
1488
1559
 
1489
1560
  //# sourceMappingURL=zitadelNextGen.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"zitadelNextGen.mjs","names":[],"sources":["../../../src/generated/endpoints/zitadelNextGen.ts"],"sourcesContent":["/**\n * Generated by orval v8.10.0 🍺\n * Do not edit manually.\n * Zitadel NextGen\n * This is the next generation of the Zitadel identity platform.\n * OpenAPI spec version: 0.0.1\n */\nimport { getProxyPath } from \"../../runtime/base-url\";\nimport { customFetch } from \"../../runtime/fetch\";\nimport type {\n BeginUserPasskeyRegistration201,\n BeginUserPasskeyRegistrationBody,\n CompleteClaim200,\n CompleteClaimBody,\n CreateAuthAttempt201,\n CreateAuthAttemptBody,\n CreateBranding201,\n CreateBrandingBody,\n CreateBrandingParams,\n CreateFlow201,\n CreateFlowBody,\n CreateFlowDefinition201,\n CreateFlowDefinitionBody,\n CreateGrant201,\n CreateGrantBody,\n CreateGrantParams,\n CreateHandoff200,\n CreateProject201,\n CreateProjectBody,\n CreateRelease200,\n CreateRelease201,\n CreateReleaseBody,\n CreateReleaseParams,\n CreateSchema201,\n CreateSchemaBody,\n CreateSchemaParams,\n CreateSession201,\n CreateSessionBody,\n CreateTeam201,\n CreateTeamBody,\n CreateTeamParams,\n CreateUser201,\n CreateUserBody,\n CreateUserParams,\n DeleteGrantParams,\n ExchangeHandoff200,\n ExchangeHandoffBody,\n ExchangeHandoffParams,\n FinishUserPasskeyRegistration201,\n FinishUserPasskeyRegistrationBody,\n GetAuthAttempt200,\n GetBrandingById200,\n GetClaimStatus200,\n GetClaimStatusParams,\n GetEnvironmentByName200,\n GetEnvironmentByNameParams,\n GetEvent200,\n GetEventParams,\n GetFlowDefinition200,\n GetFlowStep200,\n GetGrant200,\n GetGrantParams,\n GetHealthDefault,\n GetLiveDefault,\n GetMySession200,\n GetMyUser200,\n GetProject200,\n GetReadyDefault,\n GetReleaseById200,\n GetReleaseByIdParams,\n GetSchemaById200,\n GetSchemaByIdParams,\n GetSession200,\n GetTeam200,\n GetUserByID200,\n GetUserByIDParams,\n InitClaim201,\n IssueChallenge201,\n IssueChallengeBody,\n ListBranding200Item,\n ListBrandingParams,\n ListEnvironments200,\n ListEnvironmentsParams,\n ListEvents200,\n ListEventsParams,\n ListFlowDefinitions200,\n ListFlowDefinitionsParams,\n ListReleases200,\n ListReleasesParams,\n ListSchemas200,\n ListSchemasParams,\n ListUserPasskeys200,\n ListUserPasskeysParams,\n ListUserTeams200,\n ListUserTeamsParams,\n PatchProject200,\n PatchProjectBody,\n QueryProjects200,\n QueryProjectsBody,\n QuerySessions200,\n QuerySessionsBody,\n QuerySessionsParams,\n QueryTeams200,\n QueryTeamsBody,\n QueryTeamsParams,\n QueryUsers200,\n QueryUsersBody,\n SetUserPasswordBody,\n SubmitFlowStep200,\n SubmitFlowStepBody,\n UpdateFlowDefinition200,\n UpdateFlowDefinitionBody,\n UpdateTeam200,\n UpdateTeamBody,\n VerifyChallengeProof200,\n VerifyChallengeProofBody,\n} from \"../model\";\n\nexport const getGetHealthUrl = () => {\n return `${getProxyPath()}/healthz`;\n};\n\n/**\n * Check whether the server is healthy\n * @summary Check server health\n */\nexport const getHealth = async (options?: RequestInit): Promise<GetHealthDefault> => {\n return customFetch<GetHealthDefault>(getGetHealthUrl(), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetLiveUrl = () => {\n return `${getProxyPath()}/livez`;\n};\n\n/**\n * Check whether the server is started\n * @summary Check server liveness\n */\nexport const getLive = async (options?: RequestInit): Promise<GetLiveDefault> => {\n return customFetch<GetLiveDefault>(getGetLiveUrl(), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetReadyUrl = () => {\n return `${getProxyPath()}/readyz`;\n};\n\n/**\n * Check whether the server is ready to accept requests\n * @summary Check server readiness\n */\nexport const getReady = async (options?: RequestInit): Promise<GetReadyDefault> => {\n return customFetch<GetReadyDefault>(getGetReadyUrl(), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateUserUrl = (params: CreateUserParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/users?${stringifiedParams}`\n : `${getProxyPath()}/users`;\n};\n\n/**\n * @summary Create user\n */\nexport const createUser = async (\n createUserBody: CreateUserBody,\n params: CreateUserParams,\n options?: RequestInit,\n): Promise<CreateUser201> => {\n return customFetch<CreateUser201>(getCreateUserUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createUserBody),\n });\n};\n\nexport const getQueryUsersUrl = () => {\n return `${getProxyPath()}/users/query`;\n};\n\n/**\n * Returns the users of a project, paginated with a cursor.\n\nThe project comes from the credential, not from a parameter: the operation\nis bound to the token's own project by construction. This is why it takes\nno `project_id`, unlike the other query endpoints.\n\n * @summary Query users\n */\nexport const queryUsers = async (\n queryUsersBody: QueryUsersBody,\n options?: RequestInit,\n): Promise<QueryUsers200> => {\n return customFetch<QueryUsers200>(getQueryUsersUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(queryUsersBody),\n });\n};\n\nexport const getGetUserByIDUrl = (userId: string, params?: GetUserByIDParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/users/${userId}?${stringifiedParams}`\n : `${getProxyPath()}/users/${userId}`;\n};\n\n/**\n * @summary Get user by ID\n */\nexport const getUserByID = async (\n userId: string,\n params?: GetUserByIDParams,\n options?: RequestInit,\n): Promise<GetUserByID200> => {\n return customFetch<GetUserByID200>(getGetUserByIDUrl(userId, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getDeleteUserByIDUrl = (userId: string) => {\n return `${getProxyPath()}/users/${userId}`;\n};\n\n/**\n * @summary Delete user by ID\n */\nexport const deleteUserByID = async (userId: string, options?: RequestInit): Promise<void> => {\n return customFetch<void>(getDeleteUserByIDUrl(userId), {\n ...options,\n method: \"DELETE\",\n });\n};\n\nexport const getListUserPasskeysUrl = (userId: string, params?: ListUserPasskeysParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/users/${userId}/passkeys?${stringifiedParams}`\n : `${getProxyPath()}/users/${userId}/passkeys`;\n};\n\n/**\n * @summary List user passkeys\n */\nexport const listUserPasskeys = async (\n userId: string,\n params?: ListUserPasskeysParams,\n options?: RequestInit,\n): Promise<ListUserPasskeys200> => {\n return customFetch<ListUserPasskeys200>(getListUserPasskeysUrl(userId, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getBeginUserPasskeyRegistrationUrl = (userId: string) => {\n return `${getProxyPath()}/users/${userId}/passkeys/registrations`;\n};\n\n/**\n * Starts a WebAuthn registration ceremony for the user and returns the\ncreation options for `navigator.credentials.create()`. Complete the\nceremony with `POST /users/{user_id}/passkeys/registrations/{registration_id}` within\nfive minutes. Credentials already registered for the user are excluded\nautomatically.\n\n * @summary Begin passkey registration\n */\nexport const beginUserPasskeyRegistration = async (\n userId: string,\n beginUserPasskeyRegistrationBody: BeginUserPasskeyRegistrationBody,\n options?: RequestInit,\n): Promise<BeginUserPasskeyRegistration201> => {\n return customFetch<BeginUserPasskeyRegistration201>(getBeginUserPasskeyRegistrationUrl(userId), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(beginUserPasskeyRegistrationBody),\n });\n};\n\nexport const getFinishUserPasskeyRegistrationUrl = (userId: string, registrationId: string) => {\n return `${getProxyPath()}/users/${userId}/passkeys/registrations/${registrationId}`;\n};\n\n/**\n * Verifies the attestation against the ceremony started by\n`POST /users/{user_id}/passkeys/registrations` and persists the new credential. A\nrejected attestation counts against the ceremony's failure budget and the\nceremony stays open for a retry. An expired ceremony surfaces as\n`att.stale_challenge`; an unknown or already-consumed registration id\nsurfaces as `att.not_found`.\n\n * @summary Finish passkey registration\n */\nexport const finishUserPasskeyRegistration = async (\n userId: string,\n registrationId: string,\n finishUserPasskeyRegistrationBody: FinishUserPasskeyRegistrationBody,\n options?: RequestInit,\n): Promise<FinishUserPasskeyRegistration201> => {\n return customFetch<FinishUserPasskeyRegistration201>(\n getFinishUserPasskeyRegistrationUrl(userId, registrationId),\n {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(finishUserPasskeyRegistrationBody),\n },\n );\n};\n\nexport const getSetUserPasswordUrl = (userId: string) => {\n return `${getProxyPath()}/users/${userId}/password`;\n};\n\n/**\n * @summary Set user password\n */\nexport const setUserPassword = async (\n userId: string,\n setUserPasswordBody: SetUserPasswordBody,\n options?: RequestInit,\n): Promise<void> => {\n return customFetch<void>(getSetUserPasswordUrl(userId), {\n ...options,\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(setUserPasswordBody),\n });\n};\n\nexport const getListUserTeamsUrl = (userId: string, params?: ListUserTeamsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/users/${userId}/teams?${stringifiedParams}`\n : `${getProxyPath()}/users/${userId}/teams`;\n};\n\n/**\n * The user's team roster, ordered by team name. Each entry carries the\nteam's name, so a client renders a page without resolving ids one by one.\n\nThis is the N:N roster and it is not lifecycle ownership: the single team\nthat owns the user's lifecycle is reported as `metadata.lifecycle_owner_team_id`\non the user read endpoints. Memberships the user was removed from are not\nreturned.\n\n * @summary List the teams a user belongs to\n */\nexport const listUserTeams = async (\n userId: string,\n params?: ListUserTeamsParams,\n options?: RequestInit,\n): Promise<ListUserTeams200> => {\n return customFetch<ListUserTeams200>(getListUserTeamsUrl(userId, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetMyUserUrl = () => {\n return `${getProxyPath()}/users/me`;\n};\n\n/**\n * @summary Get my user information\n */\nexport const getMyUser = async (options?: RequestInit): Promise<GetMyUser200> => {\n return customFetch<GetMyUser200>(getGetMyUserUrl(), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateFlowUrl = () => {\n return `${getProxyPath()}/flow`;\n};\n\n/**\n * Resolves a flow definition based on purpose + audience context and returns\nthe first capability step. Creates a new session implicitly unless\n`session_id` is provided (for step-up / reauth on an existing session).\n\nThe response contains an `id` field — the flow handle. Use it as the path\nparameter for all subsequent `/flow/{id}/submit` calls.\n\nThe response also sets an encrypted `HttpOnly` cookie (`_zflow`) containing\nthe flow's orchestration state (current step, collected data, history).\nThe server is stateless between requests — all flow state lives in this\ncookie. The browser sends it automatically on subsequent requests.\n\n * @summary Start a new flow\n */\nexport const createFlow = async (\n createFlowBody: CreateFlowBody,\n options?: RequestInit,\n): Promise<CreateFlow201> => {\n return customFetch<CreateFlow201>(getCreateFlowUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createFlowBody),\n });\n};\n\nexport const getGetFlowStepUrl = (id: string) => {\n return `${getProxyPath()}/flow/${id}`;\n};\n\n/**\n * Returns the current capability step without advancing the state machine.\nUseful for page reloads or re-rendering after a network error.\n\n * @summary Get current step (re-render)\n */\nexport const getFlowStep = async (id: string, options?: RequestInit): Promise<GetFlowStep200> => {\n return customFetch<GetFlowStep200>(getGetFlowStepUrl(id), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getSubmitFlowStepUrl = (id: string) => {\n return `${getProxyPath()}/flow/${id}/submit`;\n};\n\n/**\n * Submits user input for the current step. The server validates,\nprocesses (e.g., verifies a credential), advances the state machine\nthrough any invisible steps, and returns the next visible step.\n\nThe response sets an updated encrypted `HttpOnly` cookie (`_zflow`)\nwith the new flow state. The server is stateless — all orchestration\nstate is carried in this cookie between requests.\n\n**Important:** The `id` in the response may differ from the `id` used in\nthe request. This happens when a flow pivots (pushes a new flow onto the\nstack) or when a stacked flow completes (auto-pops to the parent flow).\nAlways use the `id` from the latest response for the next request.\n\n## Flow completion\n\nWhen `step.type` is `complete`, the flow is terminal. The `step.behavior`\nfield tells the frontend what to do:\n\n| `behavior` | Action |\n|------------- |------------------------------------------------------------|\n| `redirect` | Navigate to `redirect_uri` (OIDC/SAML auth request done). |\n| `show` | Render the step as a success screen (e.g., registration). |\n\nA `complete` step is only returned when the **entire flow stack** is done.\nIf a stacked flow (e.g., recovery pivoted from login) finishes, the server\nauto-pops to the parent flow and returns the parent's next step — the\nfrontend never sees a `complete` for intermediate flows.\n\n * @summary Submit step data and advance\n */\nexport const submitFlowStep = async (\n id: string,\n submitFlowStepBody: SubmitFlowStepBody,\n options?: RequestInit,\n): Promise<SubmitFlowStep200> => {\n return customFetch<SubmitFlowStep200>(getSubmitFlowStepUrl(id), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(submitFlowStepBody),\n });\n};\n\nexport const getCreateAuthAttemptUrl = () => {\n return `${getProxyPath()}/auth_attempts`;\n};\n\n/**\n * Starts a new authentication attempt. This is the entry point for the auth_attempts state machine.\n\nAn attempt is an ephemeral (15-minute TTL) state machine that drives a single authentication round.\nIt accepts factor challenges, verifies proofs, and completes into a session or handoff token.\n\nAccepts a project_id and challenge_nonce (from POST /bootstrap/challenge). For step-up re-auth,\nalso include session_id to add factors to an existing session.\n\n * @summary Create a new authentication attempt\n */\nexport const createAuthAttempt = async (\n createAuthAttemptBody: CreateAuthAttemptBody,\n options?: RequestInit,\n): Promise<CreateAuthAttempt201> => {\n return customFetch<CreateAuthAttempt201>(getCreateAuthAttemptUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createAuthAttemptBody),\n });\n};\n\nexport const getGetAuthAttemptUrl = (attemptId: string) => {\n return `${getProxyPath()}/auth_attempts/${attemptId}`;\n};\n\n/**\n * Polls the current state of an authentication attempt.\n\nReturns the attempt's state, available factors for the next challenge,\nchallenges issued so far, and any errors preventing progress.\n\nUse this for polling during long-running factor verifications (e.g., waiting for\na federated IdP callback or a device flow).\n\n * @summary Get authentication attempt state\n */\nexport const getAuthAttempt = async (\n attemptId: string,\n options?: RequestInit,\n): Promise<GetAuthAttempt200> => {\n return customFetch<GetAuthAttempt200>(getGetAuthAttemptUrl(attemptId), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getIssueChallengeUrl = (attemptId: string) => {\n return `${getProxyPath()}/auth_attempts/${attemptId}/challenges`;\n};\n\n/**\n * Issues a single-factor verification challenge within an auth attempt.\n\nThis advances the authentication state machine by requesting a specific factor method\n(password, passkey, TOTP, OTP via SMS, etc.). The server responds with challenge details\nincluding method, metadata, and any UI hints. The client then verifies the proof\nby calling POST /auth_attempts/{attempt_id}/challenges/{challenge_id}/verify.\n\n * @summary Issue a factor challenge\n */\nexport const issueChallenge = async (\n attemptId: string,\n issueChallengeBody: IssueChallengeBody,\n options?: RequestInit,\n): Promise<IssueChallenge201> => {\n return customFetch<IssueChallenge201>(getIssueChallengeUrl(attemptId), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(issueChallengeBody),\n });\n};\n\nexport const getVerifyChallengeProofUrl = (attemptId: string, challengeId: string) => {\n return `${getProxyPath()}/auth_attempts/${attemptId}/challenges/${challengeId}/verify`;\n};\n\n/**\n * Submits a proof (credential, code, assertion) to verify a factor challenge.\n\nThe proof format depends on the challenge method. For example:\n- `password` method: { password: \"…\" }\n- `totp` method: { totp: { code: \"123456\" } }\n- `passkey` method: { passkey: { assertion: \"…\" } }\n- `recovery_code` method: { recovery_code: \"…\" }\n\nOn successful verification, the factor is written to the auth attempt.\nThe attempt moves to the next pending challenge or completes if all required factors are verified.\n\n * @summary Verify a factor proof\n */\nexport const verifyChallengeProof = async (\n attemptId: string,\n challengeId: string,\n verifyChallengeProofBody: VerifyChallengeProofBody,\n options?: RequestInit,\n): Promise<VerifyChallengeProof200> => {\n return customFetch<VerifyChallengeProof200>(getVerifyChallengeProofUrl(attemptId, challengeId), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(verifyChallengeProofBody),\n });\n};\n\nexport const getCreateHandoffUrl = (attemptId: string) => {\n return `${getProxyPath()}/auth_attempts/${attemptId}/handoff`;\n};\n\n/**\n * Completes the authentication attempt and mints a `handoff_token`.\n\nCall this after all required factors have been verified and the attempt is in `completed` state.\nThe handoff token is short-lived (≤60 seconds) and must be exchanged at\nPOST /sessions/exchange to receive the final session and session_token.\n\nThe handoff token is:\n- Single-use (atomic exchange, no retry)\n- Audience-bound (requires matching project key for exchange)\n- Idempotency-safe within a 5-minute window (see conventions)\n\n * @summary Complete authentication and create handoff token\n */\nexport const createHandoff = async (\n attemptId: string,\n options?: RequestInit,\n): Promise<CreateHandoff200> => {\n return customFetch<CreateHandoff200>(getCreateHandoffUrl(attemptId), {\n ...options,\n method: \"POST\",\n });\n};\n\nexport const getCreateProjectUrl = () => {\n return `${getProxyPath()}/projects`;\n};\n\n/**\n * @summary Create project\n */\nexport const createProject = async (\n createProjectBody: CreateProjectBody,\n options?: RequestInit,\n): Promise<CreateProject201> => {\n return customFetch<CreateProject201>(getCreateProjectUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createProjectBody),\n });\n};\n\nexport const getQueryProjectsUrl = () => {\n return `${getProxyPath()}/projects/query`;\n};\n\n/**\n * @summary Query projects\n */\nexport const queryProjects = async (\n queryProjectsBody: QueryProjectsBody,\n options?: RequestInit,\n): Promise<QueryProjects200> => {\n return customFetch<QueryProjects200>(getQueryProjectsUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(queryProjectsBody),\n });\n};\n\nexport const getGetProjectUrl = (projectId: string) => {\n return `${getProxyPath()}/projects/${projectId}`;\n};\n\n/**\n * Returns the current state of a project.\n\n * @summary Get project\n */\nexport const getProject = async (\n projectId: string,\n options?: RequestInit,\n): Promise<GetProject200> => {\n return customFetch<GetProject200>(getGetProjectUrl(projectId), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getPatchProjectUrl = (projectId: string) => {\n return `${getProxyPath()}/projects/${projectId}`;\n};\n\n/**\n * Updates the state of a project.\n\n * @summary Update project\n */\nexport const patchProject = async (\n projectId: string,\n patchProjectBody: PatchProjectBody,\n options?: RequestInit,\n): Promise<PatchProject200> => {\n return customFetch<PatchProject200>(getPatchProjectUrl(projectId), {\n ...options,\n method: \"PATCH\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(patchProjectBody),\n });\n};\n\nexport const getInitClaimUrl = (projectId: string) => {\n return `${getProxyPath()}/projects/${projectId}/claim/init`;\n};\n\n/**\n * Starts a claim challenge for an unclaimed project. Authenticated by the\nproject secret, this mints a single-use, short-lived challenge and returns\nthe `claim_url` the developer opens in a browser to complete the claim,\ntogether with the `challenge_id` the CLI polls with. The exact expiry is\ncarried by `expires_at` on the response.\n\n * @summary Initialize a project claim\n */\nexport const initClaim = async (\n projectId: string,\n options?: RequestInit,\n): Promise<InitClaim201> => {\n return customFetch<InitClaim201>(getInitClaimUrl(projectId), {\n ...options,\n method: \"POST\",\n });\n};\n\nexport const getGetClaimStatusUrl = (projectId: string, params: GetClaimStatusParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/projects/${projectId}/claim/status?${stringifiedParams}`\n : `${getProxyPath()}/projects/${projectId}/claim/status`;\n};\n\n/**\n * Polled by the CLI while a browser completes the claim. Authorized by the\nproject secret that initiated the challenge. Returns `pending`, or\n`completed` with the owning team, the claim timestamp, and the dashboard\nURL once the browser leg has finished.\n\n * @summary Get claim status\n */\nexport const getClaimStatus = async (\n projectId: string,\n params: GetClaimStatusParams,\n options?: RequestInit,\n): Promise<GetClaimStatus200> => {\n return customFetch<GetClaimStatus200>(getGetClaimStatusUrl(projectId, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCompleteClaimUrl = (projectId: string) => {\n return `${getProxyPath()}/projects/${projectId}/claim/complete`;\n};\n\n/**\n * Called by the browser after the developer authenticates on the claim page.\nAuthenticated by the `__nextgen_session` cookie, it attaches the project to\nthe developer's personal team using the `challenge_id` from the claim URL as\nits single-use, browser-safe authorization.\n\n * @summary Complete a project claim\n */\nexport const completeClaim = async (\n projectId: string,\n completeClaimBody: CompleteClaimBody,\n options?: RequestInit,\n): Promise<CompleteClaim200> => {\n return customFetch<CompleteClaim200>(getCompleteClaimUrl(projectId), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(completeClaimBody),\n });\n};\n\nexport const getCreateSessionUrl = () => {\n return `${getProxyPath()}/sessions`;\n};\n\n/**\n * Creates an anonymous session shell with no user and no factors (`state: building`).\n\nThis is optional — an `auth_attempt` will create a session implicitly if none is provided.\nUse this explicitly when you want to:\n- Pre-allocate a `session_id` before the user is known, so device/telemetry signals\n can be correlated with the eventual authenticated session from the start.\n- Track anonymous state (bot detection, device fingerprint) that survives until authentication.\n\nCreating a session is an app-plane operation on the project credential\n(`session.write`). The returned `session_token` is a session credential for the\nend-user client, not a management scope: it is delivered as the\n`__nextgen_session` cookie and authorises the self-service operations\n`GET /sessions/me` and `DELETE /sessions/me` (`nextgenSession` scheme). The\nby-id operations `GET /sessions/{session_id}` and `DELETE /sessions/{session_id}`\nare operator endpoints and require `session.read` / `session.delete` instead.\n\nThe `session_token` is superseded when a handoff exchange completes — clients must\nreplace it at that point.\n\nAnonymous sessions expire aggressively (10-minute TTL). The TTL resets to the configured\nfull session TTL when the first authentication factor is written via a completing `auth_attempt`.\n\n * @summary Create an anonymous session shell\n */\nexport const createSession = async (\n createSessionBody: CreateSessionBody,\n options?: RequestInit,\n): Promise<CreateSession201> => {\n return customFetch<CreateSession201>(getCreateSessionUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createSessionBody),\n });\n};\n\nexport const getQuerySessionsUrl = (params: QuerySessionsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/sessions/query?${stringifiedParams}`\n : `${getProxyPath()}/sessions/query`;\n};\n\n/**\n * Returns the sessions of a project, paginated with a cursor.\nSessions of every lifecycle state are returned; each carries its `state`.\nRequires `session.read` permission.\n\n * @summary Query sessions\n */\nexport const querySessions = async (\n querySessionsBody: QuerySessionsBody,\n params: QuerySessionsParams,\n options?: RequestInit,\n): Promise<QuerySessions200> => {\n return customFetch<QuerySessions200>(getQuerySessionsUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(querySessionsBody),\n });\n};\n\nexport const getExchangeHandoffUrl = (params: ExchangeHandoffParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/sessions/exchange?${stringifiedParams}`\n : `${getProxyPath()}/sessions/exchange`;\n};\n\n/**\n * Consumes a one-time `handoff_token` minted by `POST /auth_attempts/{id}/handoff`\nand returns the resulting session and a `session_token`.\n\nThe server resolves the originating `auth_attempt` from the token and then:\n\n| Originating auth_attempt | Outcome |\n|---|---|\n| No `session_id` | A new authenticated session is **created**. |\n| `session_id` points to an anonymous shell | Existing session is **upgraded** — user and factors written in, TTL reset to full session TTL. |\n| `session_id` points to an active session (step-up) | Existing session is **upgraded** — new factors merged, `assurance_levels[]` expanded. |\n\nThe response shape is identical in all three cases.\n\nThe `session_token` supersedes any previously issued `session_token` for the same session.\nClients must replace their stored token at this point.\n\nRequires a project service key (OAuth2 client credentials).\n\n * @summary Exchange handoff token for a session\n */\nexport const exchangeHandoff = async (\n exchangeHandoffBody: ExchangeHandoffBody,\n params: ExchangeHandoffParams,\n options?: RequestInit,\n): Promise<ExchangeHandoff200> => {\n return customFetch<ExchangeHandoff200>(getExchangeHandoffUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(exchangeHandoffBody),\n });\n};\n\nexport const getGetSessionUrl = (sessionId: string) => {\n return `${getProxyPath()}/sessions/${sessionId}`;\n};\n\n/**\n * Returns the current state of a session including its factors and all currently\nsatisfied assurance levels.\n\n`assurance_levels[]` may shrink over time as factor freshness windows expire,\nwithout the session itself expiring. Use step-up authentication (a new `auth_attempt`\nagainst the same `session_id`) to restore a dropped assurance level.\n\n * @summary Get session state\n */\nexport const getSession = async (\n sessionId: string,\n options?: RequestInit,\n): Promise<GetSession200> => {\n return customFetch<GetSession200>(getGetSessionUrl(sessionId), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getRevokeSessionUrl = (sessionId: string) => {\n return `${getProxyPath()}/sessions/${sessionId}`;\n};\n\n/**\n * Permanently deletes the session, terminating it immediately.\n\nThis is the operator revoke path and requires the `session.delete` scope on a\nproject-bound credential. End-user logout with the `__nextgen_session` cookie is\n`DELETE /sessions/me` (`nextgenSession` scheme).\n\nIdempotent: deleting a session that does not exist (or was already deleted)\nstill returns 204. After deletion, any tokens derived from the session are\ninvalidated.\n\n * @summary Revoke session\n */\nexport const revokeSession = async (sessionId: string, options?: RequestInit): Promise<void> => {\n return customFetch<void>(getRevokeSessionUrl(sessionId), {\n ...options,\n method: \"DELETE\",\n });\n};\n\nexport const getGetMySessionUrl = () => {\n return `${getProxyPath()}/sessions/me`;\n};\n\n/**\n * Returns the current state of the current session including its factors and all currently\nsatisfied assurance levels.\n\n`assurance_levels[]` may shrink over time as factor freshness windows expire,\nwithout the session itself expiring. Use step-up authentication (a new `auth_attempt`\nagainst the same `session_id`) to restore a dropped assurance level.\n\n * @summary Get my session state\n */\nexport const getMySession = async (options?: RequestInit): Promise<GetMySession200> => {\n return customFetch<GetMySession200>(getGetMySessionUrl(), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getRevokeMySessionUrl = () => {\n return `${getProxyPath()}/sessions/me`;\n};\n\n/**\n * Logs out by permanently deleting the session.\n\nThe `__nextgen_session` cookie issued at creation (or superseded by a handoff\nexchange) is required. Idempotent: if the session is already gone this still\nreturns 204. Any tokens derived from the session are invalidated, and the\ncookie itself is cleared in the response.\n\n * @summary Revoke my session\n */\nexport const revokeMySession = async (options?: RequestInit): Promise<void> => {\n return customFetch<void>(getRevokeMySessionUrl(), {\n ...options,\n method: \"DELETE\",\n });\n};\n\nexport const getCreateSchemaUrl = (params: CreateSchemaParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/schemas?${stringifiedParams}`\n : `${getProxyPath()}/schemas`;\n};\n\n/**\n * Create a new schema. The optional `$id` field is the JSON Schema document\nURI used to identify the schema in future requests (GitOps-stable identity,\nnot a free-form resource primary key). When `$id` is omitted, the server\ngenerates a `sch_*` URL. When provided, `$id` must be unique within the\nproject and should ideally be a valid URI pointing at where the schema can\nbe accessed.\n\nThe schema can either be a concrete schema, e.g. a user schema, or a\nschema-url which will be resolved by the server.\n\n * @summary Create new schema\n */\nexport const createSchema = async (\n createSchemaBody: CreateSchemaBody,\n params: CreateSchemaParams,\n options?: RequestInit,\n): Promise<CreateSchema201> => {\n return customFetch<CreateSchema201>(getCreateSchemaUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createSchemaBody),\n });\n};\n\nexport const getListSchemasUrl = (params: ListSchemasParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/schemas?${stringifiedParams}`\n : `${getProxyPath()}/schemas`;\n};\n\n/**\n * Retrieve a list of all schemas available in the system. This endpoint\nsupports pagination and filtering based on schema attributes.\n\n * @summary List all schemas\n */\nexport const listSchemas = async (\n params: ListSchemasParams,\n options?: RequestInit,\n): Promise<ListSchemas200> => {\n return customFetch<ListSchemas200>(getListSchemasUrl(params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetSchemaByIdUrl = (id: string, params?: GetSchemaByIdParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/schemas/${id}?${stringifiedParams}`\n : `${getProxyPath()}/schemas/${id}`;\n};\n\n/**\n * Get a schema by its ID. A schema ID identifies one immutable revision, so\nthis returns exactly that revision. To find the current revision of an\nobject type, list with `revisions=latest`.\n\n * @summary Get schema by ID\n */\nexport const getSchemaById = async (\n id: string,\n params?: GetSchemaByIdParams,\n options?: RequestInit,\n): Promise<GetSchemaById200> => {\n return customFetch<GetSchemaById200>(getGetSchemaByIdUrl(id, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateFlowDefinitionUrl = () => {\n return `${getProxyPath()}/flow_definitions`;\n};\n\n/**\n * Creates a new flow definition.\nFlow definitions are templates that define the sequence of steps (capabilities)\nfor a particular user journey (e.g., registration, login, password reset).\n\nFlow definitions are created based on the flow definition schema, which includes the flow's purpose, audience, and the steps involved.\n\n * @summary Create a new flow definition\n */\nexport const createFlowDefinition = async (\n createFlowDefinitionBody: CreateFlowDefinitionBody,\n options?: RequestInit,\n): Promise<CreateFlowDefinition201> => {\n return customFetch<CreateFlowDefinition201>(getCreateFlowDefinitionUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createFlowDefinitionBody),\n });\n};\n\nexport const getListFlowDefinitionsUrl = (params: ListFlowDefinitionsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/flow_definitions?${stringifiedParams}`\n : `${getProxyPath()}/flow_definitions`;\n};\n\n/**\n * Retrieves a list of all flow definitions.\nThis endpoint can be used to view existing flow definitions and their configurations.\n\n * @summary List flow definitions\n */\nexport const listFlowDefinitions = async (\n params: ListFlowDefinitionsParams,\n options?: RequestInit,\n): Promise<ListFlowDefinitions200> => {\n return customFetch<ListFlowDefinitions200>(getListFlowDefinitionsUrl(params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetFlowDefinitionUrl = (id: string) => {\n return `${getProxyPath()}/flow_definitions/${id}`;\n};\n\n/**\n * Get a flow definition by id\n * @summary Get a flow definition by id\n */\nexport const getFlowDefinition = async (\n id: string,\n options?: RequestInit,\n): Promise<GetFlowDefinition200> => {\n return customFetch<GetFlowDefinition200>(getGetFlowDefinitionUrl(id), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getUpdateFlowDefinitionUrl = (id: string) => {\n return `${getProxyPath()}/flow_definitions/${id}`;\n};\n\n/**\n * Update a flow definition by id. This endpoint replaces the existing flow definition.\nIf `flow_definition.status` is omitted, the current status is preserved\n\n * @summary Update a flow definition by id\n */\nexport const updateFlowDefinition = async (\n id: string,\n updateFlowDefinitionBody: UpdateFlowDefinitionBody,\n options?: RequestInit,\n): Promise<UpdateFlowDefinition200> => {\n return customFetch<UpdateFlowDefinition200>(getUpdateFlowDefinitionUrl(id), {\n ...options,\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(updateFlowDefinitionBody),\n });\n};\n\nexport const getDeleteFlowDefinitionUrl = (id: string) => {\n return `${getProxyPath()}/flow_definitions/${id}`;\n};\n\n/**\n * Delete a flow definition by id.\nIf the flow definition is currently being used by a flow, the deletion will fail.\nIf the flow definition is the last active flow definition for a given purpose, the deletion will fail to prevent disruption of new flows being started for that purpose.\n\n * @summary Delete a flow definition by id\n */\nexport const deleteFlowDefinition = async (id: string, options?: RequestInit): Promise<void> => {\n return customFetch<void>(getDeleteFlowDefinitionUrl(id), {\n ...options,\n method: \"DELETE\",\n });\n};\n\nexport const getCreateTeamUrl = (params: CreateTeamParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/teams?${stringifiedParams}`\n : `${getProxyPath()}/teams`;\n};\n\n/**\n * @summary Create team\n */\nexport const createTeam = async (\n createTeamBody: CreateTeamBody,\n params: CreateTeamParams,\n options?: RequestInit,\n): Promise<CreateTeam201> => {\n return customFetch<CreateTeam201>(getCreateTeamUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createTeamBody),\n });\n};\n\nexport const getQueryTeamsUrl = (params: QueryTeamsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/teams/query?${stringifiedParams}`\n : `${getProxyPath()}/teams/query`;\n};\n\n/**\n * Returns the teams of a project, paginated with a cursor.\n\n * @summary Query teams\n */\nexport const queryTeams = async (\n queryTeamsBody: QueryTeamsBody,\n params: QueryTeamsParams,\n options?: RequestInit,\n): Promise<QueryTeams200> => {\n return customFetch<QueryTeams200>(getQueryTeamsUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(queryTeamsBody),\n });\n};\n\nexport const getGetTeamUrl = (teamId: string) => {\n return `${getProxyPath()}/teams/${teamId}`;\n};\n\n/**\n * Returns a Team by its id.\n\n * @summary Get team\n */\nexport const getTeam = async (teamId: string, options?: RequestInit): Promise<GetTeam200> => {\n return customFetch<GetTeam200>(getGetTeamUrl(teamId), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getDeleteTeamUrl = (teamId: string) => {\n return `${getProxyPath()}/teams/${teamId}`;\n};\n\n/**\n * Deactivates the team.\n\nThe team is tombstoned rather than erased: it stays readable through\ngetTeam with status `deactivated`. Its memberships are removed and the\nusers whose lifecycle it owns are deactivated with it.\n\nThe request is idempotent. Deleting a team that is already deactivated\nor doesn't exist succeeds without changing anything.\n\n * @summary Delete team\n */\nexport const deleteTeam = async (teamId: string, options?: RequestInit): Promise<void> => {\n return customFetch<void>(getDeleteTeamUrl(teamId), {\n ...options,\n method: \"DELETE\",\n });\n};\n\nexport const getUpdateTeamUrl = (teamId: string) => {\n return `${getProxyPath()}/teams/${teamId}`;\n};\n\n/**\n * Update team. Only active teams can be updated.\n\n * @summary Update team\n */\nexport const updateTeam = async (\n teamId: string,\n updateTeamBody: UpdateTeamBody,\n options?: RequestInit,\n): Promise<UpdateTeam200> => {\n return customFetch<UpdateTeam200>(getUpdateTeamUrl(teamId), {\n ...options,\n method: \"PATCH\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(updateTeamBody),\n });\n};\n\nexport const getListEnvironmentsUrl = (params: ListEnvironmentsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/environments?${stringifiedParams}`\n : `${getProxyPath()}/environments`;\n};\n\n/**\n * Lists the project's environments ordered by name.\n\n * @summary List environments\n */\nexport const listEnvironments = async (\n params: ListEnvironmentsParams,\n options?: RequestInit,\n): Promise<ListEnvironments200> => {\n return customFetch<ListEnvironments200>(getListEnvironmentsUrl(params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetEnvironmentByNameUrl = (name: string, params: GetEnvironmentByNameParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/environments/${name}?${stringifiedParams}`\n : `${getProxyPath()}/environments/${name}`;\n};\n\n/**\n * Reads one environment of the project by its name.\n\nThe lookup is scoped to the project in `project_id`: a name that exists in\nanother project answers `env.not_found` exactly as an unused name does.\n\n * @summary Get an environment by name\n */\nexport const getEnvironmentByName = async (\n name: string,\n params: GetEnvironmentByNameParams,\n options?: RequestInit,\n): Promise<GetEnvironmentByName200> => {\n return customFetch<GetEnvironmentByName200>(getGetEnvironmentByNameUrl(name, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateBrandingUrl = (params: CreateBrandingParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/branding?${stringifiedParams}`\n : `${getProxyPath()}/branding`;\n};\n\n/**\n * Publishes a new immutable branding revision for the project. Branding\nrevisions cannot be updated or deleted; every edit publishes a new\nrevision, and flow responses resolve the latest revision per project\n(see ADR 040).\n\nThe `liquid_template` is validated lexically on save (size, encoding,\nbanned patterns such as `<script>` tags, inline event handlers, and the\n`| raw` filter). Authoritative LiquidJS validation runs at authoring\ntime via `zitadel plan` / `zitadel apply`.\n\n * @summary Publish a new branding revision\n */\nexport const createBranding = async (\n createBrandingBody: CreateBrandingBody,\n params: CreateBrandingParams,\n options?: RequestInit,\n): Promise<CreateBranding201> => {\n return customFetch<CreateBranding201>(getCreateBrandingUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createBrandingBody),\n });\n};\n\nexport const getListBrandingUrl = (params: ListBrandingParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/branding?${stringifiedParams}`\n : `${getProxyPath()}/branding`;\n};\n\n/**\n * Lists branding revisions for the project, newest first, capped at the\n100 most recent. The first entry is the revision flow responses\ncurrently resolve. Deliberately unpaginated in v1 — list endpoints\ngain a real query mechanism together (ADR 031); advertising pagination\nparameters the server ignores would be worse than none.\n\n * @summary List branding revisions\n */\nexport const listBranding = async (\n params: ListBrandingParams,\n options?: RequestInit,\n): Promise<ListBranding200Item[]> => {\n return customFetch<ListBranding200Item[]>(getListBrandingUrl(params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetBrandingByIdUrl = (id: string) => {\n return `${getProxyPath()}/branding/${id}`;\n};\n\n/**\n * Retrieves a single branding revision, including its stored configuration.\n * @summary Get a branding revision by ID\n */\nexport const getBrandingById = async (\n id: string,\n options?: RequestInit,\n): Promise<GetBrandingById200> => {\n return customFetch<GetBrandingById200>(getGetBrandingByIdUrl(id), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateReleaseUrl = (params: CreateReleaseParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/releases?${stringifiedParams}`\n : `${getProxyPath()}/releases`;\n};\n\n/**\n * Bundles a release from revisions that already exist, supplied as\n`(kind, revision_id)` pairs. No new revisions are allocated — use the\nper-kind create endpoints for that, then pin the ids here.\n\nEvery referenced `revision_id` must exist in the project. Each one's handle\nis read from the revision itself and recorded on the release, so a resource\nis always pinned under the identity it declares.\n\nCreating a release does not deploy it. A release is environment-agnostic\nand the same release can later be deployed to any number of environments\nunchanged.\n\nIdempotent on the pinned set: metadata is excluded from the comparison, so\nre-submitting the same revisions with a different `message` returns the\nrelease that already pins them rather than creating a second one.\n\n * @summary Create a release\n */\nexport const createRelease = async (\n createReleaseBody: CreateReleaseBody,\n params: CreateReleaseParams,\n options?: RequestInit,\n): Promise<CreateRelease200 | CreateRelease201> => {\n return customFetch<CreateRelease200 | CreateRelease201>(getCreateReleaseUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createReleaseBody),\n });\n};\n\nexport const getListReleasesUrl = (params: ListReleasesParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/releases?${stringifiedParams}`\n : `${getProxyPath()}/releases`;\n};\n\n/**\n * Lists the project's releases, newest first.\n\nEntries carry metadata only — the pinned set is omitted. Read one release\nwith `GET /releases/{release_id}` to get its pointers.\n\n * @summary List releases\n */\nexport const listReleases = async (\n params: ListReleasesParams,\n options?: RequestInit,\n): Promise<ListReleases200> => {\n return customFetch<ListReleases200>(getListReleasesUrl(params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetReleaseByIdUrl = (releaseId: string, params: GetReleaseByIdParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/releases/${releaseId}?${stringifiedParams}`\n : `${getProxyPath()}/releases/${releaseId}`;\n};\n\n/**\n * Reads one release: its metadata and the `(kind, handle, revision_id)`\ntuples it pins.\n\nDoes not embed resource content. Resolve each `revision_id` through the\nper-kind read endpoints when the bytes are needed.\n\nThe lookup is scoped to the project in `project_id`: a release id belonging\nto another project answers not found exactly as an unknown id does, so the\nendpoint cannot be used to probe for releases in projects the caller cannot\nread.\n\n * @summary Get a release by id\n */\nexport const getReleaseById = async (\n releaseId: string,\n params: GetReleaseByIdParams,\n options?: RequestInit,\n): Promise<GetReleaseById200> => {\n return customFetch<GetReleaseById200>(getGetReleaseByIdUrl(releaseId, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateGrantUrl = (params: CreateGrantParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/grants?${stringifiedParams}`\n : `${getProxyPath()}/grants`;\n};\n\n/**\n * Bind a user or team to `project.viewer`, `project.editor`, or\n`project.admin` on the project identified by the `project-id` header.\nIDs are `asgn_<opaque>`. Owning-team (`project.team`) grants are not\ncreated here — claim owns that path. An unrevoked grant with the same\nprincipal and relation occupies the unique key even after `expires_at`;\nDELETE it before re-creating.\n\n * @summary Create grant\n */\nexport const createGrant = async (\n createGrantBody: CreateGrantBody,\n params: CreateGrantParams,\n options?: RequestInit,\n): Promise<CreateGrant201> => {\n return customFetch<CreateGrant201>(getCreateGrantUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createGrantBody),\n });\n};\n\nexport const getGetGrantUrl = (id: string, params: GetGrantParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/grants/${id}?${stringifiedParams}`\n : `${getProxyPath()}/grants/${id}`;\n};\n\n/**\n * Loads a grant by `(project_id, id)` that this API manages (user or team\nbound to viewer, editor, or admin) and that has not been revoked.\n\"Active\" here means not revoked: expired grants stay visible so the\nclient can DELETE before re-granting the same binding. Authorization\nstill ignores expired grants. Grants are not registered in\n`resource_scope_index`; project scope is required on the query (same as\nevents). Misses, revoked rows, project-secret setup (`sk_proj`),\nowning-team (`relation=team`) rows, and cross-project ids return 404.\n\n * @summary Get grant\n */\nexport const getGrant = async (\n id: string,\n params: GetGrantParams,\n options?: RequestInit,\n): Promise<GetGrant200> => {\n return customFetch<GetGrant200>(getGetGrantUrl(id, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getDeleteGrantUrl = (id: string, params: DeleteGrantParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/grants/${id}?${stringifiedParams}`\n : `${getProxyPath()}/grants/${id}`;\n};\n\n/**\n * Soft-revokes a grant this API manages and emits `authz.revoked`.\nAlready-revoked, missing, project-secret setup, and owning-team grants\nreturn 404. The row is not un-revoked. Expired grants can still be\nrevoked so the unique binding can be reused.\n\n * @summary Revoke grant\n */\nexport const deleteGrant = async (\n id: string,\n params: DeleteGrantParams,\n options?: RequestInit,\n): Promise<void> => {\n return customFetch<void>(getDeleteGrantUrl(id, params), {\n ...options,\n method: \"DELETE\",\n });\n};\n\nexport const getListEventsUrl = (params: ListEventsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n const explodeParameters = [\"category\", \"event_type\"];\n\n if (Array.isArray(value) && explodeParameters.includes(key)) {\n value.forEach((v) => {\n normalizedParams.append(key, v === null ? \"null\" : v.toString());\n });\n return;\n }\n\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/events?${stringifiedParams}`\n : `${getProxyPath()}/events`;\n};\n\n/**\n * Returns project-scoped audit events, newest-first by keyset on\n`(created_at, id)` (ADR 027 / ADR 049). Pass `order=asc` for oldest-first.\nRequires `events.read`.\n\nPre-claim projects return an empty list (events are stored but not\nvisible until claim succeeds). Team-scoped credentials see only events\nwhose emit-time `team_id` matches the credential team (enforced when\nteam-scoped tokens exist).\n\nClients discriminate each item via `event_type` (OpenAPI Event oneOf) —\nsee docs/design/api/events-catalog.md.\n\n * @summary List events\n */\nexport const listEvents = async (\n params: ListEventsParams,\n options?: RequestInit,\n): Promise<ListEvents200> => {\n return customFetch<ListEvents200>(getListEventsUrl(params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetEventUrl = (id: string, params: GetEventParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/events/${id}?${stringifiedParams}`\n : `${getProxyPath()}/events/${id}`;\n};\n\n/**\n * Loads a single event by `(project_id, id)`. Requires `events.read`.\nEvents are not registered in `resource_scope_index`; project scope is\nrequired on the query (ADR 049). Misses and cross-project ids return 404.\n\nPre-claim projects return 404 (stored events stay invisible until claim).\n\n * @summary Get event by ID\n */\nexport const getEvent = async (\n id: string,\n params: GetEventParams,\n options?: RequestInit,\n): Promise<GetEvent200> => {\n return customFetch<GetEvent200>(getGetEventUrl(id, params), {\n ...options,\n method: \"GET\",\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"zitadelNextGen.mjs","names":[],"sources":["../../../src/generated/endpoints/zitadelNextGen.ts"],"sourcesContent":["/**\n * Generated by orval v8.10.0 🍺\n * Do not edit manually.\n * Zitadel NextGen\n * This is the next generation of the Zitadel identity platform.\n * OpenAPI spec version: 0.0.1\n */\nimport { getProxyPath } from \"../../runtime/base-url\";\nimport { customFetch } from \"../../runtime/fetch\";\nimport type {\n BeginUserPasskeyRegistration201,\n BeginUserPasskeyRegistrationBody,\n CompleteClaim200,\n CompleteClaimBody,\n CreateAuthAttempt201,\n CreateAuthAttemptBody,\n CreateBranding201,\n CreateBrandingBody,\n CreateBrandingParams,\n CreateFlow201,\n CreateFlowBody,\n CreateFlowDefinition201,\n CreateFlowDefinitionBody,\n CreateGrant201,\n CreateGrantBody,\n CreateGrantParams,\n CreateHandoff200,\n CreateProject201,\n CreateProjectBody,\n CreateRelease200,\n CreateRelease201,\n CreateReleaseBody,\n CreateReleaseParams,\n CreateSchema201,\n CreateSchemaBody,\n CreateSchemaParams,\n CreateSession201,\n CreateSessionBody,\n CreateTeam201,\n CreateTeamBody,\n CreateTeamParams,\n CreateUser201,\n CreateUserBody,\n CreateUserParams,\n DeleteGrantParams,\n ExchangeHandoff200,\n ExchangeHandoffBody,\n ExchangeHandoffParams,\n FinishUserPasskeyRegistration201,\n FinishUserPasskeyRegistrationBody,\n GetAuthAttempt200,\n GetBrandingById200,\n GetClaimStatus200,\n GetClaimStatusParams,\n GetClaimWindow200,\n GetClaimWindowParams,\n GetEnvironmentByName200,\n GetEnvironmentByNameParams,\n GetEvent200,\n GetEventParams,\n GetFlowDefinition200,\n GetFlowStep200,\n GetGrant200,\n GetGrantParams,\n GetHealthDefault,\n GetLiveDefault,\n GetMySession200,\n GetMyUser200,\n GetProject200,\n GetReadyDefault,\n GetReleaseById200,\n GetReleaseByIdParams,\n GetSchemaById200,\n GetSchemaByIdParams,\n GetSession200,\n GetTeam200,\n GetUserByID200,\n GetUserByIDParams,\n InitClaim201,\n IssueChallenge201,\n IssueChallengeBody,\n ListBranding200Item,\n ListBrandingParams,\n ListEnvironments200,\n ListEnvironmentsParams,\n ListEvents200,\n ListEventsParams,\n ListFlowDefinitions200,\n ListFlowDefinitionsParams,\n ListReleases200,\n ListReleasesParams,\n ListSchemas200,\n ListSchemasParams,\n ListUserPasskeys200,\n ListUserPasskeysParams,\n ListUserTeams200,\n ListUserTeamsParams,\n PatchProject200,\n PatchProjectBody,\n QueryGrants200,\n QueryGrantsBody,\n QueryGrantsParams,\n QueryProjects200,\n QueryProjectsBody,\n QuerySessions200,\n QuerySessionsBody,\n QuerySessionsParams,\n QueryTeams200,\n QueryTeamsBody,\n QueryTeamsParams,\n QueryUsers200,\n QueryUsersBody,\n SetUserPasswordBody,\n SubmitFlowStep200,\n SubmitFlowStepBody,\n UpdateFlowDefinition200,\n UpdateFlowDefinitionBody,\n UpdateTeam200,\n UpdateTeamBody,\n VerifyChallengeProof200,\n VerifyChallengeProofBody,\n} from \"../model\";\n\nexport const getGetHealthUrl = () => {\n return `${getProxyPath()}/healthz`;\n};\n\n/**\n * Check whether the server is healthy\n * @summary Check server health\n */\nexport const getHealth = async (options?: RequestInit): Promise<GetHealthDefault> => {\n return customFetch<GetHealthDefault>(getGetHealthUrl(), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetLiveUrl = () => {\n return `${getProxyPath()}/livez`;\n};\n\n/**\n * Check whether the server is started\n * @summary Check server liveness\n */\nexport const getLive = async (options?: RequestInit): Promise<GetLiveDefault> => {\n return customFetch<GetLiveDefault>(getGetLiveUrl(), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetReadyUrl = () => {\n return `${getProxyPath()}/readyz`;\n};\n\n/**\n * Check whether the server is ready to accept requests\n * @summary Check server readiness\n */\nexport const getReady = async (options?: RequestInit): Promise<GetReadyDefault> => {\n return customFetch<GetReadyDefault>(getGetReadyUrl(), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateUserUrl = (params: CreateUserParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/users?${stringifiedParams}`\n : `${getProxyPath()}/users`;\n};\n\n/**\n * @summary Create user\n */\nexport const createUser = async (\n createUserBody: CreateUserBody,\n params: CreateUserParams,\n options?: RequestInit,\n): Promise<CreateUser201> => {\n return customFetch<CreateUser201>(getCreateUserUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createUserBody),\n });\n};\n\nexport const getQueryUsersUrl = () => {\n return `${getProxyPath()}/users/query`;\n};\n\n/**\n * Returns the users of a project, paginated with a cursor.\n\nThe project comes from the credential, not from a parameter: the operation\nis bound to the token's own project by construction. This is why it takes\nno `project_id`, unlike the other query endpoints.\n\n * @summary Query users\n */\nexport const queryUsers = async (\n queryUsersBody: QueryUsersBody,\n options?: RequestInit,\n): Promise<QueryUsers200> => {\n return customFetch<QueryUsers200>(getQueryUsersUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(queryUsersBody),\n });\n};\n\nexport const getGetUserByIDUrl = (userId: string, params?: GetUserByIDParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/users/${userId}?${stringifiedParams}`\n : `${getProxyPath()}/users/${userId}`;\n};\n\n/**\n * @summary Get user by ID\n */\nexport const getUserByID = async (\n userId: string,\n params?: GetUserByIDParams,\n options?: RequestInit,\n): Promise<GetUserByID200> => {\n return customFetch<GetUserByID200>(getGetUserByIDUrl(userId, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getDeleteUserByIDUrl = (userId: string) => {\n return `${getProxyPath()}/users/${userId}`;\n};\n\n/**\n * @summary Delete user by ID\n */\nexport const deleteUserByID = async (userId: string, options?: RequestInit): Promise<void> => {\n return customFetch<void>(getDeleteUserByIDUrl(userId), {\n ...options,\n method: \"DELETE\",\n });\n};\n\nexport const getListUserPasskeysUrl = (userId: string, params?: ListUserPasskeysParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/users/${userId}/passkeys?${stringifiedParams}`\n : `${getProxyPath()}/users/${userId}/passkeys`;\n};\n\n/**\n * @summary List user passkeys\n */\nexport const listUserPasskeys = async (\n userId: string,\n params?: ListUserPasskeysParams,\n options?: RequestInit,\n): Promise<ListUserPasskeys200> => {\n return customFetch<ListUserPasskeys200>(getListUserPasskeysUrl(userId, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getBeginUserPasskeyRegistrationUrl = (userId: string) => {\n return `${getProxyPath()}/users/${userId}/passkeys/registrations`;\n};\n\n/**\n * Starts a WebAuthn registration ceremony for the user and returns the\ncreation options for `navigator.credentials.create()`. Complete the\nceremony with `POST /users/{user_id}/passkeys/registrations/{registration_id}` within\nfive minutes. Credentials already registered for the user are excluded\nautomatically.\n\n * @summary Begin passkey registration\n */\nexport const beginUserPasskeyRegistration = async (\n userId: string,\n beginUserPasskeyRegistrationBody: BeginUserPasskeyRegistrationBody,\n options?: RequestInit,\n): Promise<BeginUserPasskeyRegistration201> => {\n return customFetch<BeginUserPasskeyRegistration201>(getBeginUserPasskeyRegistrationUrl(userId), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(beginUserPasskeyRegistrationBody),\n });\n};\n\nexport const getFinishUserPasskeyRegistrationUrl = (userId: string, registrationId: string) => {\n return `${getProxyPath()}/users/${userId}/passkeys/registrations/${registrationId}`;\n};\n\n/**\n * Verifies the attestation against the ceremony started by\n`POST /users/{user_id}/passkeys/registrations` and persists the new credential. A\nrejected attestation counts against the ceremony's failure budget and the\nceremony stays open for a retry. An expired ceremony surfaces as\n`att.stale_challenge`; an unknown or already-consumed registration id\nsurfaces as `att.not_found`.\n\n * @summary Finish passkey registration\n */\nexport const finishUserPasskeyRegistration = async (\n userId: string,\n registrationId: string,\n finishUserPasskeyRegistrationBody: FinishUserPasskeyRegistrationBody,\n options?: RequestInit,\n): Promise<FinishUserPasskeyRegistration201> => {\n return customFetch<FinishUserPasskeyRegistration201>(\n getFinishUserPasskeyRegistrationUrl(userId, registrationId),\n {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(finishUserPasskeyRegistrationBody),\n },\n );\n};\n\nexport const getSetUserPasswordUrl = (userId: string) => {\n return `${getProxyPath()}/users/${userId}/password`;\n};\n\n/**\n * @summary Set user password\n */\nexport const setUserPassword = async (\n userId: string,\n setUserPasswordBody: SetUserPasswordBody,\n options?: RequestInit,\n): Promise<void> => {\n return customFetch<void>(getSetUserPasswordUrl(userId), {\n ...options,\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(setUserPasswordBody),\n });\n};\n\nexport const getListUserTeamsUrl = (userId: string, params?: ListUserTeamsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/users/${userId}/teams?${stringifiedParams}`\n : `${getProxyPath()}/users/${userId}/teams`;\n};\n\n/**\n * The user's team roster, ordered by team name. Each entry carries the\nteam's name, so a client renders a page without resolving ids one by one.\n\nThis is the N:N roster and it is not lifecycle ownership: the single team\nthat owns the user's lifecycle is reported as `metadata.lifecycle_owner_team_id`\non the user read endpoints. Memberships the user was removed from are not\nreturned.\n\n * @summary List the teams a user belongs to\n */\nexport const listUserTeams = async (\n userId: string,\n params?: ListUserTeamsParams,\n options?: RequestInit,\n): Promise<ListUserTeams200> => {\n return customFetch<ListUserTeams200>(getListUserTeamsUrl(userId, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetMyUserUrl = () => {\n return `${getProxyPath()}/users/me`;\n};\n\n/**\n * @summary Get my user information\n */\nexport const getMyUser = async (options?: RequestInit): Promise<GetMyUser200> => {\n return customFetch<GetMyUser200>(getGetMyUserUrl(), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateFlowUrl = () => {\n return `${getProxyPath()}/flow`;\n};\n\n/**\n * Resolves a flow definition based on purpose + audience context and returns\nthe first capability step. Creates a new session implicitly unless\n`session_id` is provided (for step-up / reauth on an existing session).\n\nThe response contains an `id` field — the flow handle. Use it as the path\nparameter for all subsequent `/flow/{id}/submit` calls.\n\nThe response also sets an encrypted `HttpOnly` cookie (`_zflow`) containing\nthe flow's orchestration state (current step, collected data, history).\nThe server is stateless between requests — all flow state lives in this\ncookie. The browser sends it automatically on subsequent requests.\n\n * @summary Start a new flow\n */\nexport const createFlow = async (\n createFlowBody: CreateFlowBody,\n options?: RequestInit,\n): Promise<CreateFlow201> => {\n return customFetch<CreateFlow201>(getCreateFlowUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createFlowBody),\n });\n};\n\nexport const getGetFlowStepUrl = (id: string) => {\n return `${getProxyPath()}/flow/${id}`;\n};\n\n/**\n * Returns the current capability step without advancing the state machine.\nUseful for page reloads or re-rendering after a network error.\n\n * @summary Get current step (re-render)\n */\nexport const getFlowStep = async (id: string, options?: RequestInit): Promise<GetFlowStep200> => {\n return customFetch<GetFlowStep200>(getGetFlowStepUrl(id), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getSubmitFlowStepUrl = (id: string) => {\n return `${getProxyPath()}/flow/${id}/submit`;\n};\n\n/**\n * Submits user input for the current step. The server validates,\nprocesses (e.g., verifies a credential), advances the state machine\nthrough any invisible steps, and returns the next visible step.\n\nThe response sets an updated encrypted `HttpOnly` cookie (`_zflow`)\nwith the new flow state. The server is stateless — all orchestration\nstate is carried in this cookie between requests.\n\n**Important:** The `id` in the response may differ from the `id` used in\nthe request. This happens when a flow pivots (pushes a new flow onto the\nstack) or when a stacked flow completes (auto-pops to the parent flow).\nAlways use the `id` from the latest response for the next request.\n\n## Flow completion\n\nWhen `step.type` is `complete`, the flow is terminal. The `step.behavior`\nfield tells the frontend what to do:\n\n| `behavior` | Action |\n|------------- |------------------------------------------------------------|\n| `redirect` | Navigate to `redirect_uri` (OIDC/SAML auth request done). |\n| `show` | Render the step as a success screen (e.g., registration). |\n\nA `complete` step is only returned when the **entire flow stack** is done.\nIf a stacked flow (e.g., recovery pivoted from login) finishes, the server\nauto-pops to the parent flow and returns the parent's next step — the\nfrontend never sees a `complete` for intermediate flows.\n\n * @summary Submit step data and advance\n */\nexport const submitFlowStep = async (\n id: string,\n submitFlowStepBody: SubmitFlowStepBody,\n options?: RequestInit,\n): Promise<SubmitFlowStep200> => {\n return customFetch<SubmitFlowStep200>(getSubmitFlowStepUrl(id), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(submitFlowStepBody),\n });\n};\n\nexport const getCreateAuthAttemptUrl = () => {\n return `${getProxyPath()}/auth_attempts`;\n};\n\n/**\n * Starts a new authentication attempt. This is the entry point for the auth_attempts state machine.\n\nAn attempt is an ephemeral (15-minute TTL) state machine that drives a single authentication round.\nIt accepts factor challenges, verifies proofs, and completes into a session or handoff token.\n\nAccepts a project_id and challenge_nonce (from POST /bootstrap/challenge). For step-up re-auth,\nalso include session_id to add factors to an existing session.\n\n * @summary Create a new authentication attempt\n */\nexport const createAuthAttempt = async (\n createAuthAttemptBody: CreateAuthAttemptBody,\n options?: RequestInit,\n): Promise<CreateAuthAttempt201> => {\n return customFetch<CreateAuthAttempt201>(getCreateAuthAttemptUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createAuthAttemptBody),\n });\n};\n\nexport const getGetAuthAttemptUrl = (attemptId: string) => {\n return `${getProxyPath()}/auth_attempts/${attemptId}`;\n};\n\n/**\n * Polls the current state of an authentication attempt.\n\nReturns the attempt's state, available factors for the next challenge,\nchallenges issued so far, and any errors preventing progress.\n\nUse this for polling during long-running factor verifications (e.g., waiting for\na federated IdP callback or a device flow).\n\n * @summary Get authentication attempt state\n */\nexport const getAuthAttempt = async (\n attemptId: string,\n options?: RequestInit,\n): Promise<GetAuthAttempt200> => {\n return customFetch<GetAuthAttempt200>(getGetAuthAttemptUrl(attemptId), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getIssueChallengeUrl = (attemptId: string) => {\n return `${getProxyPath()}/auth_attempts/${attemptId}/challenges`;\n};\n\n/**\n * Issues a single-factor verification challenge within an auth attempt.\n\nThis advances the authentication state machine by requesting a specific factor method\n(password, passkey, TOTP, OTP via SMS, etc.). The server responds with challenge details\nincluding method, metadata, and any UI hints. The client then verifies the proof\nby calling POST /auth_attempts/{attempt_id}/challenges/{challenge_id}/verify.\n\n * @summary Issue a factor challenge\n */\nexport const issueChallenge = async (\n attemptId: string,\n issueChallengeBody: IssueChallengeBody,\n options?: RequestInit,\n): Promise<IssueChallenge201> => {\n return customFetch<IssueChallenge201>(getIssueChallengeUrl(attemptId), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(issueChallengeBody),\n });\n};\n\nexport const getVerifyChallengeProofUrl = (attemptId: string, challengeId: string) => {\n return `${getProxyPath()}/auth_attempts/${attemptId}/challenges/${challengeId}/verify`;\n};\n\n/**\n * Submits a proof (credential, code, assertion) to verify a factor challenge.\n\nThe proof format depends on the challenge method. For example:\n- `password` method: { password: \"…\" }\n- `totp` method: { totp: { code: \"123456\" } }\n- `passkey` method: { passkey: { assertion: \"…\" } }\n- `recovery_code` method: { recovery_code: \"…\" }\n\nOn successful verification, the factor is written to the auth attempt.\nThe attempt moves to the next pending challenge or completes if all required factors are verified.\n\n * @summary Verify a factor proof\n */\nexport const verifyChallengeProof = async (\n attemptId: string,\n challengeId: string,\n verifyChallengeProofBody: VerifyChallengeProofBody,\n options?: RequestInit,\n): Promise<VerifyChallengeProof200> => {\n return customFetch<VerifyChallengeProof200>(getVerifyChallengeProofUrl(attemptId, challengeId), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(verifyChallengeProofBody),\n });\n};\n\nexport const getCreateHandoffUrl = (attemptId: string) => {\n return `${getProxyPath()}/auth_attempts/${attemptId}/handoff`;\n};\n\n/**\n * Completes the authentication attempt and mints a `handoff_token`.\n\nCall this after all required factors have been verified and the attempt is in `completed` state.\nThe handoff token is short-lived (≤60 seconds) and must be exchanged at\nPOST /sessions/exchange to receive the final session and session_token.\n\nThe handoff token is:\n- Single-use (atomic exchange, no retry)\n- Audience-bound (requires matching project key for exchange)\n- Idempotency-safe within a 5-minute window (see conventions)\n\n * @summary Complete authentication and create handoff token\n */\nexport const createHandoff = async (\n attemptId: string,\n options?: RequestInit,\n): Promise<CreateHandoff200> => {\n return customFetch<CreateHandoff200>(getCreateHandoffUrl(attemptId), {\n ...options,\n method: \"POST\",\n });\n};\n\nexport const getCreateProjectUrl = () => {\n return `${getProxyPath()}/projects`;\n};\n\n/**\n * @summary Create project\n */\nexport const createProject = async (\n createProjectBody: CreateProjectBody,\n options?: RequestInit,\n): Promise<CreateProject201> => {\n return customFetch<CreateProject201>(getCreateProjectUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createProjectBody),\n });\n};\n\nexport const getQueryProjectsUrl = () => {\n return `${getProxyPath()}/projects/query`;\n};\n\n/**\n * @summary Query projects\n */\nexport const queryProjects = async (\n queryProjectsBody: QueryProjectsBody,\n options?: RequestInit,\n): Promise<QueryProjects200> => {\n return customFetch<QueryProjects200>(getQueryProjectsUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(queryProjectsBody),\n });\n};\n\nexport const getGetProjectUrl = (projectId: string) => {\n return `${getProxyPath()}/projects/${projectId}`;\n};\n\n/**\n * Returns the current state of a project.\n\n * @summary Get project\n */\nexport const getProject = async (\n projectId: string,\n options?: RequestInit,\n): Promise<GetProject200> => {\n return customFetch<GetProject200>(getGetProjectUrl(projectId), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getPatchProjectUrl = (projectId: string) => {\n return `${getProxyPath()}/projects/${projectId}`;\n};\n\n/**\n * Updates the state of a project.\n\n * @summary Update project\n */\nexport const patchProject = async (\n projectId: string,\n patchProjectBody: PatchProjectBody,\n options?: RequestInit,\n): Promise<PatchProject200> => {\n return customFetch<PatchProject200>(getPatchProjectUrl(projectId), {\n ...options,\n method: \"PATCH\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(patchProjectBody),\n });\n};\n\nexport const getInitClaimUrl = (projectId: string) => {\n return `${getProxyPath()}/projects/${projectId}/claim/init`;\n};\n\n/**\n * Starts a claim challenge for an unclaimed project. Authenticated by the\nproject secret, this mints a single-use, short-lived challenge and returns\nthe `claim_url` the developer opens in a browser to complete the claim,\ntogether with the `challenge_id` the CLI polls with. The exact expiry is\ncarried by `expires_at` on the response.\n\n * @summary Initialize a project claim\n */\nexport const initClaim = async (\n projectId: string,\n options?: RequestInit,\n): Promise<InitClaim201> => {\n return customFetch<InitClaim201>(getInitClaimUrl(projectId), {\n ...options,\n method: \"POST\",\n });\n};\n\nexport const getGetClaimStatusUrl = (projectId: string, params: GetClaimStatusParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/projects/${projectId}/claim/status?${stringifiedParams}`\n : `${getProxyPath()}/projects/${projectId}/claim/status`;\n};\n\n/**\n * Polled by the CLI while a browser completes the claim. Authorized by the\nproject secret that initiated the challenge. Returns `pending`, or\n`completed` with the owning team, the claim timestamp, and the dashboard\nURL once the project is claimed. The claim grant, not the polled\nchallenge, is the source of truth: a project claimed through another\nconcurrent challenge also reports `completed`, and a completed claim\nkeeps reporting `completed` past this challenge's expiry and past the\nproject's claim window.\n\n * @summary Get claim status\n */\nexport const getClaimStatus = async (\n projectId: string,\n params: GetClaimStatusParams,\n options?: RequestInit,\n): Promise<GetClaimStatus200> => {\n return customFetch<GetClaimStatus200>(getGetClaimStatusUrl(projectId, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCompleteClaimUrl = (projectId: string) => {\n return `${getProxyPath()}/projects/${projectId}/claim/complete`;\n};\n\n/**\n * Called by the browser after the developer authenticates on the claim page.\nAuthenticated by the `__nextgen_session` cookie, it attaches the project to\nthe developer's personal team using the `challenge_id` from the claim URL as\nits single-use, browser-safe authorization.\n\n * @summary Complete a project claim\n */\nexport const completeClaim = async (\n projectId: string,\n completeClaimBody: CompleteClaimBody,\n options?: RequestInit,\n): Promise<CompleteClaim200> => {\n return customFetch<CompleteClaim200>(getCompleteClaimUrl(projectId), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(completeClaimBody),\n });\n};\n\nexport const getGetClaimWindowUrl = (projectId: string, params: GetClaimWindowParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/projects/${projectId}/claim/window?${stringifiedParams}`\n : `${getProxyPath()}/projects/${projectId}/claim/window`;\n};\n\n/**\n * Read by the claim page in the browser to show how long is left to claim the\nproject. Unauthenticated by design: the claim page runs this before the\ndeveloper has signed in, and holding the `challenge_id` from the claim URL\nis the authorization — the same capability `claim/complete` accepts. It\nreveals only the window, never the project itself, and unlike\n`claim/complete` it spends nothing, so a reload is free.\n\n * @summary Get the claim window for a project\n */\nexport const getClaimWindow = async (\n projectId: string,\n params: GetClaimWindowParams,\n options?: RequestInit,\n): Promise<GetClaimWindow200> => {\n return customFetch<GetClaimWindow200>(getGetClaimWindowUrl(projectId, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateSessionUrl = () => {\n return `${getProxyPath()}/sessions`;\n};\n\n/**\n * Creates an anonymous session shell with no user and no factors (`state: building`).\n\nThis is optional — an `auth_attempt` will create a session implicitly if none is provided.\nUse this explicitly when you want to:\n- Pre-allocate a `session_id` before the user is known, so device/telemetry signals\n can be correlated with the eventual authenticated session from the start.\n- Track anonymous state (bot detection, device fingerprint) that survives until authentication.\n\nCreating a session is an app-plane operation on the project credential\n(`session.write`). The returned `session_token` is a session credential for the\nend-user client, not a management scope: it is delivered as the\n`__nextgen_session` cookie and authorises the self-service operations\n`GET /sessions/me` and `DELETE /sessions/me` (`nextgenSession` scheme). The\nby-id operations `GET /sessions/{session_id}` and `DELETE /sessions/{session_id}`\nare operator endpoints and require `session.read` / `session.delete` instead.\n\nThe `session_token` is superseded when a handoff exchange completes — clients must\nreplace it at that point.\n\nAnonymous sessions expire aggressively (10-minute TTL). The TTL resets to the configured\nfull session TTL when the first authentication factor is written via a completing `auth_attempt`.\n\n * @summary Create an anonymous session shell\n */\nexport const createSession = async (\n createSessionBody: CreateSessionBody,\n options?: RequestInit,\n): Promise<CreateSession201> => {\n return customFetch<CreateSession201>(getCreateSessionUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createSessionBody),\n });\n};\n\nexport const getQuerySessionsUrl = (params: QuerySessionsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/sessions/query?${stringifiedParams}`\n : `${getProxyPath()}/sessions/query`;\n};\n\n/**\n * Returns the sessions of a project, paginated with a cursor.\nSessions of every lifecycle state are returned; each carries its `state`.\nRequires `session.read` permission.\n\n * @summary Query sessions\n */\nexport const querySessions = async (\n querySessionsBody: QuerySessionsBody,\n params: QuerySessionsParams,\n options?: RequestInit,\n): Promise<QuerySessions200> => {\n return customFetch<QuerySessions200>(getQuerySessionsUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(querySessionsBody),\n });\n};\n\nexport const getExchangeHandoffUrl = (params: ExchangeHandoffParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/sessions/exchange?${stringifiedParams}`\n : `${getProxyPath()}/sessions/exchange`;\n};\n\n/**\n * Consumes a one-time `handoff_token` minted by `POST /auth_attempts/{id}/handoff`\nand returns the resulting session and a `session_token`.\n\nThe server resolves the originating `auth_attempt` from the token and then:\n\n| Originating auth_attempt | Outcome |\n|---|---|\n| No `session_id` | A new authenticated session is **created**. |\n| `session_id` points to an anonymous shell | Existing session is **upgraded** — user and factors written in, TTL reset to full session TTL. |\n| `session_id` points to an active session (step-up) | Existing session is **upgraded** — new factors merged, `assurance_levels[]` expanded. |\n\nThe response shape is identical in all three cases.\n\nThe `session_token` supersedes any previously issued `session_token` for the same session.\nClients must replace their stored token at this point.\n\nRequires a project service key (OAuth2 client credentials).\n\n * @summary Exchange handoff token for a session\n */\nexport const exchangeHandoff = async (\n exchangeHandoffBody: ExchangeHandoffBody,\n params: ExchangeHandoffParams,\n options?: RequestInit,\n): Promise<ExchangeHandoff200> => {\n return customFetch<ExchangeHandoff200>(getExchangeHandoffUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(exchangeHandoffBody),\n });\n};\n\nexport const getGetSessionUrl = (sessionId: string) => {\n return `${getProxyPath()}/sessions/${sessionId}`;\n};\n\n/**\n * Returns the current state of a session including its factors and all currently\nsatisfied assurance levels.\n\n`assurance_levels[]` may shrink over time as factor freshness windows expire,\nwithout the session itself expiring. Use step-up authentication (a new `auth_attempt`\nagainst the same `session_id`) to restore a dropped assurance level.\n\n * @summary Get session state\n */\nexport const getSession = async (\n sessionId: string,\n options?: RequestInit,\n): Promise<GetSession200> => {\n return customFetch<GetSession200>(getGetSessionUrl(sessionId), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getRevokeSessionUrl = (sessionId: string) => {\n return `${getProxyPath()}/sessions/${sessionId}`;\n};\n\n/**\n * Permanently deletes the session, terminating it immediately.\n\nThis is the operator revoke path and requires the `session.delete` scope on a\nproject-bound credential. End-user logout with the `__nextgen_session` cookie is\n`DELETE /sessions/me` (`nextgenSession` scheme).\n\nIdempotent: deleting a session that does not exist (or was already deleted)\nstill returns 204. After deletion, any tokens derived from the session are\ninvalidated.\n\n * @summary Revoke session\n */\nexport const revokeSession = async (sessionId: string, options?: RequestInit): Promise<void> => {\n return customFetch<void>(getRevokeSessionUrl(sessionId), {\n ...options,\n method: \"DELETE\",\n });\n};\n\nexport const getGetMySessionUrl = () => {\n return `${getProxyPath()}/sessions/me`;\n};\n\n/**\n * Returns the current state of the current session including its factors and all currently\nsatisfied assurance levels.\n\n`assurance_levels[]` may shrink over time as factor freshness windows expire,\nwithout the session itself expiring. Use step-up authentication (a new `auth_attempt`\nagainst the same `session_id`) to restore a dropped assurance level.\n\n * @summary Get my session state\n */\nexport const getMySession = async (options?: RequestInit): Promise<GetMySession200> => {\n return customFetch<GetMySession200>(getGetMySessionUrl(), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getRevokeMySessionUrl = () => {\n return `${getProxyPath()}/sessions/me`;\n};\n\n/**\n * Logs out by permanently deleting the session.\n\nThe `__nextgen_session` cookie issued at creation (or superseded by a handoff\nexchange) is required. Idempotent: if the session is already gone this still\nreturns 204. Any tokens derived from the session are invalidated, and the\ncookie itself is cleared in the response.\n\n * @summary Revoke my session\n */\nexport const revokeMySession = async (options?: RequestInit): Promise<void> => {\n return customFetch<void>(getRevokeMySessionUrl(), {\n ...options,\n method: \"DELETE\",\n });\n};\n\nexport const getCreateSchemaUrl = (params: CreateSchemaParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/schemas?${stringifiedParams}`\n : `${getProxyPath()}/schemas`;\n};\n\n/**\n * Create a new schema. The optional `$id` field is the JSON Schema document\nURI used to identify the schema in future requests (GitOps-stable identity,\nnot a free-form resource primary key). When `$id` is omitted, the server\ngenerates a `sch_*` URL. When provided, `$id` must be unique within the\nproject and should ideally be a valid URI pointing at where the schema can\nbe accessed.\n\nThe schema can either be a concrete schema, e.g. a user schema, or a\nschema-url which will be resolved by the server.\n\n * @summary Create new schema\n */\nexport const createSchema = async (\n createSchemaBody: CreateSchemaBody,\n params: CreateSchemaParams,\n options?: RequestInit,\n): Promise<CreateSchema201> => {\n return customFetch<CreateSchema201>(getCreateSchemaUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createSchemaBody),\n });\n};\n\nexport const getListSchemasUrl = (params: ListSchemasParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/schemas?${stringifiedParams}`\n : `${getProxyPath()}/schemas`;\n};\n\n/**\n * Retrieve a list of all schemas available in the system. This endpoint\nsupports pagination and filtering based on schema attributes.\n\n * @summary List all schemas\n */\nexport const listSchemas = async (\n params: ListSchemasParams,\n options?: RequestInit,\n): Promise<ListSchemas200> => {\n return customFetch<ListSchemas200>(getListSchemasUrl(params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetSchemaByIdUrl = (id: string, params?: GetSchemaByIdParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/schemas/${id}?${stringifiedParams}`\n : `${getProxyPath()}/schemas/${id}`;\n};\n\n/**\n * Get a schema by its ID. A schema ID identifies one immutable revision, so\nthis returns exactly that revision. To find the current revision of an\nobject type, list with `revisions=latest`.\n\n * @summary Get schema by ID\n */\nexport const getSchemaById = async (\n id: string,\n params?: GetSchemaByIdParams,\n options?: RequestInit,\n): Promise<GetSchemaById200> => {\n return customFetch<GetSchemaById200>(getGetSchemaByIdUrl(id, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateFlowDefinitionUrl = () => {\n return `${getProxyPath()}/flow_definitions`;\n};\n\n/**\n * Publishes a new flow definition revision.\nFlow definitions are templates that define the sequence of steps (capabilities)\nfor a particular user journey (e.g., registration, login, password reset).\n\nFlow definitions are created based on the flow definition schema, which includes the flow's purpose, audience, and the steps involved.\n\nEvery call allocates a new opaque id. Revisions of one flow share its\n`name`; posting a definition under an existing `name` publishes a new\nrevision of that flow, it is not a conflict. List with `name` to see a\nflow's revisions, newest by creation time first.\n\n * @summary Create a new flow definition\n */\nexport const createFlowDefinition = async (\n createFlowDefinitionBody: CreateFlowDefinitionBody,\n options?: RequestInit,\n): Promise<CreateFlowDefinition201> => {\n return customFetch<CreateFlowDefinition201>(getCreateFlowDefinitionUrl(), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createFlowDefinitionBody),\n });\n};\n\nexport const getListFlowDefinitionsUrl = (params: ListFlowDefinitionsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/flow_definitions?${stringifiedParams}`\n : `${getProxyPath()}/flow_definitions`;\n};\n\n/**\n * Retrieves a list of all flow definitions, newest by creation time first.\nThis endpoint can be used to view existing flow definitions and their configurations.\nFilter by `name` to list the revisions of one flow.\n\n * @summary List flow definitions\n */\nexport const listFlowDefinitions = async (\n params: ListFlowDefinitionsParams,\n options?: RequestInit,\n): Promise<ListFlowDefinitions200> => {\n return customFetch<ListFlowDefinitions200>(getListFlowDefinitionsUrl(params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetFlowDefinitionUrl = (id: string) => {\n return `${getProxyPath()}/flow_definitions/${id}`;\n};\n\n/**\n * Get a flow definition by id\n * @summary Get a flow definition by id\n */\nexport const getFlowDefinition = async (\n id: string,\n options?: RequestInit,\n): Promise<GetFlowDefinition200> => {\n return customFetch<GetFlowDefinition200>(getGetFlowDefinitionUrl(id), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getUpdateFlowDefinitionUrl = (id: string) => {\n return `${getProxyPath()}/flow_definitions/${id}`;\n};\n\n/**\n * Update a flow definition by id. This endpoint replaces the existing flow definition.\nIf `flow_definition.status` is omitted, the current status is preserved\n\n * @summary Update a flow definition by id\n */\nexport const updateFlowDefinition = async (\n id: string,\n updateFlowDefinitionBody: UpdateFlowDefinitionBody,\n options?: RequestInit,\n): Promise<UpdateFlowDefinition200> => {\n return customFetch<UpdateFlowDefinition200>(getUpdateFlowDefinitionUrl(id), {\n ...options,\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(updateFlowDefinitionBody),\n });\n};\n\nexport const getDeleteFlowDefinitionUrl = (id: string) => {\n return `${getProxyPath()}/flow_definitions/${id}`;\n};\n\n/**\n * Delete a flow definition by id.\nIf the flow definition is currently being used by a flow, the deletion will fail.\nIf the flow definition is the last active flow definition for a given purpose, the deletion will fail to prevent disruption of new flows being started for that purpose.\n\n * @summary Delete a flow definition by id\n */\nexport const deleteFlowDefinition = async (id: string, options?: RequestInit): Promise<void> => {\n return customFetch<void>(getDeleteFlowDefinitionUrl(id), {\n ...options,\n method: \"DELETE\",\n });\n};\n\nexport const getCreateTeamUrl = (params: CreateTeamParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/teams?${stringifiedParams}`\n : `${getProxyPath()}/teams`;\n};\n\n/**\n * @summary Create team\n */\nexport const createTeam = async (\n createTeamBody: CreateTeamBody,\n params: CreateTeamParams,\n options?: RequestInit,\n): Promise<CreateTeam201> => {\n return customFetch<CreateTeam201>(getCreateTeamUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createTeamBody),\n });\n};\n\nexport const getQueryTeamsUrl = (params: QueryTeamsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/teams/query?${stringifiedParams}`\n : `${getProxyPath()}/teams/query`;\n};\n\n/**\n * Returns the teams of a project, paginated with a cursor.\n\n * @summary Query teams\n */\nexport const queryTeams = async (\n queryTeamsBody: QueryTeamsBody,\n params: QueryTeamsParams,\n options?: RequestInit,\n): Promise<QueryTeams200> => {\n return customFetch<QueryTeams200>(getQueryTeamsUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(queryTeamsBody),\n });\n};\n\nexport const getGetTeamUrl = (teamId: string) => {\n return `${getProxyPath()}/teams/${teamId}`;\n};\n\n/**\n * Returns a Team by its id.\n\n * @summary Get team\n */\nexport const getTeam = async (teamId: string, options?: RequestInit): Promise<GetTeam200> => {\n return customFetch<GetTeam200>(getGetTeamUrl(teamId), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getDeleteTeamUrl = (teamId: string) => {\n return `${getProxyPath()}/teams/${teamId}`;\n};\n\n/**\n * Deactivates the team.\n\nThe team is tombstoned rather than erased: it stays readable through\ngetTeam with status `deactivated`. Its memberships are removed and the\nusers whose lifecycle it owns are deactivated with it.\n\nThe request is idempotent. Deleting a team that is already deactivated\nor doesn't exist succeeds without changing anything.\n\n * @summary Delete team\n */\nexport const deleteTeam = async (teamId: string, options?: RequestInit): Promise<void> => {\n return customFetch<void>(getDeleteTeamUrl(teamId), {\n ...options,\n method: \"DELETE\",\n });\n};\n\nexport const getUpdateTeamUrl = (teamId: string) => {\n return `${getProxyPath()}/teams/${teamId}`;\n};\n\n/**\n * Update team. Only active teams can be updated.\n\n * @summary Update team\n */\nexport const updateTeam = async (\n teamId: string,\n updateTeamBody: UpdateTeamBody,\n options?: RequestInit,\n): Promise<UpdateTeam200> => {\n return customFetch<UpdateTeam200>(getUpdateTeamUrl(teamId), {\n ...options,\n method: \"PATCH\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(updateTeamBody),\n });\n};\n\nexport const getListEnvironmentsUrl = (params: ListEnvironmentsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/environments?${stringifiedParams}`\n : `${getProxyPath()}/environments`;\n};\n\n/**\n * Lists the project's environments ordered by name.\n\n * @summary List environments\n */\nexport const listEnvironments = async (\n params: ListEnvironmentsParams,\n options?: RequestInit,\n): Promise<ListEnvironments200> => {\n return customFetch<ListEnvironments200>(getListEnvironmentsUrl(params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetEnvironmentByNameUrl = (name: string, params: GetEnvironmentByNameParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/environments/${name}?${stringifiedParams}`\n : `${getProxyPath()}/environments/${name}`;\n};\n\n/**\n * Reads one environment of the project by its name.\n\nThe lookup is scoped to the project in `project_id`: a name that exists in\nanother project answers `env.not_found` exactly as an unused name does.\n\n * @summary Get an environment by name\n */\nexport const getEnvironmentByName = async (\n name: string,\n params: GetEnvironmentByNameParams,\n options?: RequestInit,\n): Promise<GetEnvironmentByName200> => {\n return customFetch<GetEnvironmentByName200>(getGetEnvironmentByNameUrl(name, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateBrandingUrl = (params: CreateBrandingParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/branding?${stringifiedParams}`\n : `${getProxyPath()}/branding`;\n};\n\n/**\n * Publishes a new immutable branding revision for the project. Branding\nrevisions cannot be updated or deleted; every edit publishes a new\nrevision, and flow responses resolve the latest revision per project\n(see ADR 040).\n\nThe `liquid_template` is validated lexically on save (size, encoding,\nbanned patterns such as `<script>` tags, inline event handlers, and the\n`| raw` filter). Authoritative LiquidJS validation runs at authoring\ntime via `zitadel plan` / `zitadel apply`.\n\n * @summary Publish a new branding revision\n */\nexport const createBranding = async (\n createBrandingBody: CreateBrandingBody,\n params: CreateBrandingParams,\n options?: RequestInit,\n): Promise<CreateBranding201> => {\n return customFetch<CreateBranding201>(getCreateBrandingUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createBrandingBody),\n });\n};\n\nexport const getListBrandingUrl = (params: ListBrandingParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/branding?${stringifiedParams}`\n : `${getProxyPath()}/branding`;\n};\n\n/**\n * Lists branding revisions for the project, newest first, capped at the\n100 most recent. The first entry is the revision flow responses\ncurrently resolve. Deliberately unpaginated in v1 — list endpoints\ngain a real query mechanism together (ADR 031); advertising pagination\nparameters the server ignores would be worse than none.\n\n * @summary List branding revisions\n */\nexport const listBranding = async (\n params: ListBrandingParams,\n options?: RequestInit,\n): Promise<ListBranding200Item[]> => {\n return customFetch<ListBranding200Item[]>(getListBrandingUrl(params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetBrandingByIdUrl = (id: string) => {\n return `${getProxyPath()}/branding/${id}`;\n};\n\n/**\n * Retrieves a single branding revision, including its stored configuration.\n * @summary Get a branding revision by ID\n */\nexport const getBrandingById = async (\n id: string,\n options?: RequestInit,\n): Promise<GetBrandingById200> => {\n return customFetch<GetBrandingById200>(getGetBrandingByIdUrl(id), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateReleaseUrl = (params: CreateReleaseParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/releases?${stringifiedParams}`\n : `${getProxyPath()}/releases`;\n};\n\n/**\n * Bundles a release from revisions that already exist, supplied as\n`(kind, revision_id)` pairs. No new revisions are allocated — use the\nper-kind create endpoints for that, then pin the ids here.\n\nEvery referenced `revision_id` must exist in the project. Each one's handle\nis read from the revision itself and recorded on the release, so a resource\nis always pinned under the identity it declares.\n\nCreating a release does not deploy it. A release is environment-agnostic\nand the same release can later be deployed to any number of environments\nunchanged.\n\nIdempotent on the pinned set: metadata is excluded from the comparison, so\nre-submitting the same revisions with a different `message` returns the\nrelease that already pins them rather than creating a second one.\n\n * @summary Create a release\n */\nexport const createRelease = async (\n createReleaseBody: CreateReleaseBody,\n params: CreateReleaseParams,\n options?: RequestInit,\n): Promise<CreateRelease200 | CreateRelease201> => {\n return customFetch<CreateRelease200 | CreateRelease201>(getCreateReleaseUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createReleaseBody),\n });\n};\n\nexport const getListReleasesUrl = (params: ListReleasesParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/releases?${stringifiedParams}`\n : `${getProxyPath()}/releases`;\n};\n\n/**\n * Lists the project's releases, newest first.\n\nEntries carry metadata only — the pinned set is omitted. Read one release\nwith `GET /releases/{release_id}` to get its pointers.\n\n * @summary List releases\n */\nexport const listReleases = async (\n params: ListReleasesParams,\n options?: RequestInit,\n): Promise<ListReleases200> => {\n return customFetch<ListReleases200>(getListReleasesUrl(params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetReleaseByIdUrl = (releaseId: string, params: GetReleaseByIdParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/releases/${releaseId}?${stringifiedParams}`\n : `${getProxyPath()}/releases/${releaseId}`;\n};\n\n/**\n * Reads one release: its metadata and the `(kind, handle, revision_id)`\ntuples it pins.\n\nDoes not embed resource content. Resolve each `revision_id` through the\nper-kind read endpoints when the bytes are needed.\n\nThe lookup is scoped to the project in `project_id`: a release id belonging\nto another project answers not found exactly as an unknown id does, so the\nendpoint cannot be used to probe for releases in projects the caller cannot\nread.\n\n * @summary Get a release by id\n */\nexport const getReleaseById = async (\n releaseId: string,\n params: GetReleaseByIdParams,\n options?: RequestInit,\n): Promise<GetReleaseById200> => {\n return customFetch<GetReleaseById200>(getGetReleaseByIdUrl(releaseId, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getCreateGrantUrl = (params: CreateGrantParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/grants?${stringifiedParams}`\n : `${getProxyPath()}/grants`;\n};\n\n/**\n * Bind a user or team to `project.viewer`, `project.editor`, or\n`project.admin` on the project identified by the `project-id` header.\nIDs are `asgn_<opaque>`. Owning-team (`project.team`) grants are not\ncreated here — claim owns that path. An unrevoked grant with the same\nprincipal and relation occupies the unique key even after `expires_at`;\nDELETE it before re-creating.\n\n * @summary Create grant\n */\nexport const createGrant = async (\n createGrantBody: CreateGrantBody,\n params: CreateGrantParams,\n options?: RequestInit,\n): Promise<CreateGrant201> => {\n return customFetch<CreateGrant201>(getCreateGrantUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(createGrantBody),\n });\n};\n\nexport const getQueryGrantsUrl = (params: QueryGrantsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/grants/query?${stringifiedParams}`\n : `${getProxyPath()}/grants/query`;\n};\n\n/**\n * Returns the collaboration grants of a project, paginated with a cursor.\nOnly unrevoked grants this API manages are listed (user or team bound to\nviewer, editor, or admin), including expired grants so a client can\nDELETE before re-granting. Project-secret setup (`sk_proj`) and\nowning-team (`relation=team`) rows are not returned. Grants are not in\n`resource_scope_index`; project scope is required on the query (same as\nget). Requires `project.read`. `expand: [\"principal\"]` additionally\nrequires `user.read` and `team.read` (documented on the expand enum;\nthose scopes cannot be ANDed onto this security block because they are\nbody-conditional).\n\n * @summary Query grants\n */\nexport const queryGrants = async (\n queryGrantsBody: QueryGrantsBody,\n params: QueryGrantsParams,\n options?: RequestInit,\n): Promise<QueryGrants200> => {\n return customFetch<QueryGrants200>(getQueryGrantsUrl(params), {\n ...options,\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", ...options?.headers },\n body: JSON.stringify(queryGrantsBody),\n });\n};\n\nexport const getGetGrantUrl = (id: string, params: GetGrantParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/grants/${id}?${stringifiedParams}`\n : `${getProxyPath()}/grants/${id}`;\n};\n\n/**\n * Loads a grant by `(project_id, id)` that this API manages (user or team\nbound to viewer, editor, or admin) and that has not been revoked.\n\"Active\" here means not revoked: expired grants stay visible so the\nclient can DELETE before re-granting the same binding. Authorization\nstill ignores expired grants. Grants are not registered in\n`resource_scope_index`; project scope is required on the query (same as\nevents). Misses, revoked rows, project-secret setup (`sk_proj`),\nowning-team (`relation=team`) rows, and cross-project ids return 404.\n\n * @summary Get grant\n */\nexport const getGrant = async (\n id: string,\n params: GetGrantParams,\n options?: RequestInit,\n): Promise<GetGrant200> => {\n return customFetch<GetGrant200>(getGetGrantUrl(id, params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getDeleteGrantUrl = (id: string, params: DeleteGrantParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/grants/${id}?${stringifiedParams}`\n : `${getProxyPath()}/grants/${id}`;\n};\n\n/**\n * Soft-revokes a grant this API manages and emits `authz.revoked`.\nAlready-revoked, missing, project-secret setup, and owning-team grants\nreturn 404. The row is not un-revoked. Expired grants can still be\nrevoked so the unique binding can be reused.\n\n * @summary Revoke grant\n */\nexport const deleteGrant = async (\n id: string,\n params: DeleteGrantParams,\n options?: RequestInit,\n): Promise<void> => {\n return customFetch<void>(getDeleteGrantUrl(id, params), {\n ...options,\n method: \"DELETE\",\n });\n};\n\nexport const getListEventsUrl = (params: ListEventsParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n const explodeParameters = [\"category\", \"event_type\"];\n\n if (Array.isArray(value) && explodeParameters.includes(key)) {\n value.forEach((v) => {\n normalizedParams.append(key, v === null ? \"null\" : v.toString());\n });\n return;\n }\n\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/events?${stringifiedParams}`\n : `${getProxyPath()}/events`;\n};\n\n/**\n * Returns project-scoped audit events, newest-first by keyset on\n`(created_at, id)` (ADR 027 / ADR 049). Pass `order=asc` for oldest-first.\nRequires `events.read`.\n\nPre-claim projects return an empty list (events are stored but not\nvisible until claim succeeds). Team-scoped credentials see only events\nwhose emit-time `team_id` matches the credential team (enforced when\nteam-scoped tokens exist).\n\nClients discriminate each item via `event_type` (OpenAPI Event oneOf) —\nsee docs/design/api/events-catalog.md.\n\n * @summary List events\n */\nexport const listEvents = async (\n params: ListEventsParams,\n options?: RequestInit,\n): Promise<ListEvents200> => {\n return customFetch<ListEvents200>(getListEventsUrl(params), {\n ...options,\n method: \"GET\",\n });\n};\n\nexport const getGetEventUrl = (id: string, params: GetEventParams) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value !== undefined) {\n normalizedParams.append(key, value === null ? \"null\" : value.toString());\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0\n ? `${getProxyPath()}/events/${id}?${stringifiedParams}`\n : `${getProxyPath()}/events/${id}`;\n};\n\n/**\n * Loads a single event by `(project_id, id)`. Requires `events.read`.\nEvents are not registered in `resource_scope_index`; project scope is\nrequired on the query (ADR 049). Misses and cross-project ids return 404.\n\nPre-claim projects return 404 (stored events stay invisible until claim).\n\n * @summary Get event by ID\n */\nexport const getEvent = async (\n id: string,\n params: GetEventParams,\n options?: RequestInit,\n): Promise<GetEvent200> => {\n return customFetch<GetEvent200>(getGetEventUrl(id, params), {\n ...options,\n method: \"GET\",\n });\n};\n"],"mappings":"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"}