@unkey/api 2.0.3 → 2.0.5

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 (245) hide show
  1. package/README.md +6 -3
  2. package/bin/mcp-server.js +461 -157
  3. package/bin/mcp-server.js.map +31 -23
  4. package/dist/commonjs/funcs/identitiesListIdentities.js +3 -0
  5. package/dist/commonjs/funcs/identitiesListIdentities.js.map +1 -1
  6. package/dist/commonjs/funcs/keysRerollKey.d.ts +49 -0
  7. package/dist/commonjs/funcs/keysRerollKey.d.ts.map +1 -0
  8. package/dist/commonjs/funcs/keysRerollKey.js +159 -0
  9. package/dist/commonjs/funcs/keysRerollKey.js.map +1 -0
  10. package/dist/commonjs/funcs/permissionsListPermissions.d.ts +2 -1
  11. package/dist/commonjs/funcs/permissionsListPermissions.d.ts.map +1 -1
  12. package/dist/commonjs/funcs/permissionsListPermissions.js +2 -1
  13. package/dist/commonjs/funcs/permissionsListPermissions.js.map +1 -1
  14. package/dist/commonjs/funcs/permissionsListRoles.d.ts +2 -1
  15. package/dist/commonjs/funcs/permissionsListRoles.d.ts.map +1 -1
  16. package/dist/commonjs/funcs/permissionsListRoles.js +2 -1
  17. package/dist/commonjs/funcs/permissionsListRoles.js.map +1 -1
  18. package/dist/commonjs/funcs/ratelimitLimit.d.ts +2 -2
  19. package/dist/commonjs/funcs/ratelimitLimit.d.ts.map +1 -1
  20. package/dist/commonjs/funcs/ratelimitLimit.js +3 -3
  21. package/dist/commonjs/funcs/ratelimitLimit.js.map +1 -1
  22. package/dist/commonjs/lib/config.d.ts +3 -3
  23. package/dist/commonjs/lib/config.js +3 -3
  24. package/dist/commonjs/lib/security.d.ts.map +1 -1
  25. package/dist/commonjs/lib/security.js.map +1 -1
  26. package/dist/commonjs/mcp-server/mcp-server.js +1 -1
  27. package/dist/commonjs/mcp-server/server.d.ts.map +1 -1
  28. package/dist/commonjs/mcp-server/server.js +3 -1
  29. package/dist/commonjs/mcp-server/server.js.map +1 -1
  30. package/dist/commonjs/mcp-server/tools/keysRerollKey.d.ts +8 -0
  31. package/dist/commonjs/mcp-server/tools/keysRerollKey.d.ts.map +1 -0
  32. package/dist/commonjs/mcp-server/tools/keysRerollKey.js +96 -0
  33. package/dist/commonjs/mcp-server/tools/keysRerollKey.js.map +1 -0
  34. package/dist/commonjs/mcp-server/tools/permissionsListPermissions.d.ts.map +1 -1
  35. package/dist/commonjs/mcp-server/tools/permissionsListPermissions.js +2 -1
  36. package/dist/commonjs/mcp-server/tools/permissionsListPermissions.js.map +1 -1
  37. package/dist/commonjs/mcp-server/tools/permissionsListRoles.d.ts.map +1 -1
  38. package/dist/commonjs/mcp-server/tools/permissionsListRoles.js +2 -1
  39. package/dist/commonjs/mcp-server/tools/permissionsListRoles.js.map +1 -1
  40. package/dist/commonjs/mcp-server/tools/ratelimitLimit.js +1 -1
  41. package/dist/commonjs/models/components/index.d.ts +5 -0
  42. package/dist/commonjs/models/components/index.d.ts.map +1 -1
  43. package/dist/commonjs/models/components/index.js +5 -0
  44. package/dist/commonjs/models/components/index.js.map +1 -1
  45. package/dist/commonjs/models/components/keycreditsrefill.d.ts +8 -8
  46. package/dist/commonjs/models/components/keycreditsrefill.d.ts.map +1 -1
  47. package/dist/commonjs/models/components/keycreditsrefill.js +13 -14
  48. package/dist/commonjs/models/components/keycreditsrefill.js.map +1 -1
  49. package/dist/commonjs/models/components/updatekeycreditsdata.d.ts +41 -0
  50. package/dist/commonjs/models/components/updatekeycreditsdata.d.ts.map +1 -0
  51. package/dist/commonjs/models/components/updatekeycreditsdata.js +72 -0
  52. package/dist/commonjs/models/components/updatekeycreditsdata.js.map +1 -0
  53. package/dist/commonjs/models/components/updatekeycreditsrefill.d.ts +81 -0
  54. package/dist/commonjs/models/components/updatekeycreditsrefill.d.ts.map +1 -0
  55. package/dist/commonjs/models/components/updatekeycreditsrefill.js +95 -0
  56. package/dist/commonjs/models/components/updatekeycreditsrefill.js.map +1 -0
  57. package/dist/commonjs/models/components/v2keysaddpermissionsresponsebody.d.ts +0 -1
  58. package/dist/commonjs/models/components/v2keysaddpermissionsresponsebody.d.ts.map +1 -1
  59. package/dist/commonjs/models/components/v2keysaddpermissionsresponsebody.js.map +1 -1
  60. package/dist/commonjs/models/components/v2keysaddrolesresponsebody.d.ts +0 -1
  61. package/dist/commonjs/models/components/v2keysaddrolesresponsebody.d.ts.map +1 -1
  62. package/dist/commonjs/models/components/v2keysaddrolesresponsebody.js.map +1 -1
  63. package/dist/commonjs/models/components/v2keysremoverolesresponsebody.d.ts +0 -1
  64. package/dist/commonjs/models/components/v2keysremoverolesresponsebody.d.ts.map +1 -1
  65. package/dist/commonjs/models/components/v2keysremoverolesresponsebody.js.map +1 -1
  66. package/dist/commonjs/models/components/v2keysrerollkeyrequestbody.d.ts +60 -0
  67. package/dist/commonjs/models/components/v2keysrerollkeyrequestbody.d.ts.map +1 -0
  68. package/dist/commonjs/models/components/v2keysrerollkeyrequestbody.js +71 -0
  69. package/dist/commonjs/models/components/v2keysrerollkeyrequestbody.js.map +1 -0
  70. package/dist/commonjs/models/components/v2keysrerollkeyresponsebody.d.ts +36 -0
  71. package/dist/commonjs/models/components/v2keysrerollkeyresponsebody.d.ts.map +1 -0
  72. package/dist/commonjs/models/components/v2keysrerollkeyresponsebody.js +73 -0
  73. package/dist/commonjs/models/components/v2keysrerollkeyresponsebody.js.map +1 -0
  74. package/dist/commonjs/models/components/v2keysrerollkeyresponsedata.d.ts +62 -0
  75. package/dist/commonjs/models/components/v2keysrerollkeyresponsedata.d.ts.map +1 -0
  76. package/dist/commonjs/models/components/v2keysrerollkeyresponsedata.js +71 -0
  77. package/dist/commonjs/models/components/v2keysrerollkeyresponsedata.js.map +1 -0
  78. package/dist/commonjs/models/components/v2keyssetpermissionsresponsebody.d.ts +0 -1
  79. package/dist/commonjs/models/components/v2keyssetpermissionsresponsebody.d.ts.map +1 -1
  80. package/dist/commonjs/models/components/v2keyssetpermissionsresponsebody.js.map +1 -1
  81. package/dist/commonjs/models/components/v2keyssetrolesresponsebody.d.ts +0 -1
  82. package/dist/commonjs/models/components/v2keyssetrolesresponsebody.d.ts.map +1 -1
  83. package/dist/commonjs/models/components/v2keyssetrolesresponsebody.js.map +1 -1
  84. package/dist/commonjs/models/components/v2keysupdatekeyrequestbody.d.ts +3 -3
  85. package/dist/commonjs/models/components/v2keysupdatekeyrequestbody.d.ts.map +1 -1
  86. package/dist/commonjs/models/components/v2keysupdatekeyrequestbody.js +3 -3
  87. package/dist/commonjs/models/components/v2keysupdatekeyrequestbody.js.map +1 -1
  88. package/dist/commonjs/models/errors/goneerrorresponse.d.ts +72 -0
  89. package/dist/commonjs/models/errors/goneerrorresponse.d.ts.map +1 -0
  90. package/dist/commonjs/models/errors/goneerrorresponse.js +99 -0
  91. package/dist/commonjs/models/errors/goneerrorresponse.js.map +1 -0
  92. package/dist/commonjs/models/errors/index.d.ts +1 -0
  93. package/dist/commonjs/models/errors/index.d.ts.map +1 -1
  94. package/dist/commonjs/models/errors/index.js +1 -0
  95. package/dist/commonjs/models/errors/index.js.map +1 -1
  96. package/dist/commonjs/sdk/keys.d.ts +38 -0
  97. package/dist/commonjs/sdk/keys.d.ts.map +1 -1
  98. package/dist/commonjs/sdk/keys.js +41 -0
  99. package/dist/commonjs/sdk/keys.js.map +1 -1
  100. package/dist/commonjs/sdk/permissions.d.ts +4 -2
  101. package/dist/commonjs/sdk/permissions.d.ts.map +1 -1
  102. package/dist/commonjs/sdk/permissions.js +4 -2
  103. package/dist/commonjs/sdk/permissions.js.map +1 -1
  104. package/dist/commonjs/sdk/ratelimit.d.ts +1 -1
  105. package/dist/commonjs/sdk/ratelimit.js +1 -1
  106. package/dist/esm/funcs/identitiesListIdentities.js +3 -0
  107. package/dist/esm/funcs/identitiesListIdentities.js.map +1 -1
  108. package/dist/esm/funcs/keysRerollKey.d.ts +49 -0
  109. package/dist/esm/funcs/keysRerollKey.d.ts.map +1 -0
  110. package/dist/esm/funcs/keysRerollKey.js +123 -0
  111. package/dist/esm/funcs/keysRerollKey.js.map +1 -0
  112. package/dist/esm/funcs/permissionsListPermissions.d.ts +2 -1
  113. package/dist/esm/funcs/permissionsListPermissions.d.ts.map +1 -1
  114. package/dist/esm/funcs/permissionsListPermissions.js +2 -1
  115. package/dist/esm/funcs/permissionsListPermissions.js.map +1 -1
  116. package/dist/esm/funcs/permissionsListRoles.d.ts +2 -1
  117. package/dist/esm/funcs/permissionsListRoles.d.ts.map +1 -1
  118. package/dist/esm/funcs/permissionsListRoles.js +2 -1
  119. package/dist/esm/funcs/permissionsListRoles.js.map +1 -1
  120. package/dist/esm/funcs/ratelimitLimit.d.ts +2 -2
  121. package/dist/esm/funcs/ratelimitLimit.d.ts.map +1 -1
  122. package/dist/esm/funcs/ratelimitLimit.js +3 -3
  123. package/dist/esm/funcs/ratelimitLimit.js.map +1 -1
  124. package/dist/esm/lib/config.d.ts +3 -3
  125. package/dist/esm/lib/config.js +3 -3
  126. package/dist/esm/lib/security.d.ts.map +1 -1
  127. package/dist/esm/lib/security.js.map +1 -1
  128. package/dist/esm/mcp-server/mcp-server.js +1 -1
  129. package/dist/esm/mcp-server/server.d.ts.map +1 -1
  130. package/dist/esm/mcp-server/server.js +3 -1
  131. package/dist/esm/mcp-server/server.js.map +1 -1
  132. package/dist/esm/mcp-server/tools/keysRerollKey.d.ts +8 -0
  133. package/dist/esm/mcp-server/tools/keysRerollKey.d.ts.map +1 -0
  134. package/dist/esm/mcp-server/tools/keysRerollKey.js +60 -0
  135. package/dist/esm/mcp-server/tools/keysRerollKey.js.map +1 -0
  136. package/dist/esm/mcp-server/tools/permissionsListPermissions.d.ts.map +1 -1
  137. package/dist/esm/mcp-server/tools/permissionsListPermissions.js +2 -1
  138. package/dist/esm/mcp-server/tools/permissionsListPermissions.js.map +1 -1
  139. package/dist/esm/mcp-server/tools/permissionsListRoles.d.ts.map +1 -1
  140. package/dist/esm/mcp-server/tools/permissionsListRoles.js +2 -1
  141. package/dist/esm/mcp-server/tools/permissionsListRoles.js.map +1 -1
  142. package/dist/esm/mcp-server/tools/ratelimitLimit.js +1 -1
  143. package/dist/esm/models/components/index.d.ts +5 -0
  144. package/dist/esm/models/components/index.d.ts.map +1 -1
  145. package/dist/esm/models/components/index.js +5 -0
  146. package/dist/esm/models/components/index.js.map +1 -1
  147. package/dist/esm/models/components/keycreditsrefill.d.ts +8 -8
  148. package/dist/esm/models/components/keycreditsrefill.d.ts.map +1 -1
  149. package/dist/esm/models/components/keycreditsrefill.js +12 -13
  150. package/dist/esm/models/components/keycreditsrefill.js.map +1 -1
  151. package/dist/esm/models/components/updatekeycreditsdata.d.ts +41 -0
  152. package/dist/esm/models/components/updatekeycreditsdata.d.ts.map +1 -0
  153. package/dist/esm/models/components/updatekeycreditsdata.js +34 -0
  154. package/dist/esm/models/components/updatekeycreditsdata.js.map +1 -0
  155. package/dist/esm/models/components/updatekeycreditsrefill.d.ts +81 -0
  156. package/dist/esm/models/components/updatekeycreditsrefill.d.ts.map +1 -0
  157. package/dist/esm/models/components/updatekeycreditsrefill.js +57 -0
  158. package/dist/esm/models/components/updatekeycreditsrefill.js.map +1 -0
  159. package/dist/esm/models/components/v2keysaddpermissionsresponsebody.d.ts +0 -1
  160. package/dist/esm/models/components/v2keysaddpermissionsresponsebody.d.ts.map +1 -1
  161. package/dist/esm/models/components/v2keysaddpermissionsresponsebody.js.map +1 -1
  162. package/dist/esm/models/components/v2keysaddrolesresponsebody.d.ts +0 -1
  163. package/dist/esm/models/components/v2keysaddrolesresponsebody.d.ts.map +1 -1
  164. package/dist/esm/models/components/v2keysaddrolesresponsebody.js.map +1 -1
  165. package/dist/esm/models/components/v2keysremoverolesresponsebody.d.ts +0 -1
  166. package/dist/esm/models/components/v2keysremoverolesresponsebody.d.ts.map +1 -1
  167. package/dist/esm/models/components/v2keysremoverolesresponsebody.js.map +1 -1
  168. package/dist/esm/models/components/v2keysrerollkeyrequestbody.d.ts +60 -0
  169. package/dist/esm/models/components/v2keysrerollkeyrequestbody.d.ts.map +1 -0
  170. package/dist/esm/models/components/v2keysrerollkeyrequestbody.js +33 -0
  171. package/dist/esm/models/components/v2keysrerollkeyrequestbody.js.map +1 -0
  172. package/dist/esm/models/components/v2keysrerollkeyresponsebody.d.ts +36 -0
  173. package/dist/esm/models/components/v2keysrerollkeyresponsebody.d.ts.map +1 -0
  174. package/dist/esm/models/components/v2keysrerollkeyresponsebody.js +35 -0
  175. package/dist/esm/models/components/v2keysrerollkeyresponsebody.js.map +1 -0
  176. package/dist/esm/models/components/v2keysrerollkeyresponsedata.d.ts +62 -0
  177. package/dist/esm/models/components/v2keysrerollkeyresponsedata.d.ts.map +1 -0
  178. package/dist/esm/models/components/v2keysrerollkeyresponsedata.js +33 -0
  179. package/dist/esm/models/components/v2keysrerollkeyresponsedata.js.map +1 -0
  180. package/dist/esm/models/components/v2keyssetpermissionsresponsebody.d.ts +0 -1
  181. package/dist/esm/models/components/v2keyssetpermissionsresponsebody.d.ts.map +1 -1
  182. package/dist/esm/models/components/v2keyssetpermissionsresponsebody.js.map +1 -1
  183. package/dist/esm/models/components/v2keyssetrolesresponsebody.d.ts +0 -1
  184. package/dist/esm/models/components/v2keyssetrolesresponsebody.d.ts.map +1 -1
  185. package/dist/esm/models/components/v2keyssetrolesresponsebody.js.map +1 -1
  186. package/dist/esm/models/components/v2keysupdatekeyrequestbody.d.ts +3 -3
  187. package/dist/esm/models/components/v2keysupdatekeyrequestbody.d.ts.map +1 -1
  188. package/dist/esm/models/components/v2keysupdatekeyrequestbody.js +3 -3
  189. package/dist/esm/models/components/v2keysupdatekeyrequestbody.js.map +1 -1
  190. package/dist/esm/models/errors/goneerrorresponse.d.ts +72 -0
  191. package/dist/esm/models/errors/goneerrorresponse.d.ts.map +1 -0
  192. package/dist/esm/models/errors/goneerrorresponse.js +62 -0
  193. package/dist/esm/models/errors/goneerrorresponse.js.map +1 -0
  194. package/dist/esm/models/errors/index.d.ts +1 -0
  195. package/dist/esm/models/errors/index.d.ts.map +1 -1
  196. package/dist/esm/models/errors/index.js +1 -0
  197. package/dist/esm/models/errors/index.js.map +1 -1
  198. package/dist/esm/sdk/keys.d.ts +38 -0
  199. package/dist/esm/sdk/keys.d.ts.map +1 -1
  200. package/dist/esm/sdk/keys.js +41 -0
  201. package/dist/esm/sdk/keys.js.map +1 -1
  202. package/dist/esm/sdk/permissions.d.ts +4 -2
  203. package/dist/esm/sdk/permissions.d.ts.map +1 -1
  204. package/dist/esm/sdk/permissions.js +4 -2
  205. package/dist/esm/sdk/permissions.js.map +1 -1
  206. package/dist/esm/sdk/ratelimit.d.ts +1 -1
  207. package/dist/esm/sdk/ratelimit.js +1 -1
  208. package/docs/sdks/keys/README.md +113 -0
  209. package/docs/sdks/permissions/README.md +4 -2
  210. package/docs/sdks/ratelimit/README.md +2 -1
  211. package/examples/apisCreateApi.example.ts +2 -2
  212. package/examples/package-lock.json +3 -3
  213. package/jsr.json +1 -1
  214. package/package.json +3 -3
  215. package/src/funcs/identitiesListIdentities.ts +3 -0
  216. package/src/funcs/keysRerollKey.ts +227 -0
  217. package/src/funcs/permissionsListPermissions.ts +2 -1
  218. package/src/funcs/permissionsListRoles.ts +2 -1
  219. package/src/funcs/ratelimitLimit.ts +6 -2
  220. package/src/lib/config.ts +3 -3
  221. package/src/lib/security.ts +4 -1
  222. package/src/mcp-server/mcp-server.ts +1 -1
  223. package/src/mcp-server/server.ts +3 -1
  224. package/src/mcp-server/tools/keysRerollKey.ts +69 -0
  225. package/src/mcp-server/tools/permissionsListPermissions.ts +2 -1
  226. package/src/mcp-server/tools/permissionsListRoles.ts +2 -1
  227. package/src/mcp-server/tools/ratelimitLimit.ts +1 -1
  228. package/src/models/components/index.ts +5 -0
  229. package/src/models/components/keycreditsrefill.ts +18 -14
  230. package/src/models/components/updatekeycreditsdata.ts +85 -0
  231. package/src/models/components/updatekeycreditsrefill.ts +126 -0
  232. package/src/models/components/v2keysaddpermissionsresponsebody.ts +0 -1
  233. package/src/models/components/v2keysaddrolesresponsebody.ts +0 -1
  234. package/src/models/components/v2keysremoverolesresponsebody.ts +0 -1
  235. package/src/models/components/v2keysrerollkeyrequestbody.ts +99 -0
  236. package/src/models/components/v2keysrerollkeyresponsebody.ts +87 -0
  237. package/src/models/components/v2keysrerollkeyresponsedata.ts +103 -0
  238. package/src/models/components/v2keyssetpermissionsresponsebody.ts +0 -1
  239. package/src/models/components/v2keyssetrolesresponsebody.ts +0 -1
  240. package/src/models/components/v2keysupdatekeyrequestbody.ts +10 -10
  241. package/src/models/errors/goneerrorresponse.ts +118 -0
  242. package/src/models/errors/index.ts +1 -0
  243. package/src/sdk/keys.ts +49 -0
  244. package/src/sdk/permissions.ts +4 -2
  245. package/src/sdk/ratelimit.ts +1 -1
@@ -0,0 +1,103 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod";
6
+ import { safeParse } from "../../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../../types/fp.js";
8
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
9
+
10
+ export type V2KeysRerollKeyResponseData = {
11
+ /**
12
+ * The unique identifier for the newly created key.
13
+ *
14
+ * @remarks
15
+ *
16
+ * This is NOT the actual API key token, but a reference ID for management operations.
17
+ * Store this ID to:
18
+ * - Update or revoke the key later
19
+ * - Track the key in your database
20
+ * - Display in admin dashboards (safe to log)
21
+ *
22
+ * Note: This is a new ID - the original key retains its own ID.
23
+ */
24
+ keyId: string;
25
+ /**
26
+ * The newly generated API key token (the actual secret that authenticates requests).
27
+ *
28
+ * @remarks
29
+ *
30
+ * **SECURITY CRITICAL:**
31
+ * - This is the only time you'll receive the complete key
32
+ * - Unkey stores only a hashed version (unless the original key was created with `recoverable=true`)
33
+ * - Never log, store, or expose this value in your systems
34
+ * - Transmit directly to the end user via secure channels only
35
+ * - If lost and not recoverable, you must reroll or create a new key
36
+ *
37
+ * The key format follows: `[prefix]_[random_bytes]`
38
+ * - Prefix is extracted from the original key or uses API default
39
+ * - Random bytes follow API configuration (default: 16 bytes)
40
+ *
41
+ * This is NOT the keyId - it's the actual secret token used for authentication.
42
+ */
43
+ key: string;
44
+ };
45
+
46
+ /** @internal */
47
+ export const V2KeysRerollKeyResponseData$inboundSchema: z.ZodType<
48
+ V2KeysRerollKeyResponseData,
49
+ z.ZodTypeDef,
50
+ unknown
51
+ > = z.object({
52
+ keyId: z.string(),
53
+ key: z.string(),
54
+ });
55
+
56
+ /** @internal */
57
+ export type V2KeysRerollKeyResponseData$Outbound = {
58
+ keyId: string;
59
+ key: string;
60
+ };
61
+
62
+ /** @internal */
63
+ export const V2KeysRerollKeyResponseData$outboundSchema: z.ZodType<
64
+ V2KeysRerollKeyResponseData$Outbound,
65
+ z.ZodTypeDef,
66
+ V2KeysRerollKeyResponseData
67
+ > = z.object({
68
+ keyId: z.string(),
69
+ key: z.string(),
70
+ });
71
+
72
+ /**
73
+ * @internal
74
+ * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
75
+ */
76
+ export namespace V2KeysRerollKeyResponseData$ {
77
+ /** @deprecated use `V2KeysRerollKeyResponseData$inboundSchema` instead. */
78
+ export const inboundSchema = V2KeysRerollKeyResponseData$inboundSchema;
79
+ /** @deprecated use `V2KeysRerollKeyResponseData$outboundSchema` instead. */
80
+ export const outboundSchema = V2KeysRerollKeyResponseData$outboundSchema;
81
+ /** @deprecated use `V2KeysRerollKeyResponseData$Outbound` instead. */
82
+ export type Outbound = V2KeysRerollKeyResponseData$Outbound;
83
+ }
84
+
85
+ export function v2KeysRerollKeyResponseDataToJSON(
86
+ v2KeysRerollKeyResponseData: V2KeysRerollKeyResponseData,
87
+ ): string {
88
+ return JSON.stringify(
89
+ V2KeysRerollKeyResponseData$outboundSchema.parse(
90
+ v2KeysRerollKeyResponseData,
91
+ ),
92
+ );
93
+ }
94
+
95
+ export function v2KeysRerollKeyResponseDataFromJSON(
96
+ jsonString: string,
97
+ ): SafeParseResult<V2KeysRerollKeyResponseData, SDKValidationError> {
98
+ return safeParse(
99
+ jsonString,
100
+ (x) => V2KeysRerollKeyResponseData$inboundSchema.parse(JSON.parse(x)),
101
+ `Failed to parse 'V2KeysRerollKeyResponseData' from JSON`,
102
+ );
103
+ }
@@ -32,7 +32,6 @@ export type V2KeysSetPermissionsResponseBody = {
32
32
  * The response includes:
33
33
  * - The comprehensive, updated set of direct permissions (reflecting the complete replacement)
34
34
  * - Both ID and name for each permission for easy reference
35
- * - Permissions sorted alphabetically by name for consistent response format
36
35
  *
37
36
  * Important notes:
38
37
  * - This only shows direct permissions, not those granted through roles
@@ -32,7 +32,6 @@ export type V2KeysSetRolesResponseBody = {
32
32
  * The response includes:
33
33
  * - The comprehensive, updated set of roles (reflecting the complete replacement)
34
34
  * - Both ID and name for each role for easy reference
35
- * - Roles sorted alphabetically by name for consistent response format
36
35
  *
37
36
  * Important notes:
38
37
  * - This response shows the final state after the complete replacement
@@ -6,18 +6,18 @@ import * as z from "zod";
6
6
  import { safeParse } from "../../lib/schemas.js";
7
7
  import { Result as SafeParseResult } from "../../types/fp.js";
8
8
  import { SDKValidationError } from "../errors/sdkvalidationerror.js";
9
- import {
10
- KeyCreditsData,
11
- KeyCreditsData$inboundSchema,
12
- KeyCreditsData$Outbound,
13
- KeyCreditsData$outboundSchema,
14
- } from "./keycreditsdata.js";
15
9
  import {
16
10
  RatelimitRequest,
17
11
  RatelimitRequest$inboundSchema,
18
12
  RatelimitRequest$Outbound,
19
13
  RatelimitRequest$outboundSchema,
20
14
  } from "./ratelimitrequest.js";
15
+ import {
16
+ UpdateKeyCreditsData,
17
+ UpdateKeyCreditsData$inboundSchema,
18
+ UpdateKeyCreditsData$Outbound,
19
+ UpdateKeyCreditsData$outboundSchema,
20
+ } from "./updatekeycreditsdata.js";
21
21
 
22
22
  export type V2KeysUpdateKeyRequestBody = {
23
23
  /**
@@ -68,7 +68,7 @@ export type V2KeysUpdateKeyRequestBody = {
68
68
  /**
69
69
  * Credit configuration and remaining balance for this key.
70
70
  */
71
- credits?: KeyCreditsData | undefined;
71
+ credits?: UpdateKeyCreditsData | null | undefined;
72
72
  /**
73
73
  * Defines time-based rate limits that protect against abuse by controlling request frequency.
74
74
  *
@@ -102,7 +102,7 @@ export const V2KeysUpdateKeyRequestBody$inboundSchema: z.ZodType<
102
102
  externalId: z.nullable(z.string()).optional(),
103
103
  meta: z.nullable(z.record(z.any())).optional(),
104
104
  expires: z.nullable(z.number().int()).optional(),
105
- credits: KeyCreditsData$inboundSchema.optional(),
105
+ credits: z.nullable(UpdateKeyCreditsData$inboundSchema).optional(),
106
106
  ratelimits: z.array(RatelimitRequest$inboundSchema).optional(),
107
107
  enabled: z.boolean().optional(),
108
108
  roles: z.array(z.string()).optional(),
@@ -116,7 +116,7 @@ export type V2KeysUpdateKeyRequestBody$Outbound = {
116
116
  externalId?: string | null | undefined;
117
117
  meta?: { [k: string]: any } | null | undefined;
118
118
  expires?: number | null | undefined;
119
- credits?: KeyCreditsData$Outbound | undefined;
119
+ credits?: UpdateKeyCreditsData$Outbound | null | undefined;
120
120
  ratelimits?: Array<RatelimitRequest$Outbound> | undefined;
121
121
  enabled?: boolean | undefined;
122
122
  roles?: Array<string> | undefined;
@@ -134,7 +134,7 @@ export const V2KeysUpdateKeyRequestBody$outboundSchema: z.ZodType<
134
134
  externalId: z.nullable(z.string()).optional(),
135
135
  meta: z.nullable(z.record(z.any())).optional(),
136
136
  expires: z.nullable(z.number().int()).optional(),
137
- credits: KeyCreditsData$outboundSchema.optional(),
137
+ credits: z.nullable(UpdateKeyCreditsData$outboundSchema).optional(),
138
138
  ratelimits: z.array(RatelimitRequest$outboundSchema).optional(),
139
139
  enabled: z.boolean().optional(),
140
140
  roles: z.array(z.string()).optional(),
@@ -0,0 +1,118 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod";
6
+ import * as components from "../components/index.js";
7
+ import { UnkeyError } from "./unkeyerror.js";
8
+
9
+ /**
10
+ * Error response when the requested resource has been soft-deleted and is no longer available. This occurs when:
11
+ *
12
+ * @remarks
13
+ * - The resource has been marked as deleted but still exists in the database
14
+ * - The resource is intentionally unavailable but could potentially be restored
15
+ * - The resource cannot be restored through the API or dashboard
16
+ *
17
+ * To resolve this error, contact support if you need the resource restored.
18
+ */
19
+ export type GoneErrorResponseData = {
20
+ /**
21
+ * Metadata object included in every API response. This provides context about the request and is essential for debugging, audit trails, and support inquiries. The `requestId` is particularly important when troubleshooting issues with the Unkey support team.
22
+ */
23
+ meta: components.Meta;
24
+ /**
25
+ * Base error structure following Problem Details for HTTP APIs (RFC 7807). This provides a standardized way to carry machine-readable details of errors in HTTP response content.
26
+ */
27
+ error: components.BaseError;
28
+ };
29
+
30
+ /**
31
+ * Error response when the requested resource has been soft-deleted and is no longer available. This occurs when:
32
+ *
33
+ * @remarks
34
+ * - The resource has been marked as deleted but still exists in the database
35
+ * - The resource is intentionally unavailable but could potentially be restored
36
+ * - The resource cannot be restored through the API or dashboard
37
+ *
38
+ * To resolve this error, contact support if you need the resource restored.
39
+ */
40
+ export class GoneErrorResponse extends UnkeyError {
41
+ /**
42
+ * Metadata object included in every API response. This provides context about the request and is essential for debugging, audit trails, and support inquiries. The `requestId` is particularly important when troubleshooting issues with the Unkey support team.
43
+ */
44
+ meta: components.Meta;
45
+ /**
46
+ * Base error structure following Problem Details for HTTP APIs (RFC 7807). This provides a standardized way to carry machine-readable details of errors in HTTP response content.
47
+ */
48
+ error: components.BaseError;
49
+
50
+ /** The original data that was passed to this error instance. */
51
+ data$: GoneErrorResponseData;
52
+
53
+ constructor(
54
+ err: GoneErrorResponseData,
55
+ httpMeta: { response: Response; request: Request; body: string },
56
+ ) {
57
+ const message = "message" in err && typeof err.message === "string"
58
+ ? err.message
59
+ : `API error occurred: ${JSON.stringify(err)}`;
60
+ super(message, httpMeta);
61
+ this.data$ = err;
62
+ this.meta = err.meta;
63
+ this.error = err.error;
64
+
65
+ this.name = "GoneErrorResponse";
66
+ }
67
+ }
68
+
69
+ /** @internal */
70
+ export const GoneErrorResponse$inboundSchema: z.ZodType<
71
+ GoneErrorResponse,
72
+ z.ZodTypeDef,
73
+ unknown
74
+ > = z.object({
75
+ meta: components.Meta$inboundSchema,
76
+ error: components.BaseError$inboundSchema,
77
+ request$: z.instanceof(Request),
78
+ response$: z.instanceof(Response),
79
+ body$: z.string(),
80
+ })
81
+ .transform((v) => {
82
+ return new GoneErrorResponse(v, {
83
+ request: v.request$,
84
+ response: v.response$,
85
+ body: v.body$,
86
+ });
87
+ });
88
+
89
+ /** @internal */
90
+ export type GoneErrorResponse$Outbound = {
91
+ meta: components.Meta$Outbound;
92
+ error: components.BaseError$Outbound;
93
+ };
94
+
95
+ /** @internal */
96
+ export const GoneErrorResponse$outboundSchema: z.ZodType<
97
+ GoneErrorResponse$Outbound,
98
+ z.ZodTypeDef,
99
+ GoneErrorResponse
100
+ > = z.instanceof(GoneErrorResponse)
101
+ .transform(v => v.data$)
102
+ .pipe(z.object({
103
+ meta: components.Meta$outboundSchema,
104
+ error: components.BaseError$outboundSchema,
105
+ }));
106
+
107
+ /**
108
+ * @internal
109
+ * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
110
+ */
111
+ export namespace GoneErrorResponse$ {
112
+ /** @deprecated use `GoneErrorResponse$inboundSchema` instead. */
113
+ export const inboundSchema = GoneErrorResponse$inboundSchema;
114
+ /** @deprecated use `GoneErrorResponse$outboundSchema` instead. */
115
+ export const outboundSchema = GoneErrorResponse$outboundSchema;
116
+ /** @deprecated use `GoneErrorResponse$Outbound` instead. */
117
+ export type Outbound = GoneErrorResponse$Outbound;
118
+ }
@@ -6,6 +6,7 @@ export * from "./apierror.js";
6
6
  export * from "./badrequesterrorresponse.js";
7
7
  export * from "./conflicterrorresponse.js";
8
8
  export * from "./forbiddenerrorresponse.js";
9
+ export * from "./goneerrorresponse.js";
9
10
  export * from "./httpclienterrors.js";
10
11
  export * from "./internalservererrorresponse.js";
11
12
  export * from "./notfounderrorresponse.js";
package/src/sdk/keys.ts CHANGED
@@ -9,6 +9,7 @@ import { keysDeleteKey } from "../funcs/keysDeleteKey.js";
9
9
  import { keysGetKey } from "../funcs/keysGetKey.js";
10
10
  import { keysRemovePermissions } from "../funcs/keysRemovePermissions.js";
11
11
  import { keysRemoveRoles } from "../funcs/keysRemoveRoles.js";
12
+ import { keysRerollKey } from "../funcs/keysRerollKey.js";
12
13
  import { keysSetPermissions } from "../funcs/keysSetPermissions.js";
13
14
  import { keysSetRoles } from "../funcs/keysSetRoles.js";
14
15
  import { keysUpdateCredits } from "../funcs/keysUpdateCredits.js";
@@ -233,6 +234,54 @@ export class Keys extends ClientSDK {
233
234
  ));
234
235
  }
235
236
 
237
+ /**
238
+ * Reroll Key
239
+ *
240
+ * @remarks
241
+ * Generate a new API key while preserving the configuration from an existing key.
242
+ *
243
+ * This operation creates a fresh key with a new token while maintaining all settings from the original key:
244
+ * - Permissions and roles
245
+ * - Custom metadata
246
+ * - Rate limit configurations
247
+ * - Identity associations
248
+ * - Remaining credits
249
+ * - Recovery settings
250
+ *
251
+ * **Key Generation:**
252
+ * - The system attempts to extract the prefix from the original key
253
+ * - If prefix extraction fails, the default API prefix is used
254
+ * - Key length follows the API's default byte configuration (or 16 bytes if not specified)
255
+ *
256
+ * **Original Key Handling:**
257
+ * - The original key will be revoked after the duration specified in `expiration`
258
+ * - Set `expiration` to 0 to revoke immediately
259
+ * - This allows for graceful key rotation with an overlap period
260
+ *
261
+ * Common use cases include:
262
+ * - Rotating keys for security compliance
263
+ * - Issuing replacement keys for compromised credentials
264
+ * - Creating backup keys with identical permissions
265
+ *
266
+ * **Important:** Analytics and usage metrics are tracked at both the key level AND identity level. If the original key has an identity, the new key will inherit it, allowing you to track usage across both individual keys and the overall identity.
267
+ *
268
+ * **Required Permissions**
269
+ *
270
+ * Your root key must have:
271
+ * - `api.*.create_key` or `api.<api_id>.create_key`
272
+ * - `api.*.encrypt_key` or `api.<api_id>.encrypt_key` (only when the original key is recoverable)
273
+ */
274
+ async rerollKey(
275
+ request: components.V2KeysRerollKeyRequestBody,
276
+ options?: RequestOptions,
277
+ ): Promise<components.V2KeysRerollKeyResponseBody> {
278
+ return unwrapAsync(keysRerollKey(
279
+ this,
280
+ request,
281
+ options,
282
+ ));
283
+ }
284
+
236
285
  /**
237
286
  * Set key permissions
238
287
  *
@@ -161,7 +161,8 @@ export class Permissions extends ClientSDK {
161
161
  * List permissions
162
162
  *
163
163
  * @remarks
164
- * Retrieve all permissions in your workspace. Results are paginated and sorted alphabetically by permission name.
164
+ * Retrieve all permissions in your workspace.
165
+ * Results are paginated and sorted by their id.
165
166
  *
166
167
  * **Required Permissions**
167
168
  *
@@ -183,7 +184,8 @@ export class Permissions extends ClientSDK {
183
184
  * List roles
184
185
  *
185
186
  * @remarks
186
- * Retrieve all roles in your workspace including their assigned permissions. Results are paginated and sorted alphabetically by role name.
187
+ * Retrieve all roles in your workspace including their assigned permissions.
188
+ * Results are paginated and sorted by their id.
187
189
  *
188
190
  * **Required Permissions**
189
191
  *
@@ -66,7 +66,7 @@ export class Ratelimit extends ClientSDK {
66
66
  *
67
67
  * Use this for rate limiting beyond API keys - limit users by ID, IPs by address, or any custom identifier. Supports namespace organization, variable costs, and custom overrides.
68
68
  *
69
- * **Important**: Always returns HTTP 200. Check the `success` field to determine if the request should proceed.
69
+ * **Response Codes**: Rate limit checks return HTTP 200 regardless of whether the limit is exceeded - check the `success` field in the response to determine if the request should be allowed. 4xx responses indicate auth, namespace existence/deletion, or validation errors (e.g., 410 Gone for deleted namespaces). 5xx responses indicate server errors.
70
70
  *
71
71
  * **Required Permissions**
72
72
  *