@zitadel/api 0.0.0 → 0.1.0-alpha.2

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 (229) hide show
  1. package/dist/generated/endpoints/zitadelNextGen.d.mts +2 -2
  2. package/dist/generated/endpoints/zitadelNextGen.d.ts +17 -7
  3. package/dist/generated/endpoints/zitadelNextGen.d.ts.map +1 -1
  4. package/dist/generated/endpoints/zitadelNextGen.mjs +69 -16
  5. package/dist/generated/endpoints/zitadelNextGen.mjs.map +1 -1
  6. package/dist/generated/endpoints/zitadelNextGen.msw.d.mts +8 -5
  7. package/dist/generated/endpoints/zitadelNextGen.msw.d.mts.map +1 -1
  8. package/dist/generated/endpoints/zitadelNextGen.msw.d.ts +7 -4
  9. package/dist/generated/endpoints/zitadelNextGen.msw.d.ts.map +1 -1
  10. package/dist/generated/endpoints/zitadelNextGen.msw.mjs +248 -228
  11. package/dist/generated/endpoints/zitadelNextGen.msw.mjs.map +1 -1
  12. package/dist/generated/endpoints/zitadelNextGen.zod.d.mts +140 -106
  13. package/dist/generated/endpoints/zitadelNextGen.zod.d.mts.map +1 -1
  14. package/dist/generated/endpoints/zitadelNextGen.zod.d.ts +137 -103
  15. package/dist/generated/endpoints/zitadelNextGen.zod.d.ts.map +1 -1
  16. package/dist/generated/endpoints/zitadelNextGen.zod.mjs +105 -83
  17. package/dist/generated/endpoints/zitadelNextGen.zod.mjs.map +1 -1
  18. package/dist/generated/model/createFlowDefinition201.d.ts +11 -144
  19. package/dist/generated/model/createFlowDefinition201.d.ts.map +1 -1
  20. package/dist/generated/model/createFlowDefinition201FlowDefinition.d.ts +56 -0
  21. package/dist/generated/model/createFlowDefinition201FlowDefinition.d.ts.map +1 -0
  22. package/dist/generated/model/createFlowDefinition201FlowDefinitionAudience.d.ts +21 -0
  23. package/dist/generated/model/createFlowDefinition201FlowDefinitionAudience.d.ts.map +1 -0
  24. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItem.d.ts +71 -0
  25. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItem.d.ts.map +1 -0
  26. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemActions.d.ts +29 -0
  27. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemActions.d.ts.map +1 -0
  28. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemComplete.d.ts +19 -0
  29. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemComplete.d.ts.map +1 -0
  30. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemGates.d.ts +35 -0
  31. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemGates.d.ts.map +1 -0
  32. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemGatesConfig.d.ts +16 -0
  33. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemGatesConfig.d.ts.map +1 -0
  34. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemGatesKind.d.ts +18 -0
  35. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemGatesKind.d.ts.map +1 -0
  36. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemOnSuccess.d.ts +19 -0
  37. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemOnSuccess.d.ts.map +1 -0
  38. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemSsoProvidersItem.d.ts +19 -0
  39. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemSsoProvidersItem.d.ts.map +1 -0
  40. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemTransitions.d.ts +35 -0
  41. package/dist/generated/model/createFlowDefinition201FlowDefinitionStepsItemTransitions.d.ts.map +1 -0
  42. package/dist/generated/model/deleteFlowDefinitionParams.d.ts +15 -0
  43. package/dist/generated/model/deleteFlowDefinitionParams.d.ts.map +1 -0
  44. package/dist/generated/model/getFlowDefinition200.d.ts +11 -144
  45. package/dist/generated/model/getFlowDefinition200.d.ts.map +1 -1
  46. package/dist/generated/model/getFlowDefinition200FlowDefinition.d.ts +56 -0
  47. package/dist/generated/model/getFlowDefinition200FlowDefinition.d.ts.map +1 -0
  48. package/dist/generated/model/getFlowDefinition200FlowDefinitionAudience.d.ts +21 -0
  49. package/dist/generated/model/getFlowDefinition200FlowDefinitionAudience.d.ts.map +1 -0
  50. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItem.d.ts +71 -0
  51. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItem.d.ts.map +1 -0
  52. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemActions.d.ts +29 -0
  53. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemActions.d.ts.map +1 -0
  54. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemComplete.d.ts +19 -0
  55. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemComplete.d.ts.map +1 -0
  56. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemGates.d.ts +35 -0
  57. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemGates.d.ts.map +1 -0
  58. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemGatesConfig.d.ts +16 -0
  59. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemGatesConfig.d.ts.map +1 -0
  60. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemGatesKind.d.ts +18 -0
  61. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemGatesKind.d.ts.map +1 -0
  62. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemOnSuccess.d.ts +19 -0
  63. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemOnSuccess.d.ts.map +1 -0
  64. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemSsoProvidersItem.d.ts +19 -0
  65. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemSsoProvidersItem.d.ts.map +1 -0
  66. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemTransitions.d.ts +35 -0
  67. package/dist/generated/model/getFlowDefinition200FlowDefinitionStepsItemTransitions.d.ts.map +1 -0
  68. package/dist/generated/model/getFlowDefinitionParams.d.ts +15 -0
  69. package/dist/generated/model/getFlowDefinitionParams.d.ts.map +1 -0
  70. package/dist/generated/model/getMyUser200.d.ts +11 -0
  71. package/dist/generated/model/getMyUser200.d.ts.map +1 -0
  72. package/dist/generated/model/{getFlowDefinition404.d.ts → getMyUser401.d.ts} +4 -4
  73. package/dist/generated/model/getMyUser401.d.ts.map +1 -0
  74. package/dist/generated/model/{getFlowDefinition404Details.d.ts → getMyUser401Details.d.ts} +2 -2
  75. package/dist/generated/model/getMyUser401Details.d.ts.map +1 -0
  76. package/dist/generated/model/getMyUser404.d.ts +26 -0
  77. package/dist/generated/model/getMyUser404.d.ts.map +1 -0
  78. package/dist/generated/model/{deleteFlowDefinition404.d.ts → getMyUserDefault.d.ts} +4 -4
  79. package/dist/generated/model/getMyUserDefault.d.ts.map +1 -0
  80. package/dist/generated/model/{deleteFlowDefinition404Details.d.ts → getMyUserDefaultDetails.d.ts} +2 -2
  81. package/dist/generated/model/getMyUserDefaultDetails.d.ts.map +1 -0
  82. package/dist/generated/model/index.d.mts +2 -2
  83. package/dist/generated/model/index.d.ts +52 -4
  84. package/dist/generated/model/index.d.ts.map +1 -1
  85. package/dist/generated/model/index.mjs +37 -1
  86. package/dist/generated/model/index.mjs.map +1 -1
  87. package/dist/generated/model/listFlowDefinitions200FlowDefinitionsItem.d.ts +1 -1
  88. package/dist/generated/model/listFlowDefinitions200FlowDefinitionsItem.d.ts.map +1 -1
  89. package/dist/generated/model/listFlowDefinitionsParams.d.ts +1 -1
  90. package/dist/generated/model/setUserPassword400.d.ts +20 -0
  91. package/dist/generated/model/setUserPassword400.d.ts.map +1 -0
  92. package/dist/generated/model/setUserPassword400Details.d.ts +14 -0
  93. package/dist/generated/model/setUserPassword400Details.d.ts.map +1 -0
  94. package/dist/generated/model/setUserPassword404.d.ts +20 -0
  95. package/dist/generated/model/setUserPassword404.d.ts.map +1 -0
  96. package/dist/generated/model/setUserPassword404Details.d.ts +14 -0
  97. package/dist/generated/model/setUserPassword404Details.d.ts.map +1 -0
  98. package/dist/generated/model/setUserPassword500.d.ts +20 -0
  99. package/dist/generated/model/setUserPassword500.d.ts.map +1 -0
  100. package/dist/generated/model/setUserPassword500Details.d.ts +14 -0
  101. package/dist/generated/model/setUserPassword500Details.d.ts.map +1 -0
  102. package/dist/generated/model/setUserPasswordBody.d.ts +19 -0
  103. package/dist/generated/model/setUserPasswordBody.d.ts.map +1 -0
  104. package/dist/generated/model/setUserPasswordDefault.d.ts +20 -0
  105. package/dist/generated/model/setUserPasswordDefault.d.ts.map +1 -0
  106. package/dist/generated/model/setUserPasswordDefaultDetails.d.ts +14 -0
  107. package/dist/generated/model/setUserPasswordDefaultDetails.d.ts.map +1 -0
  108. package/dist/generated/model/setUserPasswordParams.d.ts +15 -0
  109. package/dist/generated/model/setUserPasswordParams.d.ts.map +1 -0
  110. package/dist/generated/model/updateFlowDefinition200.d.ts +11 -144
  111. package/dist/generated/model/updateFlowDefinition200.d.ts.map +1 -1
  112. package/dist/generated/model/updateFlowDefinition200FlowDefinition.d.ts +56 -0
  113. package/dist/generated/model/updateFlowDefinition200FlowDefinition.d.ts.map +1 -0
  114. package/dist/generated/model/updateFlowDefinition200FlowDefinitionAudience.d.ts +21 -0
  115. package/dist/generated/model/updateFlowDefinition200FlowDefinitionAudience.d.ts.map +1 -0
  116. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItem.d.ts +71 -0
  117. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItem.d.ts.map +1 -0
  118. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemActions.d.ts +29 -0
  119. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemActions.d.ts.map +1 -0
  120. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemComplete.d.ts +19 -0
  121. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemComplete.d.ts.map +1 -0
  122. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemGates.d.ts +35 -0
  123. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemGates.d.ts.map +1 -0
  124. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemGatesConfig.d.ts +16 -0
  125. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemGatesConfig.d.ts.map +1 -0
  126. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemGatesKind.d.ts +18 -0
  127. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemGatesKind.d.ts.map +1 -0
  128. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemOnSuccess.d.ts +19 -0
  129. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemOnSuccess.d.ts.map +1 -0
  130. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemSsoProvidersItem.d.ts +19 -0
  131. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemSsoProvidersItem.d.ts.map +1 -0
  132. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemTransitions.d.ts +35 -0
  133. package/dist/generated/model/updateFlowDefinition200FlowDefinitionStepsItemTransitions.d.ts.map +1 -0
  134. package/dist/generated/model/updateFlowDefinitionParams.d.ts +15 -0
  135. package/dist/generated/model/updateFlowDefinitionParams.d.ts.map +1 -0
  136. package/dist/{index-DlEenfQJ.d.mts → index-DyBulyp9.d.mts} +1685 -938
  137. package/dist/index-DyBulyp9.d.mts.map +1 -0
  138. package/dist/runtime/api-factory.d.mts +1 -1
  139. package/dist/runtime/config.d.mts +6 -3
  140. package/dist/runtime/config.d.mts.map +1 -1
  141. package/dist/runtime/config.d.ts +6 -3
  142. package/dist/runtime/config.d.ts.map +1 -1
  143. package/dist/runtime/config.mjs +42 -11
  144. package/dist/runtime/config.mjs.map +1 -1
  145. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  146. package/dist/{zitadelNextGen-C-fBEgnH.d.mts → zitadelNextGen-D6pDH5nq.d.mts} +20 -10
  147. package/dist/zitadelNextGen-D6pDH5nq.d.mts.map +1 -0
  148. package/package.json +1 -1
  149. package/src/generated/endpoints/zitadelNextGen.msw.ts +82 -34
  150. package/src/generated/endpoints/zitadelNextGen.ts +111 -16
  151. package/src/generated/endpoints/zitadelNextGen.zod.ts +452 -384
  152. package/src/generated/model/createFlowDefinition201.ts +11 -144
  153. package/src/generated/model/createFlowDefinition201FlowDefinition.ts +58 -0
  154. package/src/generated/model/createFlowDefinition201FlowDefinitionAudience.ts +21 -0
  155. package/src/generated/model/createFlowDefinition201FlowDefinitionStepsItem.ts +71 -0
  156. package/src/generated/model/createFlowDefinition201FlowDefinitionStepsItemActions.ts +29 -0
  157. package/src/generated/model/createFlowDefinition201FlowDefinitionStepsItemComplete.ts +21 -0
  158. package/src/generated/model/createFlowDefinition201FlowDefinitionStepsItemGates.ts +35 -0
  159. package/src/generated/model/createFlowDefinition201FlowDefinitionStepsItemGatesConfig.ts +14 -0
  160. package/src/generated/model/createFlowDefinition201FlowDefinitionStepsItemGatesKind.ts +20 -0
  161. package/src/generated/model/createFlowDefinition201FlowDefinitionStepsItemOnSuccess.ts +21 -0
  162. package/src/generated/model/createFlowDefinition201FlowDefinitionStepsItemSsoProvidersItem.ts +19 -0
  163. package/src/generated/model/createFlowDefinition201FlowDefinitionStepsItemTransitions.ts +35 -0
  164. package/src/generated/model/deleteFlowDefinitionParams.ts +15 -0
  165. package/src/generated/model/getFlowDefinition200.ts +11 -144
  166. package/src/generated/model/getFlowDefinition200FlowDefinition.ts +58 -0
  167. package/src/generated/model/getFlowDefinition200FlowDefinitionAudience.ts +21 -0
  168. package/src/generated/model/getFlowDefinition200FlowDefinitionStepsItem.ts +71 -0
  169. package/src/generated/model/getFlowDefinition200FlowDefinitionStepsItemActions.ts +29 -0
  170. package/src/generated/model/getFlowDefinition200FlowDefinitionStepsItemComplete.ts +21 -0
  171. package/src/generated/model/getFlowDefinition200FlowDefinitionStepsItemGates.ts +35 -0
  172. package/src/generated/model/getFlowDefinition200FlowDefinitionStepsItemGatesConfig.ts +14 -0
  173. package/src/generated/model/getFlowDefinition200FlowDefinitionStepsItemGatesKind.ts +20 -0
  174. package/src/generated/model/getFlowDefinition200FlowDefinitionStepsItemOnSuccess.ts +21 -0
  175. package/src/generated/model/getFlowDefinition200FlowDefinitionStepsItemSsoProvidersItem.ts +19 -0
  176. package/src/generated/model/getFlowDefinition200FlowDefinitionStepsItemTransitions.ts +35 -0
  177. package/src/generated/model/getFlowDefinitionParams.ts +15 -0
  178. package/src/generated/model/getMyUser200.ts +9 -0
  179. package/src/generated/model/{getFlowDefinition404.ts → getMyUser401.ts} +3 -3
  180. package/src/generated/model/{getFlowDefinition404Details.ts → getMyUser401Details.ts} +1 -1
  181. package/src/generated/model/getMyUser404.ts +24 -0
  182. package/src/generated/model/{deleteFlowDefinition404.ts → getMyUserDefault.ts} +3 -3
  183. package/src/generated/model/{deleteFlowDefinition404Details.ts → getMyUserDefaultDetails.ts} +1 -1
  184. package/src/generated/model/index.ts +52 -4
  185. package/src/generated/model/listFlowDefinitions200FlowDefinitionsItem.ts +1 -1
  186. package/src/generated/model/listFlowDefinitionsParams.ts +1 -1
  187. package/src/generated/model/setUserPassword400.ts +20 -0
  188. package/src/generated/model/setUserPassword400Details.ts +12 -0
  189. package/src/generated/model/setUserPassword404.ts +20 -0
  190. package/src/generated/model/setUserPassword404Details.ts +12 -0
  191. package/src/generated/model/setUserPassword500.ts +20 -0
  192. package/src/generated/model/setUserPassword500Details.ts +12 -0
  193. package/src/generated/model/setUserPasswordBody.ts +19 -0
  194. package/src/generated/model/setUserPasswordDefault.ts +20 -0
  195. package/src/generated/model/setUserPasswordDefaultDetails.ts +12 -0
  196. package/src/generated/model/setUserPasswordParams.ts +15 -0
  197. package/src/generated/model/updateFlowDefinition200.ts +11 -144
  198. package/src/generated/model/updateFlowDefinition200FlowDefinition.ts +58 -0
  199. package/src/generated/model/updateFlowDefinition200FlowDefinitionAudience.ts +21 -0
  200. package/src/generated/model/updateFlowDefinition200FlowDefinitionStepsItem.ts +71 -0
  201. package/src/generated/model/updateFlowDefinition200FlowDefinitionStepsItemActions.ts +29 -0
  202. package/src/generated/model/updateFlowDefinition200FlowDefinitionStepsItemComplete.ts +21 -0
  203. package/src/generated/model/updateFlowDefinition200FlowDefinitionStepsItemGates.ts +35 -0
  204. package/src/generated/model/updateFlowDefinition200FlowDefinitionStepsItemGatesConfig.ts +14 -0
  205. package/src/generated/model/updateFlowDefinition200FlowDefinitionStepsItemGatesKind.ts +20 -0
  206. package/src/generated/model/updateFlowDefinition200FlowDefinitionStepsItemOnSuccess.ts +21 -0
  207. package/src/generated/model/updateFlowDefinition200FlowDefinitionStepsItemSsoProvidersItem.ts +19 -0
  208. package/src/generated/model/updateFlowDefinition200FlowDefinitionStepsItemTransitions.ts +35 -0
  209. package/src/generated/model/updateFlowDefinitionParams.ts +15 -0
  210. package/src/runtime/config.spec.ts +41 -0
  211. package/src/runtime/config.ts +46 -18
  212. package/dist/generated/endpoints/zitadelNextGen.d.mts.map +0 -1
  213. package/dist/generated/model/createSession201SessionFactors.d.ts +0 -18
  214. package/dist/generated/model/createSession201SessionFactors.d.ts.map +0 -1
  215. package/dist/generated/model/deleteFlowDefinition404.d.ts.map +0 -1
  216. package/dist/generated/model/deleteFlowDefinition404Details.d.ts.map +0 -1
  217. package/dist/generated/model/exchangeHandoff200SessionFactors.d.ts +0 -18
  218. package/dist/generated/model/exchangeHandoff200SessionFactors.d.ts.map +0 -1
  219. package/dist/generated/model/getFlowDefinition404.d.ts.map +0 -1
  220. package/dist/generated/model/getFlowDefinition404Details.d.ts.map +0 -1
  221. package/dist/generated/model/getMySession200Factors.d.ts +0 -18
  222. package/dist/generated/model/getMySession200Factors.d.ts.map +0 -1
  223. package/dist/generated/model/getSession200Factors.d.ts +0 -18
  224. package/dist/generated/model/getSession200Factors.d.ts.map +0 -1
  225. package/dist/generated/model/index.d.mts.map +0 -1
  226. package/dist/generated/model/listSessions200SessionsItemFactors.d.ts +0 -18
  227. package/dist/generated/model/listSessions200SessionsItemFactors.d.ts.map +0 -1
  228. package/dist/index-DlEenfQJ.d.mts.map +0 -1
  229. package/dist/zitadelNextGen-C-fBEgnH.d.mts.map +0 -1
@@ -585,6 +585,41 @@ export const GetUserByIDQueryParams = zod.strictObject({
585
585
 
586
586
  export const GetUserByIDResponse = zod.record(zod.string(), zod.unknown());
587
587
 
588
+ /**
589
+ * @summary Set user password
590
+ */
591
+ export const setUserPasswordPathUserIdRegExp = new RegExp("^user_[a-zA-Z0-9_-]+$");
592
+
593
+ export const SetUserPasswordParams = zod.object({
594
+ user_id: zod.string().regex(setUserPasswordPathUserIdRegExp),
595
+ });
596
+
597
+ export const setUserPasswordQueryProjectIdRegExp = new RegExp("^[a-zA-Z0-9_-]+$");
598
+
599
+ export const SetUserPasswordQueryParams = zod.strictObject({
600
+ project_id: zod
601
+ .string()
602
+ .regex(setUserPasswordQueryProjectIdRegExp)
603
+ .describe("The unique identifier of the project"),
604
+ });
605
+
606
+ export const SetUserPasswordBody = zod
607
+ .object({
608
+ password: zod.string().describe("The new password for the user."),
609
+ isChangeRequired: zod
610
+ .boolean()
611
+ .optional()
612
+ .describe(
613
+ "Whether the user is required to change their password on the next login.\nIf not provided, it will default to false.\n",
614
+ ),
615
+ })
616
+ .describe("Request to update the user's password.");
617
+
618
+ /**
619
+ * @summary Get my user information
620
+ */
621
+ export const GetMyUserResponse = zod.record(zod.string(), zod.unknown());
622
+
588
623
  /**
589
624
  * Resolves a flow definition based on purpose + audience context and returns
590
625
  the first capability step. Creates a new session implicitly unless
@@ -941,6 +976,15 @@ export const SubmitFlowStepParams = zod.object({
941
976
  ),
942
977
  });
943
978
 
979
+ export const SubmitFlowStepHeader = zod.strictObject({
980
+ Origin: zod
981
+ .url()
982
+ .optional()
983
+ .describe(
984
+ "Standard browser `Origin` header. When a step issues a passkey\nchallenge, the server derives the WebAuthn relying-party id and the\nallowed origin from this value. Browsers send it automatically on the\nfetch POST; no client action is required.\n",
985
+ ),
986
+ });
987
+
944
988
  export const SubmitFlowStepBody = zod.object({
945
989
  session_token: zod
946
990
  .string()
@@ -3137,7 +3181,7 @@ export const ListFlowDefinitionsQueryParams = zod.strictObject({
3137
3181
  project_id: zod
3138
3182
  .string()
3139
3183
  .regex(listFlowDefinitionsQueryProjectIdRegExp)
3140
- .describe("The unique identifier of the project"),
3184
+ .describe("The project id to filter by."),
3141
3185
  purpose: zod
3142
3186
  .enum(["login", "register", "recovery", "profiling", "reauth", "link_account"])
3143
3187
  .optional()
@@ -3162,6 +3206,7 @@ export const ListFlowDefinitionsResponse = zod.object({
3162
3206
  .describe("Identifier of the project this flow definition belongs to."),
3163
3207
  schema_uri: zod
3164
3208
  .url()
3209
+ .optional()
3165
3210
  .describe(
3166
3211
  "URI of the flow definition schema this definition was authored against.\nIf the schema_uri was not provided in the request, the flow definition is validated against the latest version of the schema, and the response includes the schema_uri of the latest version.\n",
3167
3212
  ),
@@ -3191,30 +3236,232 @@ export const GetFlowDefinitionParams = zod.object({
3191
3236
  id: zod.string().describe("The id returned by the POST \/flow_definitions endpoint.\n"),
3192
3237
  });
3193
3238
 
3194
- export const getFlowDefinitionResponseOneNameRegExp = new RegExp("^[a-z][a-z0-9-]\*$");
3195
- export const getFlowDefinitionResponseOneStepsItemFieldsDefault = [];
3196
- export const getFlowDefinitionResponseOneStepsItemActionsPrimaryDefault = false;
3197
- export const getFlowDefinitionResponseOneStepsItemActionsDefault = {} as const;
3198
- export const getFlowDefinitionResponseOneStepsItemGatesDefault = {} as const;
3199
- export const getFlowDefinitionResponseOneStepsItemSsoProvidersDefault = [];
3239
+ export const getFlowDefinitionQueryProjectIdRegExp = new RegExp("^[a-zA-Z0-9_-]+$");
3240
+
3241
+ export const GetFlowDefinitionQueryParams = zod.strictObject({
3242
+ project_id: zod
3243
+ .string()
3244
+ .regex(getFlowDefinitionQueryProjectIdRegExp)
3245
+ .describe("The project id to filter by."),
3246
+ });
3247
+
3248
+ export const getFlowDefinitionResponseFlowDefinitionNameRegExp = new RegExp("^[a-z][a-z0-9-]\*$");
3249
+ export const getFlowDefinitionResponseFlowDefinitionStepsItemFieldsDefault = [];
3250
+ export const getFlowDefinitionResponseFlowDefinitionStepsItemActionsPrimaryDefault = false;
3251
+ export const getFlowDefinitionResponseFlowDefinitionStepsItemActionsDefault = {} as const;
3252
+ export const getFlowDefinitionResponseFlowDefinitionStepsItemGatesDefault = {} as const;
3253
+ export const getFlowDefinitionResponseFlowDefinitionStepsItemSsoProvidersDefault = [];
3254
+
3255
+ export const GetFlowDefinitionResponse = zod.object({
3256
+ id: zod.string().describe("Unique identifier for the flow definition."),
3257
+ project_id: zod.string().describe("Identifier of the project this flow definition belongs to."),
3258
+ status: zod.string().describe("Status of the flow definition."),
3259
+ flow_definition: zod
3260
+ .object({
3261
+ name: zod
3262
+ .string()
3263
+ .regex(getFlowDefinitionResponseFlowDefinitionNameRegExp)
3264
+ .describe(
3265
+ "Stable identifier for this flow, used as the target of cross-flow\n`switch` and `pivot` transitions. Renaming is not supported — the\n`name` is part of the public contract another definition may\nreference. Acts as the human display label as well; no separate slug.\n",
3266
+ ),
3267
+ user_schema: zod
3268
+ .url()
3269
+ .describe(
3270
+ "User schema this flow operates on. Step `fields` reference properties\ndefined in this schema. The engine resolves field types, validation,\nand implicit outcomes from schema annotations at runtime.\n",
3271
+ ),
3272
+ purposes: zod
3273
+ .record(zod.string(), zod.string())
3274
+ .describe(
3275
+ "Maps each purpose this definition handles to its entry-point step.\nKeys are purpose names; values must match a `name` in `steps`. A\ndefinition can serve multiple purposes (e.g. a combined login\/register\nflow) by listing one entry per purpose.\n",
3276
+ ),
3277
+ audience: zod
3278
+ .object({
3279
+ team_ids: zod
3280
+ .array(zod.string())
3281
+ .optional()
3282
+ .describe(
3283
+ "Restrict to specific teams (organizations). Empty means no team restriction.",
3284
+ ),
3285
+ app_ids: zod
3286
+ .array(zod.string())
3287
+ .optional()
3288
+ .describe("Restrict to specific applications. Empty means no app restriction."),
3289
+ })
3290
+ .optional()
3291
+ .describe(
3292
+ 'Scopes which teams or apps this flow definition applies to. Empty or\nomitted fields mean \"no restriction\"; when both are empty the definition\nmatches every request in the project. The engine picks the most specific\nmatching definition: app > team > project-wide.\n',
3293
+ ),
3294
+ steps: zod
3295
+ .array(
3296
+ zod
3297
+ .object({
3298
+ name: zod
3299
+ .string()
3300
+ .describe(
3301
+ "Unique step identifier within this flow. Used as transition targets\nand returned in the API response as `step.name`.\n",
3302
+ ),
3303
+ fields: zod
3304
+ .array(zod.string())
3305
+ .default(getFlowDefinitionResponseFlowDefinitionStepsItemFieldsDefault)
3306
+ .describe(
3307
+ "Schema property names to collect from the user. Each entry references\na property in the flow's user schema. The engine resolves field type,\nvalidation rules, and implicit outcomes from schema annotations\n(e.g. a property with `x-unique` set implies a `user_not_found`\ntransition outcome).\n",
3308
+ ),
3309
+ actions: zod
3310
+ .record(
3311
+ zod.string(),
3312
+ zod
3313
+ .object({
3314
+ primary: zod
3315
+ .boolean()
3316
+ .default(
3317
+ getFlowDefinitionResponseFlowDefinitionStepsItemActionsPrimaryDefault,
3318
+ )
3319
+ .describe(
3320
+ "Marks this as the default\/primary action. The runtime template uses\nthis hint to choose visual emphasis. At most one action per step\nshould be primary; this is not enforced here.\n",
3321
+ ),
3322
+ text_key: zod
3323
+ .string()
3324
+ .optional()
3325
+ .describe(
3326
+ "Optional localization key override for the action's label. When\nomitted, the engine derives a key from the step and action names.\nDisplay text is resolved client-side from a locale dictionary, never\nby the engine.\n",
3327
+ ),
3328
+ })
3329
+ .describe(
3330
+ "Configuration for a user-invokable action on a step. Keyed by action name\nin the parent dictionary. The action name is sent back in the submit\nrequest as `action`.\n",
3331
+ ),
3332
+ )
3333
+ .default(getFlowDefinitionResponseFlowDefinitionStepsItemActionsDefault)
3334
+ .describe(
3335
+ "Actions the user can take. Keyed by action name.\nThe action name is what the frontend sends back in the submit request.\nIf omitted, the engine provides a default `submit` action.\n",
3336
+ ),
3337
+ gates: zod
3338
+ .record(
3339
+ zod.string(),
3340
+ zod
3341
+ .object({
3342
+ kind: zod
3343
+ .enum(["captcha"])
3344
+ .describe(
3345
+ "The gate category. Only `captcha` is currently defined. Authenticator\nceremonies (e.g. passkey) are modelled as credential auth_attempts via\n`x-credential` on a field, not as gates.\n",
3346
+ ),
3347
+ provider: zod
3348
+ .string()
3349
+ .describe(
3350
+ "Provider identifier within the gate kind — e.g. `altcha`, `turnstile`,\n`hcaptcha`. The engine looks up an implementation in its provider\nregistry.\n",
3351
+ ),
3352
+ config: zod
3353
+ .record(zod.string(), zod.unknown())
3354
+ .optional()
3355
+ .describe(
3356
+ "Provider-specific configuration consumed by the implementation when\nissuing the per-render challenge. Opaque to the engine.\n",
3357
+ ),
3358
+ })
3359
+ .describe(
3360
+ "A security challenge that must be satisfied before this step's submission\nis accepted. The engine may also inject gates at runtime based on policy\nor risk evaluation.\n",
3361
+ ),
3362
+ )
3363
+ .default(getFlowDefinitionResponseFlowDefinitionStepsItemGatesDefault)
3364
+ .describe(
3365
+ 'Security gates that must be satisfied before submission. Keyed by gate\nname. Each gate selects a kind (e.g. \"captcha\") and provider-specific\nconfiguration. The engine may also inject gates dynamically based on\npolicy.\n',
3366
+ ),
3367
+ sso_providers: zod
3368
+ .array(
3369
+ zod
3370
+ .object({
3371
+ id: zod.string().describe("Provider instance identifier."),
3372
+ name: zod.string().describe("Display name for the provider."),
3373
+ template: zod
3374
+ .string()
3375
+ .describe("Template hint for rendering (logo, colors)."),
3376
+ })
3377
+ .describe("An available SSO identity provider."),
3378
+ )
3379
+ .default(getFlowDefinitionResponseFlowDefinitionStepsItemSsoProvidersDefault)
3380
+ .describe("Available SSO identity providers for this step."),
3381
+ on_success: zod
3382
+ .enum(["create_user"])
3383
+ .optional()
3384
+ .describe(
3385
+ "Server-side mutation to execute when this step completes successfully.\nRuns after field validation passes, before the transition fires.\n\n- create_user: creates the user record (registration flows)\n",
3386
+ ),
3387
+ complete: zod
3388
+ .enum(["redirect", "show"])
3389
+ .optional()
3390
+ .describe(
3391
+ "Marks this as a terminal step. Tells the frontend what to do:\n- redirect: navigate to redirect_uri (OIDC\/SAML callback done)\n- show: render as a success\/info screen\n",
3392
+ ),
3393
+ transitions: zod
3394
+ .record(
3395
+ zod.string(),
3396
+ zod.object({
3397
+ target: zod
3398
+ .string()
3399
+ .describe(
3400
+ "Step name within this flow (when `action` is null), or the name\nof another flow (when `action` is `switch` or `pivot`).\n",
3401
+ ),
3402
+ action: zod
3403
+ .union([zod.enum(["switch", "pivot"]), zod.null()])
3404
+ .optional()
3405
+ .describe(
3406
+ "How to interpret `target`:\n- null (omitted): transition to a step in the current flow.\n- switch: replace the current flow with the target flow.\n No return — the current flow is discarded.\n Example: login ↔ register.\n- pivot: push the target flow onto the stack. The current flow\n is paused and resumes when the target flow completes (auto-pop).\n Example: login → recovery → back to login.\n",
3407
+ ),
3408
+ }),
3409
+ )
3410
+ .optional()
3411
+ .describe(
3412
+ "Maps action\/outcome names to their transition descriptor.\n\nKeys match action names from the `actions` dict. Additional keys\ncome from implicit outcomes based on schema annotations\n(e.g. `user_not_found` from `x-unique` fields) and engine\nevents (e.g. `sso`, `callback`).\n",
3413
+ ),
3414
+ })
3415
+ .describe(
3416
+ "A step in a flow definition. This is the admin-authored configuration,\nnot the runtime payload sent to the frontend.\n\nSteps are schema-driven: `fields` references properties from the flow's\nuser schema, and the engine resolves field metadata (type, validation,\nimplicit outcomes) from schema annotations at runtime.\n\nA step with only `complete` set is a terminal step. All other steps are\nrendered to the frontend as capability payloads.\n",
3417
+ ),
3418
+ )
3419
+ .min(1)
3420
+ .describe(
3421
+ "Ordered list of steps in this flow. The order is for human readability —\nactual step sequencing is determined by transitions.\n",
3422
+ ),
3423
+ })
3424
+ .describe(
3425
+ "A flow definition is the server-side configuration that describes a complete\nauthentication or identity flow. It is NOT sent to the frontend — the flow\nengine evaluates it and produces FlowResponse payloads (steps with capability\ndictionaries) for the client.\n\nFlow definitions are created by administrators and stored in the project\/team\nconfiguration hierarchy. The engine selects the matching definition based on\nthe purpose + audience when a flow is created via POST \/flow.\n",
3426
+ ),
3427
+ created_at: zod.iso.datetime({ offset: true }),
3428
+ updated_at: zod.iso.datetime({ offset: true }),
3429
+ });
3430
+
3431
+ /**
3432
+ * Update a flow definition by id
3433
+ * @summary Update a flow definition by id
3434
+ */
3435
+ export const UpdateFlowDefinitionParams = zod.object({
3436
+ id: zod.string().describe("The id returned by the POST \/flow_definitions endpoint.\n"),
3437
+ });
3438
+
3439
+ export const updateFlowDefinitionQueryProjectIdRegExp = new RegExp("^[a-zA-Z0-9_-]+$");
3440
+
3441
+ export const UpdateFlowDefinitionQueryParams = zod.strictObject({
3442
+ project_id: zod
3443
+ .string()
3444
+ .regex(updateFlowDefinitionQueryProjectIdRegExp)
3445
+ .describe("The project id to filter by."),
3446
+ });
3447
+
3448
+ export const updateFlowDefinitionBodyStepsItemFieldsDefault = [];
3449
+ export const updateFlowDefinitionBodyStepsItemActionsPrimaryDefault = false;
3450
+ export const updateFlowDefinitionBodyStepsItemActionsDefault = {} as const;
3451
+ export const updateFlowDefinitionBodyStepsItemGatesDefault = {} as const;
3452
+ export const updateFlowDefinitionBodyStepsItemSsoProvidersDefault = [];
3200
3453
 
3201
- export const GetFlowDefinitionResponse = zod
3454
+ export const UpdateFlowDefinitionBody = zod
3202
3455
  .object({
3203
- name: zod
3204
- .string()
3205
- .regex(getFlowDefinitionResponseOneNameRegExp)
3206
- .describe(
3207
- "Stable identifier for this flow, used as the target of cross-flow\n`switch` and `pivot` transitions. Renaming is not supported — the\n`name` is part of the public contract another definition may\nreference. Acts as the human display label as well; no separate slug.\n",
3208
- ),
3209
3456
  user_schema: zod
3210
3457
  .url()
3211
- .describe(
3212
- "User schema this flow operates on. Step `fields` reference properties\ndefined in this schema. The engine resolves field types, validation,\nand implicit outcomes from schema annotations at runtime.\n",
3213
- ),
3458
+ .optional()
3459
+ .describe("User schema this flow operates on. Replaces the current value if provided.\n"),
3214
3460
  purposes: zod
3215
3461
  .record(zod.string(), zod.string())
3462
+ .optional()
3216
3463
  .describe(
3217
- "Maps each purpose this definition handles to its entry-point step.\nKeys are purpose names; values must match a `name` in `steps`. A\ndefinition can serve multiple purposes (e.g. a combined login\/register\nflow) by listing one entry per purpose.\n",
3464
+ "Replaces the full purpose-to-entry-step map if provided. Keys are\npurpose names; values must match a `name` in `steps`.\n",
3218
3465
  ),
3219
3466
  audience: zod
3220
3467
  .object({
@@ -3242,7 +3489,7 @@ export const GetFlowDefinitionResponse = zod
3242
3489
  ),
3243
3490
  fields: zod
3244
3491
  .array(zod.string())
3245
- .default(getFlowDefinitionResponseOneStepsItemFieldsDefault)
3492
+ .default(updateFlowDefinitionBodyStepsItemFieldsDefault)
3246
3493
  .describe(
3247
3494
  "Schema property names to collect from the user. Each entry references\na property in the flow's user schema. The engine resolves field type,\nvalidation rules, and implicit outcomes from schema annotations\n(e.g. a property with `x-unique` set implies a `user_not_found`\ntransition outcome).\n",
3248
3495
  ),
@@ -3253,7 +3500,7 @@ export const GetFlowDefinitionResponse = zod
3253
3500
  .object({
3254
3501
  primary: zod
3255
3502
  .boolean()
3256
- .default(getFlowDefinitionResponseOneStepsItemActionsPrimaryDefault)
3503
+ .default(updateFlowDefinitionBodyStepsItemActionsPrimaryDefault)
3257
3504
  .describe(
3258
3505
  "Marks this as the default\/primary action. The runtime template uses\nthis hint to choose visual emphasis. At most one action per step\nshould be primary; this is not enforced here.\n",
3259
3506
  ),
@@ -3268,7 +3515,7 @@ export const GetFlowDefinitionResponse = zod
3268
3515
  "Configuration for a user-invokable action on a step. Keyed by action name\nin the parent dictionary. The action name is sent back in the submit\nrequest as `action`.\n",
3269
3516
  ),
3270
3517
  )
3271
- .default(getFlowDefinitionResponseOneStepsItemActionsDefault)
3518
+ .default(updateFlowDefinitionBodyStepsItemActionsDefault)
3272
3519
  .describe(
3273
3520
  "Actions the user can take. Keyed by action name.\nThe action name is what the frontend sends back in the submit request.\nIf omitted, the engine provides a default `submit` action.\n",
3274
3521
  ),
@@ -3298,7 +3545,7 @@ export const GetFlowDefinitionResponse = zod
3298
3545
  "A security challenge that must be satisfied before this step's submission\nis accepted. The engine may also inject gates at runtime based on policy\nor risk evaluation.\n",
3299
3546
  ),
3300
3547
  )
3301
- .default(getFlowDefinitionResponseOneStepsItemGatesDefault)
3548
+ .default(updateFlowDefinitionBodyStepsItemGatesDefault)
3302
3549
  .describe(
3303
3550
  'Security gates that must be satisfied before submission. Keyed by gate\nname. Each gate selects a kind (e.g. \"captcha\") and provider-specific\nconfiguration. The engine may also inject gates dynamically based on\npolicy.\n',
3304
3551
  ),
@@ -3312,7 +3559,7 @@ export const GetFlowDefinitionResponse = zod
3312
3559
  })
3313
3560
  .describe("An available SSO identity provider."),
3314
3561
  )
3315
- .default(getFlowDefinitionResponseOneStepsItemSsoProvidersDefault)
3562
+ .default(updateFlowDefinitionBodyStepsItemSsoProvidersDefault)
3316
3563
  .describe("Available SSO identity providers for this step."),
3317
3564
  on_success: zod
3318
3565
  .enum(["create_user"])
@@ -3353,387 +3600,199 @@ export const GetFlowDefinitionResponse = zod
3353
3600
  ),
3354
3601
  )
3355
3602
  .min(1)
3603
+ .optional()
3356
3604
  .describe(
3357
- "Ordered list of steps in this flow. The order is for human readability —\nactual step sequencing is determined by transitions.\n",
3605
+ "Replaces the full steps array if provided. Partial step lists are not\nsupported supply all steps when updating this field.\n",
3358
3606
  ),
3359
3607
  })
3360
3608
  .describe(
3361
- "A flow definition is the server-side configuration that describes a complete\nauthentication or identity flow. It is NOT sent to the frontend the flow\nengine evaluates it and produces FlowResponse payloads (steps with capability\ndictionaries) for the client.\n\nFlow definitions are created by administrators and stored in the project\/team\nconfiguration hierarchy. The engine selects the matching definition based on\nthe purpose + audience when a flow is created via POST \/flow.\n",
3362
- )
3363
- .and(
3364
- zod.object({
3365
- id: zod.string().describe("Unique identifier for the flow definition."),
3366
- project_id: zod
3609
+ "Partial update for a flow definition. Only provided fields are replaced;\nomitted fields retain their current server-side values.\n\nCollection fields (`steps`, `purposes`) are treated atomically: if\nprovided, the entire array\/object is replaced. If omitted, the current\nvalue is preserved unchanged.\n\n`name` is a stable identifier and cannot be changed after creation.\n",
3610
+ );
3611
+
3612
+ export const updateFlowDefinitionResponseFlowDefinitionNameRegExp = new RegExp(
3613
+ "^[a-z][a-z0-9-]\*$",
3614
+ );
3615
+ export const updateFlowDefinitionResponseFlowDefinitionStepsItemFieldsDefault = [];
3616
+ export const updateFlowDefinitionResponseFlowDefinitionStepsItemActionsPrimaryDefault = false;
3617
+ export const updateFlowDefinitionResponseFlowDefinitionStepsItemActionsDefault = {} as const;
3618
+ export const updateFlowDefinitionResponseFlowDefinitionStepsItemGatesDefault = {} as const;
3619
+ export const updateFlowDefinitionResponseFlowDefinitionStepsItemSsoProvidersDefault = [];
3620
+
3621
+ export const UpdateFlowDefinitionResponse = zod.object({
3622
+ id: zod.string().describe("Unique identifier for the flow definition."),
3623
+ project_id: zod.string().describe("Identifier of the project this flow definition belongs to."),
3624
+ status: zod.string().describe("Status of the flow definition."),
3625
+ flow_definition: zod
3626
+ .object({
3627
+ name: zod
3367
3628
  .string()
3368
- .describe("Identifier of the project this flow definition belongs to."),
3369
- schema_uri: zod
3629
+ .regex(updateFlowDefinitionResponseFlowDefinitionNameRegExp)
3630
+ .describe(
3631
+ "Stable identifier for this flow, used as the target of cross-flow\n`switch` and `pivot` transitions. Renaming is not supported — the\n`name` is part of the public contract another definition may\nreference. Acts as the human display label as well; no separate slug.\n",
3632
+ ),
3633
+ user_schema: zod
3370
3634
  .url()
3371
3635
  .describe(
3372
- "URI of the flow definition schema this definition was authored against.\nIf the schema_uri was not provided in the request, the flow definition is validated against the latest version of the schema, and the response includes the schema_uri of the latest version.\n",
3636
+ "User schema this flow operates on. Step `fields` reference properties\ndefined in this schema. The engine resolves field types, validation,\nand implicit outcomes from schema annotations at runtime.\n",
3373
3637
  ),
3374
- status: zod.string().describe("Status of the flow definition."),
3375
- created_at: zod.iso.datetime({ offset: true }),
3376
- updated_at: zod.iso.datetime({ offset: true }),
3377
- }),
3378
- );
3379
-
3380
- /**
3381
- * Update a flow definition by id
3382
- * @summary Update a flow definition by id
3383
- */
3384
- export const UpdateFlowDefinitionParams = zod.object({
3385
- id: zod.string().describe("The id returned by the POST \/flow_definitions endpoint.\n"),
3386
- });
3387
-
3388
- export const updateFlowDefinitionBodyStepsItemFieldsDefault = [];
3389
- export const updateFlowDefinitionBodyStepsItemActionsPrimaryDefault = false;
3390
- export const updateFlowDefinitionBodyStepsItemActionsDefault = {} as const;
3391
- export const updateFlowDefinitionBodyStepsItemGatesDefault = {} as const;
3392
- export const updateFlowDefinitionBodyStepsItemSsoProvidersDefault = [];
3393
-
3394
- export const UpdateFlowDefinitionBody = zod
3395
- .object({
3396
- user_schema: zod
3397
- .url()
3398
- .optional()
3399
- .describe("User schema this flow operates on. Replaces the current value if provided.\n"),
3400
- purposes: zod
3401
- .record(zod.string(), zod.string())
3402
- .optional()
3403
- .describe(
3404
- "Replaces the full purpose-to-entry-step map if provided. Keys are\npurpose names; values must match a `name` in `steps`.\n",
3405
- ),
3406
- audience: zod
3407
- .object({
3408
- team_ids: zod
3409
- .array(zod.string())
3410
- .optional()
3411
- .describe("Restrict to specific teams (organizations). Empty means no team restriction."),
3412
- app_ids: zod
3413
- .array(zod.string())
3414
- .optional()
3415
- .describe("Restrict to specific applications. Empty means no app restriction."),
3416
- })
3417
- .optional()
3418
- .describe(
3419
- 'Scopes which teams or apps this flow definition applies to. Empty or\nomitted fields mean \"no restriction\"; when both are empty the definition\nmatches every request in the project. The engine picks the most specific\nmatching definition: app > team > project-wide.\n',
3420
- ),
3421
- steps: zod
3422
- .array(
3423
- zod
3424
- .object({
3425
- name: zod
3426
- .string()
3427
- .describe(
3428
- "Unique step identifier within this flow. Used as transition targets\nand returned in the API response as `step.name`.\n",
3429
- ),
3430
- fields: zod
3431
- .array(zod.string())
3432
- .default(updateFlowDefinitionBodyStepsItemFieldsDefault)
3433
- .describe(
3434
- "Schema property names to collect from the user. Each entry references\na property in the flow's user schema. The engine resolves field type,\nvalidation rules, and implicit outcomes from schema annotations\n(e.g. a property with `x-unique` set implies a `user_not_found`\ntransition outcome).\n",
3435
- ),
3436
- actions: zod
3437
- .record(
3438
- zod.string(),
3439
- zod
3440
- .object({
3441
- primary: zod
3442
- .boolean()
3443
- .default(updateFlowDefinitionBodyStepsItemActionsPrimaryDefault)
3444
- .describe(
3445
- "Marks this as the default\/primary action. The runtime template uses\nthis hint to choose visual emphasis. At most one action per step\nshould be primary; this is not enforced here.\n",
3446
- ),
3447
- text_key: zod
3448
- .string()
3449
- .optional()
3450
- .describe(
3451
- "Optional localization key override for the action's label. When\nomitted, the engine derives a key from the step and action names.\nDisplay text is resolved client-side from a locale dictionary, never\nby the engine.\n",
3452
- ),
3453
- })
3454
- .describe(
3455
- "Configuration for a user-invokable action on a step. Keyed by action name\nin the parent dictionary. The action name is sent back in the submit\nrequest as `action`.\n",
3456
- ),
3457
- )
3458
- .default(updateFlowDefinitionBodyStepsItemActionsDefault)
3459
- .describe(
3460
- "Actions the user can take. Keyed by action name.\nThe action name is what the frontend sends back in the submit request.\nIf omitted, the engine provides a default `submit` action.\n",
3461
- ),
3462
- gates: zod
3463
- .record(
3464
- zod.string(),
3465
- zod
3466
- .object({
3467
- kind: zod
3468
- .enum(["captcha"])
3469
- .describe(
3470
- "The gate category. Only `captcha` is currently defined. Authenticator\nceremonies (e.g. passkey) are modelled as credential auth_attempts via\n`x-credential` on a field, not as gates.\n",
3471
- ),
3472
- provider: zod
3473
- .string()
3474
- .describe(
3475
- "Provider identifier within the gate kind — e.g. `altcha`, `turnstile`,\n`hcaptcha`. The engine looks up an implementation in its provider\nregistry.\n",
3476
- ),
3477
- config: zod
3478
- .record(zod.string(), zod.unknown())
3479
- .optional()
3480
- .describe(
3481
- "Provider-specific configuration consumed by the implementation when\nissuing the per-render challenge. Opaque to the engine.\n",
3482
- ),
3483
- })
3484
- .describe(
3485
- "A security challenge that must be satisfied before this step's submission\nis accepted. The engine may also inject gates at runtime based on policy\nor risk evaluation.\n",
3486
- ),
3487
- )
3488
- .default(updateFlowDefinitionBodyStepsItemGatesDefault)
3489
- .describe(
3490
- 'Security gates that must be satisfied before submission. Keyed by gate\nname. Each gate selects a kind (e.g. \"captcha\") and provider-specific\nconfiguration. The engine may also inject gates dynamically based on\npolicy.\n',
3491
- ),
3492
- sso_providers: zod
3493
- .array(
3494
- zod
3495
- .object({
3496
- id: zod.string().describe("Provider instance identifier."),
3497
- name: zod.string().describe("Display name for the provider."),
3498
- template: zod.string().describe("Template hint for rendering (logo, colors)."),
3499
- })
3500
- .describe("An available SSO identity provider."),
3501
- )
3502
- .default(updateFlowDefinitionBodyStepsItemSsoProvidersDefault)
3503
- .describe("Available SSO identity providers for this step."),
3504
- on_success: zod
3505
- .enum(["create_user"])
3506
- .optional()
3507
- .describe(
3508
- "Server-side mutation to execute when this step completes successfully.\nRuns after field validation passes, before the transition fires.\n\n- create_user: creates the user record (registration flows)\n",
3509
- ),
3510
- complete: zod
3511
- .enum(["redirect", "show"])
3512
- .optional()
3513
- .describe(
3514
- "Marks this as a terminal step. Tells the frontend what to do:\n- redirect: navigate to redirect_uri (OIDC\/SAML callback done)\n- show: render as a success\/info screen\n",
3515
- ),
3516
- transitions: zod
3517
- .record(
3518
- zod.string(),
3519
- zod.object({
3520
- target: zod
3521
- .string()
3638
+ purposes: zod
3639
+ .record(zod.string(), zod.string())
3640
+ .describe(
3641
+ "Maps each purpose this definition handles to its entry-point step.\nKeys are purpose names; values must match a `name` in `steps`. A\ndefinition can serve multiple purposes (e.g. a combined login\/register\nflow) by listing one entry per purpose.\n",
3642
+ ),
3643
+ audience: zod
3644
+ .object({
3645
+ team_ids: zod
3646
+ .array(zod.string())
3647
+ .optional()
3648
+ .describe(
3649
+ "Restrict to specific teams (organizations). Empty means no team restriction.",
3650
+ ),
3651
+ app_ids: zod
3652
+ .array(zod.string())
3653
+ .optional()
3654
+ .describe("Restrict to specific applications. Empty means no app restriction."),
3655
+ })
3656
+ .optional()
3657
+ .describe(
3658
+ 'Scopes which teams or apps this flow definition applies to. Empty or\nomitted fields mean \"no restriction\"; when both are empty the definition\nmatches every request in the project. The engine picks the most specific\nmatching definition: app > team > project-wide.\n',
3659
+ ),
3660
+ steps: zod
3661
+ .array(
3662
+ zod
3663
+ .object({
3664
+ name: zod
3665
+ .string()
3666
+ .describe(
3667
+ "Unique step identifier within this flow. Used as transition targets\nand returned in the API response as `step.name`.\n",
3668
+ ),
3669
+ fields: zod
3670
+ .array(zod.string())
3671
+ .default(updateFlowDefinitionResponseFlowDefinitionStepsItemFieldsDefault)
3672
+ .describe(
3673
+ "Schema property names to collect from the user. Each entry references\na property in the flow's user schema. The engine resolves field type,\nvalidation rules, and implicit outcomes from schema annotations\n(e.g. a property with `x-unique` set implies a `user_not_found`\ntransition outcome).\n",
3674
+ ),
3675
+ actions: zod
3676
+ .record(
3677
+ zod.string(),
3678
+ zod
3679
+ .object({
3680
+ primary: zod
3681
+ .boolean()
3682
+ .default(
3683
+ updateFlowDefinitionResponseFlowDefinitionStepsItemActionsPrimaryDefault,
3684
+ )
3685
+ .describe(
3686
+ "Marks this as the default\/primary action. The runtime template uses\nthis hint to choose visual emphasis. At most one action per step\nshould be primary; this is not enforced here.\n",
3687
+ ),
3688
+ text_key: zod
3689
+ .string()
3690
+ .optional()
3691
+ .describe(
3692
+ "Optional localization key override for the action's label. When\nomitted, the engine derives a key from the step and action names.\nDisplay text is resolved client-side from a locale dictionary, never\nby the engine.\n",
3693
+ ),
3694
+ })
3522
3695
  .describe(
3523
- "Step name within this flow (when `action` is null), or the name\nof another flow (when `action` is `switch` or `pivot`).\n",
3696
+ "Configuration for a user-invokable action on a step. Keyed by action name\nin the parent dictionary. The action name is sent back in the submit\nrequest as `action`.\n",
3524
3697
  ),
3525
- action: zod
3526
- .union([zod.enum(["switch", "pivot"]), zod.null()])
3527
- .optional()
3698
+ )
3699
+ .default(updateFlowDefinitionResponseFlowDefinitionStepsItemActionsDefault)
3700
+ .describe(
3701
+ "Actions the user can take. Keyed by action name.\nThe action name is what the frontend sends back in the submit request.\nIf omitted, the engine provides a default `submit` action.\n",
3702
+ ),
3703
+ gates: zod
3704
+ .record(
3705
+ zod.string(),
3706
+ zod
3707
+ .object({
3708
+ kind: zod
3709
+ .enum(["captcha"])
3710
+ .describe(
3711
+ "The gate category. Only `captcha` is currently defined. Authenticator\nceremonies (e.g. passkey) are modelled as credential auth_attempts via\n`x-credential` on a field, not as gates.\n",
3712
+ ),
3713
+ provider: zod
3714
+ .string()
3715
+ .describe(
3716
+ "Provider identifier within the gate kind — e.g. `altcha`, `turnstile`,\n`hcaptcha`. The engine looks up an implementation in its provider\nregistry.\n",
3717
+ ),
3718
+ config: zod
3719
+ .record(zod.string(), zod.unknown())
3720
+ .optional()
3721
+ .describe(
3722
+ "Provider-specific configuration consumed by the implementation when\nissuing the per-render challenge. Opaque to the engine.\n",
3723
+ ),
3724
+ })
3528
3725
  .describe(
3529
- "How to interpret `target`:\n- null (omitted): transition to a step in the current flow.\n- switch: replace the current flow with the target flow.\n No return — the current flow is discarded.\n Example: login ↔ register.\n- pivot: push the target flow onto the stack. The current flow\n is paused and resumes when the target flow completes (auto-pop).\n Example: login → recovery → back to login.\n",
3726
+ "A security challenge that must be satisfied before this step's submission\nis accepted. The engine may also inject gates at runtime based on policy\nor risk evaluation.\n",
3530
3727
  ),
3531
- }),
3532
- )
3533
- .optional()
3534
- .describe(
3535
- "Maps action\/outcome names to their transition descriptor.\n\nKeys match action names from the `actions` dict. Additional keys\ncome from implicit outcomes based on schema annotations\n(e.g. `user_not_found` from `x-unique` fields) and engine\nevents (e.g. `sso`, `callback`).\n",
3536
- ),
3537
- })
3538
- .describe(
3539
- "A step in a flow definition. This is the admin-authored configuration,\nnot the runtime payload sent to the frontend.\n\nSteps are schema-driven: `fields` references properties from the flow's\nuser schema, and the engine resolves field metadata (type, validation,\nimplicit outcomes) from schema annotations at runtime.\n\nA step with only `complete` set is a terminal step. All other steps are\nrendered to the frontend as capability payloads.\n",
3540
- ),
3541
- )
3542
- .min(1)
3543
- .optional()
3544
- .describe(
3545
- "Replaces the full steps array if provided. Partial step lists are not\nsupported — supply all steps when updating this field.\n",
3546
- ),
3547
- })
3548
- .describe(
3549
- "Partial update for a flow definition. Only provided fields are replaced;\nomitted fields retain their current server-side values.\n\nCollection fields (`steps`, `purposes`) are treated atomically: if\nprovided, the entire array\/object is replaced. If omitted, the current\nvalue is preserved unchanged.\n\n`name` is a stable identifier and cannot be changed after creation.\n",
3550
- );
3551
-
3552
- export const updateFlowDefinitionResponseOneNameRegExp = new RegExp("^[a-z][a-z0-9-]\*$");
3553
- export const updateFlowDefinitionResponseOneStepsItemFieldsDefault = [];
3554
- export const updateFlowDefinitionResponseOneStepsItemActionsPrimaryDefault = false;
3555
- export const updateFlowDefinitionResponseOneStepsItemActionsDefault = {} as const;
3556
- export const updateFlowDefinitionResponseOneStepsItemGatesDefault = {} as const;
3557
- export const updateFlowDefinitionResponseOneStepsItemSsoProvidersDefault = [];
3558
-
3559
- export const UpdateFlowDefinitionResponse = zod
3560
- .object({
3561
- name: zod
3562
- .string()
3563
- .regex(updateFlowDefinitionResponseOneNameRegExp)
3564
- .describe(
3565
- "Stable identifier for this flow, used as the target of cross-flow\n`switch` and `pivot` transitions. Renaming is not supported — the\n`name` is part of the public contract another definition may\nreference. Acts as the human display label as well; no separate slug.\n",
3566
- ),
3567
- user_schema: zod
3568
- .url()
3569
- .describe(
3570
- "User schema this flow operates on. Step `fields` reference properties\ndefined in this schema. The engine resolves field types, validation,\nand implicit outcomes from schema annotations at runtime.\n",
3571
- ),
3572
- purposes: zod
3573
- .record(zod.string(), zod.string())
3574
- .describe(
3575
- "Maps each purpose this definition handles to its entry-point step.\nKeys are purpose names; values must match a `name` in `steps`. A\ndefinition can serve multiple purposes (e.g. a combined login\/register\nflow) by listing one entry per purpose.\n",
3576
- ),
3577
- audience: zod
3578
- .object({
3579
- team_ids: zod
3580
- .array(zod.string())
3581
- .optional()
3582
- .describe("Restrict to specific teams (organizations). Empty means no team restriction."),
3583
- app_ids: zod
3584
- .array(zod.string())
3585
- .optional()
3586
- .describe("Restrict to specific applications. Empty means no app restriction."),
3587
- })
3588
- .optional()
3589
- .describe(
3590
- 'Scopes which teams or apps this flow definition applies to. Empty or\nomitted fields mean \"no restriction\"; when both are empty the definition\nmatches every request in the project. The engine picks the most specific\nmatching definition: app > team > project-wide.\n',
3591
- ),
3592
- steps: zod
3593
- .array(
3594
- zod
3595
- .object({
3596
- name: zod
3597
- .string()
3598
- .describe(
3599
- "Unique step identifier within this flow. Used as transition targets\nand returned in the API response as `step.name`.\n",
3600
- ),
3601
- fields: zod
3602
- .array(zod.string())
3603
- .default(updateFlowDefinitionResponseOneStepsItemFieldsDefault)
3604
- .describe(
3605
- "Schema property names to collect from the user. Each entry references\na property in the flow's user schema. The engine resolves field type,\nvalidation rules, and implicit outcomes from schema annotations\n(e.g. a property with `x-unique` set implies a `user_not_found`\ntransition outcome).\n",
3606
- ),
3607
- actions: zod
3608
- .record(
3609
- zod.string(),
3610
- zod
3611
- .object({
3612
- primary: zod
3613
- .boolean()
3614
- .default(updateFlowDefinitionResponseOneStepsItemActionsPrimaryDefault)
3615
- .describe(
3616
- "Marks this as the default\/primary action. The runtime template uses\nthis hint to choose visual emphasis. At most one action per step\nshould be primary; this is not enforced here.\n",
3617
- ),
3618
- text_key: zod
3619
- .string()
3620
- .optional()
3621
- .describe(
3622
- "Optional localization key override for the action's label. When\nomitted, the engine derives a key from the step and action names.\nDisplay text is resolved client-side from a locale dictionary, never\nby the engine.\n",
3623
- ),
3624
- })
3625
- .describe(
3626
- "Configuration for a user-invokable action on a step. Keyed by action name\nin the parent dictionary. The action name is sent back in the submit\nrequest as `action`.\n",
3627
- ),
3628
- )
3629
- .default(updateFlowDefinitionResponseOneStepsItemActionsDefault)
3630
- .describe(
3631
- "Actions the user can take. Keyed by action name.\nThe action name is what the frontend sends back in the submit request.\nIf omitted, the engine provides a default `submit` action.\n",
3632
- ),
3633
- gates: zod
3634
- .record(
3635
- zod.string(),
3636
- zod
3637
- .object({
3638
- kind: zod
3639
- .enum(["captcha"])
3640
- .describe(
3641
- "The gate category. Only `captcha` is currently defined. Authenticator\nceremonies (e.g. passkey) are modelled as credential auth_attempts via\n`x-credential` on a field, not as gates.\n",
3642
- ),
3643
- provider: zod
3728
+ )
3729
+ .default(updateFlowDefinitionResponseFlowDefinitionStepsItemGatesDefault)
3730
+ .describe(
3731
+ 'Security gates that must be satisfied before submission. Keyed by gate\nname. Each gate selects a kind (e.g. \"captcha\") and provider-specific\nconfiguration. The engine may also inject gates dynamically based on\npolicy.\n',
3732
+ ),
3733
+ sso_providers: zod
3734
+ .array(
3735
+ zod
3736
+ .object({
3737
+ id: zod.string().describe("Provider instance identifier."),
3738
+ name: zod.string().describe("Display name for the provider."),
3739
+ template: zod
3740
+ .string()
3741
+ .describe("Template hint for rendering (logo, colors)."),
3742
+ })
3743
+ .describe("An available SSO identity provider."),
3744
+ )
3745
+ .default(updateFlowDefinitionResponseFlowDefinitionStepsItemSsoProvidersDefault)
3746
+ .describe("Available SSO identity providers for this step."),
3747
+ on_success: zod
3748
+ .enum(["create_user"])
3749
+ .optional()
3750
+ .describe(
3751
+ "Server-side mutation to execute when this step completes successfully.\nRuns after field validation passes, before the transition fires.\n\n- create_user: creates the user record (registration flows)\n",
3752
+ ),
3753
+ complete: zod
3754
+ .enum(["redirect", "show"])
3755
+ .optional()
3756
+ .describe(
3757
+ "Marks this as a terminal step. Tells the frontend what to do:\n- redirect: navigate to redirect_uri (OIDC\/SAML callback done)\n- show: render as a success\/info screen\n",
3758
+ ),
3759
+ transitions: zod
3760
+ .record(
3761
+ zod.string(),
3762
+ zod.object({
3763
+ target: zod
3644
3764
  .string()
3645
3765
  .describe(
3646
- "Provider identifier within the gate kind e.g. `altcha`, `turnstile`,\n`hcaptcha`. The engine looks up an implementation in its provider\nregistry.\n",
3766
+ "Step name within this flow (when `action` is null), or the name\nof another flow (when `action` is `switch` or `pivot`).\n",
3647
3767
  ),
3648
- config: zod
3649
- .record(zod.string(), zod.unknown())
3768
+ action: zod
3769
+ .union([zod.enum(["switch", "pivot"]), zod.null()])
3650
3770
  .optional()
3651
3771
  .describe(
3652
- "Provider-specific configuration consumed by the implementation when\nissuing the per-render challenge. Opaque to the engine.\n",
3772
+ "How to interpret `target`:\n- null (omitted): transition to a step in the current flow.\n- switch: replace the current flow with the target flow.\n No return — the current flow is discarded.\n Example: login ↔ register.\n- pivot: push the target flow onto the stack. The current flow\n is paused and resumes when the target flow completes (auto-pop).\n Example: login → recovery → back to login.\n",
3653
3773
  ),
3654
- })
3655
- .describe(
3656
- "A security challenge that must be satisfied before this step's submission\nis accepted. The engine may also inject gates at runtime based on policy\nor risk evaluation.\n",
3657
- ),
3658
- )
3659
- .default(updateFlowDefinitionResponseOneStepsItemGatesDefault)
3660
- .describe(
3661
- 'Security gates that must be satisfied before submission. Keyed by gate\nname. Each gate selects a kind (e.g. \"captcha\") and provider-specific\nconfiguration. The engine may also inject gates dynamically based on\npolicy.\n',
3662
- ),
3663
- sso_providers: zod
3664
- .array(
3665
- zod
3666
- .object({
3667
- id: zod.string().describe("Provider instance identifier."),
3668
- name: zod.string().describe("Display name for the provider."),
3669
- template: zod.string().describe("Template hint for rendering (logo, colors)."),
3670
- })
3671
- .describe("An available SSO identity provider."),
3672
- )
3673
- .default(updateFlowDefinitionResponseOneStepsItemSsoProvidersDefault)
3674
- .describe("Available SSO identity providers for this step."),
3675
- on_success: zod
3676
- .enum(["create_user"])
3677
- .optional()
3678
- .describe(
3679
- "Server-side mutation to execute when this step completes successfully.\nRuns after field validation passes, before the transition fires.\n\n- create_user: creates the user record (registration flows)\n",
3680
- ),
3681
- complete: zod
3682
- .enum(["redirect", "show"])
3683
- .optional()
3684
- .describe(
3685
- "Marks this as a terminal step. Tells the frontend what to do:\n- redirect: navigate to redirect_uri (OIDC\/SAML callback done)\n- show: render as a success\/info screen\n",
3686
- ),
3687
- transitions: zod
3688
- .record(
3689
- zod.string(),
3690
- zod.object({
3691
- target: zod
3692
- .string()
3693
- .describe(
3694
- "Step name within this flow (when `action` is null), or the name\nof another flow (when `action` is `switch` or `pivot`).\n",
3695
- ),
3696
- action: zod
3697
- .union([zod.enum(["switch", "pivot"]), zod.null()])
3698
- .optional()
3699
- .describe(
3700
- "How to interpret `target`:\n- null (omitted): transition to a step in the current flow.\n- switch: replace the current flow with the target flow.\n No return — the current flow is discarded.\n Example: login ↔ register.\n- pivot: push the target flow onto the stack. The current flow\n is paused and resumes when the target flow completes (auto-pop).\n Example: login → recovery → back to login.\n",
3701
- ),
3702
- }),
3703
- )
3704
- .optional()
3705
- .describe(
3706
- "Maps action\/outcome names to their transition descriptor.\n\nKeys match action names from the `actions` dict. Additional keys\ncome from implicit outcomes based on schema annotations\n(e.g. `user_not_found` from `x-unique` fields) and engine\nevents (e.g. `sso`, `callback`).\n",
3707
- ),
3708
- })
3709
- .describe(
3710
- "A step in a flow definition. This is the admin-authored configuration,\nnot the runtime payload sent to the frontend.\n\nSteps are schema-driven: `fields` references properties from the flow's\nuser schema, and the engine resolves field metadata (type, validation,\nimplicit outcomes) from schema annotations at runtime.\n\nA step with only `complete` set is a terminal step. All other steps are\nrendered to the frontend as capability payloads.\n",
3711
- ),
3712
- )
3713
- .min(1)
3714
- .describe(
3715
- "Ordered list of steps in this flow. The order is for human readability —\nactual step sequencing is determined by transitions.\n",
3716
- ),
3717
- })
3718
- .describe(
3719
- "A flow definition is the server-side configuration that describes a complete\nauthentication or identity flow. It is NOT sent to the frontend — the flow\nengine evaluates it and produces FlowResponse payloads (steps with capability\ndictionaries) for the client.\n\nFlow definitions are created by administrators and stored in the project\/team\nconfiguration hierarchy. The engine selects the matching definition based on\nthe purpose + audience when a flow is created via POST \/flow.\n",
3720
- )
3721
- .and(
3722
- zod.object({
3723
- id: zod.string().describe("Unique identifier for the flow definition."),
3724
- project_id: zod
3725
- .string()
3726
- .describe("Identifier of the project this flow definition belongs to."),
3727
- schema_uri: zod
3728
- .url()
3774
+ }),
3775
+ )
3776
+ .optional()
3777
+ .describe(
3778
+ "Maps action\/outcome names to their transition descriptor.\n\nKeys match action names from the `actions` dict. Additional keys\ncome from implicit outcomes based on schema annotations\n(e.g. `user_not_found` from `x-unique` fields) and engine\nevents (e.g. `sso`, `callback`).\n",
3779
+ ),
3780
+ })
3781
+ .describe(
3782
+ "A step in a flow definition. This is the admin-authored configuration,\nnot the runtime payload sent to the frontend.\n\nSteps are schema-driven: `fields` references properties from the flow's\nuser schema, and the engine resolves field metadata (type, validation,\nimplicit outcomes) from schema annotations at runtime.\n\nA step with only `complete` set is a terminal step. All other steps are\nrendered to the frontend as capability payloads.\n",
3783
+ ),
3784
+ )
3785
+ .min(1)
3729
3786
  .describe(
3730
- "URI of the flow definition schema this definition was authored against.\nIf the schema_uri was not provided in the request, the flow definition is validated against the latest version of the schema, and the response includes the schema_uri of the latest version.\n",
3787
+ "Ordered list of steps in this flow. The order is for human readability —\nactual step sequencing is determined by transitions.\n",
3731
3788
  ),
3732
- status: zod.string().describe("Status of the flow definition."),
3733
- created_at: zod.iso.datetime({ offset: true }),
3734
- updated_at: zod.iso.datetime({ offset: true }),
3735
- }),
3736
- );
3789
+ })
3790
+ .describe(
3791
+ "A flow definition is the server-side configuration that describes a complete\nauthentication or identity flow. It is NOT sent to the frontend — the flow\nengine evaluates it and produces FlowResponse payloads (steps with capability\ndictionaries) for the client.\n\nFlow definitions are created by administrators and stored in the project\/team\nconfiguration hierarchy. The engine selects the matching definition based on\nthe purpose + audience when a flow is created via POST \/flow.\n",
3792
+ ),
3793
+ created_at: zod.iso.datetime({ offset: true }),
3794
+ updated_at: zod.iso.datetime({ offset: true }),
3795
+ });
3737
3796
 
3738
3797
  /**
3739
3798
  * Delete a flow definition by id
@@ -3743,6 +3802,15 @@ export const DeleteFlowDefinitionParams = zod.object({
3743
3802
  id: zod.string().describe("The id returned by the POST \/flow_definitions endpoint.\n"),
3744
3803
  });
3745
3804
 
3805
+ export const deleteFlowDefinitionQueryProjectIdRegExp = new RegExp("^[a-zA-Z0-9_-]+$");
3806
+
3807
+ export const DeleteFlowDefinitionQueryParams = zod.strictObject({
3808
+ project_id: zod
3809
+ .string()
3810
+ .regex(deleteFlowDefinitionQueryProjectIdRegExp)
3811
+ .describe("The project id to filter by."),
3812
+ });
3813
+
3746
3814
  /**
3747
3815
  * @summary Create team
3748
3816
  */