integrateledger 0.1.0 → 0.1.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 (238) hide show
  1. package/README.md +76 -72
  2. package/dist/commonjs/funcs/publish-catalog.js +1 -1
  3. package/dist/commonjs/funcs/publish-catalog.js.map +1 -1
  4. package/dist/commonjs/funcs/set-customer-overage-cap.d.ts +16 -0
  5. package/dist/commonjs/funcs/set-customer-overage-cap.d.ts.map +1 -0
  6. package/dist/commonjs/funcs/set-customer-overage-cap.js +122 -0
  7. package/dist/commonjs/funcs/set-customer-overage-cap.js.map +1 -0
  8. package/dist/commonjs/funcs/set-customer-overage-override.d.ts +16 -0
  9. package/dist/commonjs/funcs/set-customer-overage-override.d.ts.map +1 -0
  10. package/dist/commonjs/funcs/set-customer-overage-override.js +122 -0
  11. package/dist/commonjs/funcs/set-customer-overage-override.js.map +1 -0
  12. package/dist/commonjs/funcs/set-subscription-cancellation.js +1 -1
  13. package/dist/commonjs/funcs/set-subscription-cancellation.js.map +1 -1
  14. package/dist/commonjs/funcs/update-add-on.js +1 -1
  15. package/dist/commonjs/funcs/update-add-on.js.map +1 -1
  16. package/dist/commonjs/funcs/update-feature.js +1 -1
  17. package/dist/commonjs/funcs/update-feature.js.map +1 -1
  18. package/dist/commonjs/funcs/update-plan.js +1 -1
  19. package/dist/commonjs/funcs/update-plan.js.map +1 -1
  20. package/dist/commonjs/lib/config.d.ts +2 -2
  21. package/dist/commonjs/lib/config.js +2 -2
  22. package/dist/commonjs/models/catalog-input.d.ts +15 -0
  23. package/dist/commonjs/models/catalog-input.d.ts.map +1 -1
  24. package/dist/commonjs/models/catalog-input.js +3 -0
  25. package/dist/commonjs/models/catalog-input.js.map +1 -1
  26. package/dist/commonjs/models/check-response.d.ts +3 -0
  27. package/dist/commonjs/models/check-response.d.ts.map +1 -1
  28. package/dist/commonjs/models/check-response.js.map +1 -1
  29. package/dist/commonjs/models/create-plan-input.d.ts +15 -0
  30. package/dist/commonjs/models/create-plan-input.d.ts.map +1 -1
  31. package/dist/commonjs/models/create-plan-input.js +3 -0
  32. package/dist/commonjs/models/create-plan-input.js.map +1 -1
  33. package/dist/commonjs/models/customer-detail.d.ts +6 -0
  34. package/dist/commonjs/models/customer-detail.d.ts.map +1 -1
  35. package/dist/commonjs/models/customer-detail.js +3 -0
  36. package/dist/commonjs/models/customer-detail.js.map +1 -1
  37. package/dist/commonjs/models/customer-overage-cap.d.ts +13 -0
  38. package/dist/commonjs/models/customer-overage-cap.d.ts.map +1 -0
  39. package/dist/commonjs/models/customer-overage-cap.js +54 -0
  40. package/dist/commonjs/models/customer-overage-cap.js.map +1 -0
  41. package/dist/commonjs/models/customer-overage-override-result.d.ts +18 -0
  42. package/dist/commonjs/models/customer-overage-override-result.d.ts.map +1 -0
  43. package/dist/commonjs/models/customer-overage-override-result.js +56 -0
  44. package/dist/commonjs/models/customer-overage-override-result.js.map +1 -0
  45. package/dist/commonjs/models/customer-overage-override.d.ts +23 -0
  46. package/dist/commonjs/models/customer-overage-override.d.ts.map +1 -0
  47. package/dist/commonjs/models/customer-overage-override.js +55 -0
  48. package/dist/commonjs/models/customer-overage-override.js.map +1 -0
  49. package/dist/commonjs/models/customer-overage.d.ts +67 -0
  50. package/dist/commonjs/models/customer-overage.d.ts.map +1 -0
  51. package/dist/commonjs/models/customer-overage.js +83 -0
  52. package/dist/commonjs/models/customer-overage.js.map +1 -0
  53. package/dist/commonjs/models/errors/track-error.d.ts +2 -0
  54. package/dist/commonjs/models/errors/track-error.d.ts.map +1 -1
  55. package/dist/commonjs/models/errors/track-error.js +5 -0
  56. package/dist/commonjs/models/errors/track-error.js.map +1 -1
  57. package/dist/commonjs/models/index.d.ts +6 -0
  58. package/dist/commonjs/models/index.d.ts.map +1 -1
  59. package/dist/commonjs/models/index.js +6 -0
  60. package/dist/commonjs/models/index.js.map +1 -1
  61. package/dist/commonjs/models/operations/index.d.ts +2 -0
  62. package/dist/commonjs/models/operations/index.d.ts.map +1 -1
  63. package/dist/commonjs/models/operations/index.js +2 -0
  64. package/dist/commonjs/models/operations/index.js.map +1 -1
  65. package/dist/commonjs/models/operations/set-customer-overage-cap.d.ts +15 -0
  66. package/dist/commonjs/models/operations/set-customer-overage-cap.d.ts.map +1 -0
  67. package/dist/commonjs/models/operations/set-customer-overage-cap.js +51 -0
  68. package/dist/commonjs/models/operations/set-customer-overage-cap.js.map +1 -0
  69. package/dist/commonjs/models/operations/set-customer-overage-override.d.ts +15 -0
  70. package/dist/commonjs/models/operations/set-customer-overage-override.d.ts.map +1 -0
  71. package/dist/commonjs/models/operations/set-customer-overage-override.js +51 -0
  72. package/dist/commonjs/models/operations/set-customer-overage-override.js.map +1 -0
  73. package/dist/commonjs/models/plan-item.d.ts +12 -0
  74. package/dist/commonjs/models/plan-item.d.ts.map +1 -1
  75. package/dist/commonjs/models/plan-item.js +3 -0
  76. package/dist/commonjs/models/plan-item.js.map +1 -1
  77. package/dist/commonjs/models/set-customer-overage-cap-input.d.ts +15 -0
  78. package/dist/commonjs/models/set-customer-overage-cap-input.d.ts.map +1 -0
  79. package/dist/commonjs/models/set-customer-overage-cap-input.js +49 -0
  80. package/dist/commonjs/models/set-customer-overage-cap-input.js.map +1 -0
  81. package/dist/commonjs/models/set-customer-overage-override-input.d.ts +30 -0
  82. package/dist/commonjs/models/set-customer-overage-override-input.d.ts.map +1 -0
  83. package/dist/commonjs/models/set-customer-overage-override-input.js +52 -0
  84. package/dist/commonjs/models/set-customer-overage-override-input.js.map +1 -0
  85. package/dist/commonjs/models/track-response.d.ts +11 -0
  86. package/dist/commonjs/models/track-response.d.ts.map +1 -1
  87. package/dist/commonjs/models/track-response.js +2 -0
  88. package/dist/commonjs/models/track-response.js.map +1 -1
  89. package/dist/commonjs/models/update-plan-input.d.ts +15 -0
  90. package/dist/commonjs/models/update-plan-input.d.ts.map +1 -1
  91. package/dist/commonjs/models/update-plan-input.js +3 -0
  92. package/dist/commonjs/models/update-plan-input.js.map +1 -1
  93. package/dist/commonjs/sdk/sdk.d.ts +8 -0
  94. package/dist/commonjs/sdk/sdk.d.ts.map +1 -1
  95. package/dist/commonjs/sdk/sdk.js +14 -0
  96. package/dist/commonjs/sdk/sdk.js.map +1 -1
  97. package/dist/esm/funcs/publish-catalog.js +1 -1
  98. package/dist/esm/funcs/publish-catalog.js.map +1 -1
  99. package/dist/esm/funcs/set-customer-overage-cap.d.ts +16 -0
  100. package/dist/esm/funcs/set-customer-overage-cap.d.ts.map +1 -0
  101. package/dist/esm/funcs/set-customer-overage-cap.js +86 -0
  102. package/dist/esm/funcs/set-customer-overage-cap.js.map +1 -0
  103. package/dist/esm/funcs/set-customer-overage-override.d.ts +16 -0
  104. package/dist/esm/funcs/set-customer-overage-override.d.ts.map +1 -0
  105. package/dist/esm/funcs/set-customer-overage-override.js +86 -0
  106. package/dist/esm/funcs/set-customer-overage-override.js.map +1 -0
  107. package/dist/esm/funcs/set-subscription-cancellation.js +1 -1
  108. package/dist/esm/funcs/set-subscription-cancellation.js.map +1 -1
  109. package/dist/esm/funcs/update-add-on.js +1 -1
  110. package/dist/esm/funcs/update-add-on.js.map +1 -1
  111. package/dist/esm/funcs/update-feature.js +1 -1
  112. package/dist/esm/funcs/update-feature.js.map +1 -1
  113. package/dist/esm/funcs/update-plan.js +1 -1
  114. package/dist/esm/funcs/update-plan.js.map +1 -1
  115. package/dist/esm/lib/config.d.ts +2 -2
  116. package/dist/esm/lib/config.js +2 -2
  117. package/dist/esm/models/catalog-input.d.ts +15 -0
  118. package/dist/esm/models/catalog-input.d.ts.map +1 -1
  119. package/dist/esm/models/catalog-input.js +3 -0
  120. package/dist/esm/models/catalog-input.js.map +1 -1
  121. package/dist/esm/models/check-response.d.ts +3 -0
  122. package/dist/esm/models/check-response.d.ts.map +1 -1
  123. package/dist/esm/models/check-response.js.map +1 -1
  124. package/dist/esm/models/create-plan-input.d.ts +15 -0
  125. package/dist/esm/models/create-plan-input.d.ts.map +1 -1
  126. package/dist/esm/models/create-plan-input.js +3 -0
  127. package/dist/esm/models/create-plan-input.js.map +1 -1
  128. package/dist/esm/models/customer-detail.d.ts +6 -0
  129. package/dist/esm/models/customer-detail.d.ts.map +1 -1
  130. package/dist/esm/models/customer-detail.js +3 -0
  131. package/dist/esm/models/customer-detail.js.map +1 -1
  132. package/dist/esm/models/customer-overage-cap.d.ts +13 -0
  133. package/dist/esm/models/customer-overage-cap.d.ts.map +1 -0
  134. package/dist/esm/models/customer-overage-cap.js +17 -0
  135. package/dist/esm/models/customer-overage-cap.js.map +1 -0
  136. package/dist/esm/models/customer-overage-override-result.d.ts +18 -0
  137. package/dist/esm/models/customer-overage-override-result.d.ts.map +1 -0
  138. package/dist/esm/models/customer-overage-override-result.js +19 -0
  139. package/dist/esm/models/customer-overage-override-result.js.map +1 -0
  140. package/dist/esm/models/customer-overage-override.d.ts +23 -0
  141. package/dist/esm/models/customer-overage-override.d.ts.map +1 -0
  142. package/dist/esm/models/customer-overage-override.js +18 -0
  143. package/dist/esm/models/customer-overage-override.js.map +1 -0
  144. package/dist/esm/models/customer-overage.d.ts +67 -0
  145. package/dist/esm/models/customer-overage.d.ts.map +1 -0
  146. package/dist/esm/models/customer-overage.js +46 -0
  147. package/dist/esm/models/customer-overage.js.map +1 -0
  148. package/dist/esm/models/errors/track-error.d.ts +2 -0
  149. package/dist/esm/models/errors/track-error.d.ts.map +1 -1
  150. package/dist/esm/models/errors/track-error.js +5 -0
  151. package/dist/esm/models/errors/track-error.js.map +1 -1
  152. package/dist/esm/models/index.d.ts +6 -0
  153. package/dist/esm/models/index.d.ts.map +1 -1
  154. package/dist/esm/models/index.js +6 -0
  155. package/dist/esm/models/index.js.map +1 -1
  156. package/dist/esm/models/operations/index.d.ts +2 -0
  157. package/dist/esm/models/operations/index.d.ts.map +1 -1
  158. package/dist/esm/models/operations/index.js +2 -0
  159. package/dist/esm/models/operations/index.js.map +1 -1
  160. package/dist/esm/models/operations/set-customer-overage-cap.d.ts +15 -0
  161. package/dist/esm/models/operations/set-customer-overage-cap.d.ts.map +1 -0
  162. package/dist/esm/models/operations/set-customer-overage-cap.js +14 -0
  163. package/dist/esm/models/operations/set-customer-overage-cap.js.map +1 -0
  164. package/dist/esm/models/operations/set-customer-overage-override.d.ts +15 -0
  165. package/dist/esm/models/operations/set-customer-overage-override.d.ts.map +1 -0
  166. package/dist/esm/models/operations/set-customer-overage-override.js +14 -0
  167. package/dist/esm/models/operations/set-customer-overage-override.js.map +1 -0
  168. package/dist/esm/models/plan-item.d.ts +12 -0
  169. package/dist/esm/models/plan-item.d.ts.map +1 -1
  170. package/dist/esm/models/plan-item.js +3 -0
  171. package/dist/esm/models/plan-item.js.map +1 -1
  172. package/dist/esm/models/set-customer-overage-cap-input.d.ts +15 -0
  173. package/dist/esm/models/set-customer-overage-cap-input.d.ts.map +1 -0
  174. package/dist/esm/models/set-customer-overage-cap-input.js +12 -0
  175. package/dist/esm/models/set-customer-overage-cap-input.js.map +1 -0
  176. package/dist/esm/models/set-customer-overage-override-input.d.ts +30 -0
  177. package/dist/esm/models/set-customer-overage-override-input.d.ts.map +1 -0
  178. package/dist/esm/models/set-customer-overage-override-input.js +15 -0
  179. package/dist/esm/models/set-customer-overage-override-input.js.map +1 -0
  180. package/dist/esm/models/track-response.d.ts +11 -0
  181. package/dist/esm/models/track-response.d.ts.map +1 -1
  182. package/dist/esm/models/track-response.js +2 -0
  183. package/dist/esm/models/track-response.js.map +1 -1
  184. package/dist/esm/models/update-plan-input.d.ts +15 -0
  185. package/dist/esm/models/update-plan-input.d.ts.map +1 -1
  186. package/dist/esm/models/update-plan-input.js +3 -0
  187. package/dist/esm/models/update-plan-input.js.map +1 -1
  188. package/dist/esm/sdk/sdk.d.ts +8 -0
  189. package/dist/esm/sdk/sdk.d.ts.map +1 -1
  190. package/dist/esm/sdk/sdk.js +14 -0
  191. package/dist/esm/sdk/sdk.js.map +1 -1
  192. package/docs/models/cap-source.md +19 -0
  193. package/docs/models/check-response.md +5 -5
  194. package/docs/models/create-plan-input.md +9 -6
  195. package/docs/models/customer-detail.md +28 -6
  196. package/docs/models/customer-overage-cap.md +39 -0
  197. package/docs/models/customer-overage-override-result.md +47 -0
  198. package/docs/models/customer-overage-override.md +27 -0
  199. package/docs/models/customer-overage.md +37 -0
  200. package/docs/models/errors/track-error.md +6 -5
  201. package/docs/models/operations/set-customer-overage-cap-request.md +21 -0
  202. package/docs/models/operations/set-customer-overage-override-request.md +21 -0
  203. package/docs/models/plan-item.md +10 -7
  204. package/docs/models/plan.md +9 -6
  205. package/docs/models/set-customer-overage-cap-input.md +17 -0
  206. package/docs/models/set-customer-overage-override-input.md +20 -0
  207. package/docs/models/source.md +19 -0
  208. package/docs/models/track-response.md +12 -8
  209. package/docs/models/update-plan-input.md +8 -5
  210. package/docs/sdks/ledger/README.md +167 -5
  211. package/package.json +2 -2
  212. package/src/funcs/publish-catalog.ts +1 -1
  213. package/src/funcs/set-customer-overage-cap.ts +176 -0
  214. package/src/funcs/set-customer-overage-override.ts +179 -0
  215. package/src/funcs/set-subscription-cancellation.ts +1 -1
  216. package/src/funcs/update-add-on.ts +1 -1
  217. package/src/funcs/update-feature.ts +1 -1
  218. package/src/funcs/update-plan.ts +1 -1
  219. package/src/lib/config.ts +2 -2
  220. package/src/models/catalog-input.ts +18 -0
  221. package/src/models/check-response.ts +3 -0
  222. package/src/models/create-plan-input.ts +18 -0
  223. package/src/models/customer-detail.ts +11 -0
  224. package/src/models/customer-overage-cap.ts +39 -0
  225. package/src/models/customer-overage-override-result.ts +48 -0
  226. package/src/models/customer-overage-override.ts +48 -0
  227. package/src/models/customer-overage.ts +108 -0
  228. package/src/models/errors/track-error.ts +6 -0
  229. package/src/models/index.ts +6 -0
  230. package/src/models/operations/index.ts +2 -0
  231. package/src/models/operations/set-customer-overage-cap.ts +36 -0
  232. package/src/models/operations/set-customer-overage-override.ts +36 -0
  233. package/src/models/plan-item.ts +15 -0
  234. package/src/models/set-customer-overage-cap-input.ts +33 -0
  235. package/src/models/set-customer-overage-override-input.ts +53 -0
  236. package/src/models/track-response.ts +13 -0
  237. package/src/models/update-plan-input.ts +18 -0
  238. package/src/sdk/sdk.ts +30 -0
@@ -26,6 +26,18 @@ export type Plan = {
26
26
  name: string;
27
27
  monthlyCredits: number;
28
28
  monthlyPriceCents: number;
29
+ /**
30
+ * Price in cents per overageBillingUnits credits used after the plan's credits and packs run out. Null or omitted: no overage.
31
+ */
32
+ overageUnitAmountCents?: number | null | undefined;
33
+ /**
34
+ * Credits billed per overageUnitAmountCents. Defaults to 1.
35
+ */
36
+ overageBillingUnits?: number | undefined;
37
+ /**
38
+ * Default monthly overage spend cap in cents. A customer's own cap replaces it. Null or omitted: no cap.
39
+ */
40
+ overageCapCents?: number | null | undefined;
29
41
  };
30
42
 
31
43
  export type Feature = {
@@ -85,6 +97,9 @@ export type Plan$Outbound = {
85
97
  name: string;
86
98
  monthlyCredits: number;
87
99
  monthlyPriceCents: number;
100
+ overageUnitAmountCents?: number | null | undefined;
101
+ overageBillingUnits?: number | undefined;
102
+ overageCapCents?: number | null | undefined;
88
103
  };
89
104
 
90
105
  /** @internal */
@@ -94,6 +109,9 @@ export const Plan$outboundSchema: z.ZodMiniType<Plan$Outbound, Plan> = z.object(
94
109
  name: z.string(),
95
110
  monthlyCredits: z.int(),
96
111
  monthlyPriceCents: z.int(),
112
+ overageUnitAmountCents: z.optional(z.nullable(z.int())),
113
+ overageBillingUnits: z.optional(z.int()),
114
+ overageCapCents: z.optional(z.nullable(z.int())),
97
115
  },
98
116
  );
99
117
 
@@ -9,6 +9,9 @@ import * as types from "../types/primitives.js";
9
9
  import { SDKValidationError } from "./errors/sdk-validation-error.js";
10
10
 
11
11
  export type CheckResponse = {
12
+ /**
13
+ * Whether track would accept this feature now: from prepaid credits, or as overage within the cap on a paid plan with overage.
14
+ */
12
15
  allowed: boolean;
13
16
  availableCredits: number;
14
17
  creditCost: number;
@@ -9,6 +9,18 @@ export type CreatePlanInput = {
9
9
  name: string;
10
10
  monthlyCredits: number;
11
11
  monthlyPriceCents: number;
12
+ /**
13
+ * Price in cents per overageBillingUnits credits used after the plan's credits and packs run out. Null or omitted: no overage.
14
+ */
15
+ overageUnitAmountCents?: number | null | undefined;
16
+ /**
17
+ * Credits billed per overageUnitAmountCents. Defaults to 1.
18
+ */
19
+ overageBillingUnits?: number | undefined;
20
+ /**
21
+ * Default monthly overage spend cap in cents. A customer's own cap replaces it. Null or omitted: no cap.
22
+ */
23
+ overageCapCents?: number | null | undefined;
12
24
  };
13
25
 
14
26
  /** @internal */
@@ -17,6 +29,9 @@ export type CreatePlanInput$Outbound = {
17
29
  name: string;
18
30
  monthlyCredits: number;
19
31
  monthlyPriceCents: number;
32
+ overageUnitAmountCents?: number | null | undefined;
33
+ overageBillingUnits?: number | undefined;
34
+ overageCapCents?: number | null | undefined;
20
35
  };
21
36
 
22
37
  /** @internal */
@@ -28,6 +43,9 @@ export const CreatePlanInput$outboundSchema: z.ZodMiniType<
28
43
  name: z.string(),
29
44
  monthlyCredits: z.int(),
30
45
  monthlyPriceCents: z.int(),
46
+ overageUnitAmountCents: z.optional(z.nullable(z.int())),
47
+ overageBillingUnits: z.optional(z.int()),
48
+ overageCapCents: z.optional(z.nullable(z.int())),
31
49
  });
32
50
 
33
51
  export function createPlanInputToJSON(
@@ -8,6 +8,10 @@ import * as openEnums from "../types/enums.js";
8
8
  import { OpenEnum } from "../types/enums.js";
9
9
  import { Result as SafeParseResult } from "../types/fp.js";
10
10
  import * as types from "../types/primitives.js";
11
+ import {
12
+ CustomerOverage,
13
+ CustomerOverage$inboundSchema,
14
+ } from "./customer-overage.js";
11
15
  import { SDKValidationError } from "./errors/sdk-validation-error.js";
12
16
 
13
17
  export const CustomerDetailStatus = {
@@ -29,6 +33,11 @@ export type CustomerDetail = {
29
33
  createdAt: Date;
30
34
  availableCredits: number;
31
35
  currentPlan: CurrentPlan | null;
36
+ /**
37
+ * The customer's own overage cap, set with setCustomerOverageCap. Null: the plan default applies.
38
+ */
39
+ overageCapCents: number | null;
40
+ overage: CustomerOverage | null;
32
41
  };
33
42
 
34
43
  /** @internal */
@@ -66,6 +75,8 @@ export const CustomerDetail$inboundSchema: z.ZodMiniType<
66
75
  createdAt: types.date(),
67
76
  availableCredits: types.number(),
68
77
  currentPlan: types.nullable(z.lazy(() => CurrentPlan$inboundSchema)),
78
+ overageCapCents: types.nullable(types.number()),
79
+ overage: types.nullable(CustomerOverage$inboundSchema),
69
80
  });
70
81
 
71
82
  export function customerDetailFromJSON(
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { safeParse } from "../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../types/fp.js";
8
+ import * as types from "../types/primitives.js";
9
+ import {
10
+ CustomerOverage,
11
+ CustomerOverage$inboundSchema,
12
+ } from "./customer-overage.js";
13
+ import { SDKValidationError } from "./errors/sdk-validation-error.js";
14
+
15
+ export type CustomerOverageCap = {
16
+ customerId: string;
17
+ capCents: number | null;
18
+ overage: CustomerOverage | null;
19
+ };
20
+
21
+ /** @internal */
22
+ export const CustomerOverageCap$inboundSchema: z.ZodMiniType<
23
+ CustomerOverageCap,
24
+ unknown
25
+ > = z.object({
26
+ customerId: types.string(),
27
+ capCents: types.nullable(types.number()),
28
+ overage: types.nullable(CustomerOverage$inboundSchema),
29
+ });
30
+
31
+ export function customerOverageCapFromJSON(
32
+ jsonString: string,
33
+ ): SafeParseResult<CustomerOverageCap, SDKValidationError> {
34
+ return safeParse(
35
+ jsonString,
36
+ (x) => CustomerOverageCap$inboundSchema.parse(JSON.parse(x)),
37
+ `Failed to parse 'CustomerOverageCap' from JSON`,
38
+ );
39
+ }
@@ -0,0 +1,48 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { safeParse } from "../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../types/fp.js";
8
+ import * as types from "../types/primitives.js";
9
+ import {
10
+ CustomerOverageOverride,
11
+ CustomerOverageOverride$inboundSchema,
12
+ } from "./customer-overage-override.js";
13
+ import {
14
+ CustomerOverage,
15
+ CustomerOverage$inboundSchema,
16
+ } from "./customer-overage.js";
17
+ import { SDKValidationError } from "./errors/sdk-validation-error.js";
18
+
19
+ export type CustomerOverageOverrideResult = {
20
+ customerId: string;
21
+ /**
22
+ * The scope that was set or cleared. Null: any plan.
23
+ */
24
+ planId: string | null;
25
+ override: CustomerOverageOverride | null;
26
+ overage: CustomerOverage | null;
27
+ };
28
+
29
+ /** @internal */
30
+ export const CustomerOverageOverrideResult$inboundSchema: z.ZodMiniType<
31
+ CustomerOverageOverrideResult,
32
+ unknown
33
+ > = z.object({
34
+ customerId: types.string(),
35
+ planId: types.nullable(types.string()),
36
+ override: types.nullable(CustomerOverageOverride$inboundSchema),
37
+ overage: types.nullable(CustomerOverage$inboundSchema),
38
+ });
39
+
40
+ export function customerOverageOverrideResultFromJSON(
41
+ jsonString: string,
42
+ ): SafeParseResult<CustomerOverageOverrideResult, SDKValidationError> {
43
+ return safeParse(
44
+ jsonString,
45
+ (x) => CustomerOverageOverrideResult$inboundSchema.parse(JSON.parse(x)),
46
+ `Failed to parse 'CustomerOverageOverrideResult' from JSON`,
47
+ );
48
+ }
@@ -0,0 +1,48 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { safeParse } from "../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../types/fp.js";
8
+ import * as types from "../types/primitives.js";
9
+ import { SDKValidationError } from "./errors/sdk-validation-error.js";
10
+
11
+ /**
12
+ * The override behind the rate when source is override. Null otherwise.
13
+ */
14
+ export type CustomerOverageOverride = {
15
+ /**
16
+ * The plan it applies to. Null: any plan.
17
+ */
18
+ planId: string | null;
19
+ unitAmountCents: number;
20
+ billingUnits: number;
21
+ /**
22
+ * The override's cap. Null: the plan default applies.
23
+ */
24
+ capCents: number | null;
25
+ effectiveFrom: Date;
26
+ };
27
+
28
+ /** @internal */
29
+ export const CustomerOverageOverride$inboundSchema: z.ZodMiniType<
30
+ CustomerOverageOverride,
31
+ unknown
32
+ > = z.object({
33
+ planId: types.nullable(types.string()),
34
+ unitAmountCents: types.number(),
35
+ billingUnits: types.number(),
36
+ capCents: types.nullable(types.number()),
37
+ effectiveFrom: types.date(),
38
+ });
39
+
40
+ export function customerOverageOverrideFromJSON(
41
+ jsonString: string,
42
+ ): SafeParseResult<CustomerOverageOverride, SDKValidationError> {
43
+ return safeParse(
44
+ jsonString,
45
+ (x) => CustomerOverageOverride$inboundSchema.parse(JSON.parse(x)),
46
+ `Failed to parse 'CustomerOverageOverride' from JSON`,
47
+ );
48
+ }
@@ -0,0 +1,108 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import { safeParse } from "../lib/schemas.js";
7
+ import * as openEnums from "../types/enums.js";
8
+ import { OpenEnum } from "../types/enums.js";
9
+ import { Result as SafeParseResult } from "../types/fp.js";
10
+ import * as types from "../types/primitives.js";
11
+ import {
12
+ CustomerOverageOverride,
13
+ CustomerOverageOverride$inboundSchema,
14
+ } from "./customer-overage-override.js";
15
+ import { SDKValidationError } from "./errors/sdk-validation-error.js";
16
+
17
+ /**
18
+ * customer: the customer's own cap; override: the customer's overage override; plan: the plan default; null: no cap.
19
+ */
20
+ export const CapSource = {
21
+ Customer: "customer",
22
+ Override: "override",
23
+ Plan: "plan",
24
+ } as const;
25
+ /**
26
+ * customer: the customer's own cap; override: the customer's overage override; plan: the plan default; null: no cap.
27
+ */
28
+ export type CapSource = OpenEnum<typeof CapSource>;
29
+
30
+ /**
31
+ * Where the overage rate comes from: the plan, or an override set with setCustomerOverageOverride.
32
+ */
33
+ export const Source = {
34
+ Plan: "plan",
35
+ Override: "override",
36
+ } as const;
37
+ /**
38
+ * Where the overage rate comes from: the plan, or an override set with setCustomerOverageOverride.
39
+ */
40
+ export type Source = OpenEnum<typeof Source>;
41
+
42
+ export type CustomerOverage = {
43
+ /**
44
+ * Overage credits recorded in the current billing period.
45
+ */
46
+ credits: number;
47
+ /**
48
+ * This period's overage cost: ceil(credits / billingUnits) × unitAmountCents per recorded rate.
49
+ */
50
+ costCents: number;
51
+ unitAmountCents: number;
52
+ billingUnits: number;
53
+ /**
54
+ * Effective monthly overage cap. Null: no cap.
55
+ */
56
+ capCents: number | null;
57
+ /**
58
+ * customer: the customer's own cap; override: the customer's overage override; plan: the plan default; null: no cap.
59
+ */
60
+ capSource: CapSource | null;
61
+ remainingCents: number | null;
62
+ /**
63
+ * Where the overage rate comes from: the plan, or an override set with setCustomerOverageOverride.
64
+ */
65
+ source: Source;
66
+ /**
67
+ * The override behind the rate when source is override. Null otherwise.
68
+ */
69
+ override: CustomerOverageOverride | null;
70
+ periodStart: Date;
71
+ periodEnd: Date;
72
+ };
73
+
74
+ /** @internal */
75
+ export const CapSource$inboundSchema: z.ZodMiniType<CapSource, unknown> =
76
+ openEnums.inboundSchema(CapSource);
77
+
78
+ /** @internal */
79
+ export const Source$inboundSchema: z.ZodMiniType<Source, unknown> = openEnums
80
+ .inboundSchema(Source);
81
+
82
+ /** @internal */
83
+ export const CustomerOverage$inboundSchema: z.ZodMiniType<
84
+ CustomerOverage,
85
+ unknown
86
+ > = z.object({
87
+ credits: types.number(),
88
+ costCents: types.number(),
89
+ unitAmountCents: types.number(),
90
+ billingUnits: types.number(),
91
+ capCents: types.nullable(types.number()),
92
+ capSource: types.nullable(CapSource$inboundSchema),
93
+ remainingCents: types.nullable(types.number()),
94
+ source: Source$inboundSchema,
95
+ override: types.nullable(CustomerOverageOverride$inboundSchema),
96
+ periodStart: types.date(),
97
+ periodEnd: types.date(),
98
+ });
99
+
100
+ export function customerOverageFromJSON(
101
+ jsonString: string,
102
+ ): SafeParseResult<CustomerOverage, SDKValidationError> {
103
+ return safeParse(
104
+ jsonString,
105
+ (x) => CustomerOverage$inboundSchema.parse(JSON.parse(x)),
106
+ `Failed to parse 'CustomerOverage' from JSON`,
107
+ );
108
+ }
@@ -10,12 +10,14 @@ export type TrackErrorData = {
10
10
  error: string;
11
11
  availableCredits?: number | undefined;
12
12
  creditCost?: number | undefined;
13
+ overageRemainingCents?: number | null | undefined;
13
14
  };
14
15
 
15
16
  export class TrackError extends LedgerError {
16
17
  error: string;
17
18
  availableCredits?: number | undefined;
18
19
  creditCost?: number | undefined;
20
+ overageRemainingCents?: number | null | undefined;
19
21
 
20
22
  /** The original data that was passed to this error instance. */
21
23
  data$: TrackErrorData;
@@ -34,6 +36,9 @@ export class TrackError extends LedgerError {
34
36
  this.availableCredits = err.availableCredits;
35
37
  }
36
38
  if (err.creditCost != null) this.creditCost = err.creditCost;
39
+ if (err.overageRemainingCents != null) {
40
+ this.overageRemainingCents = err.overageRemainingCents;
41
+ }
37
42
 
38
43
  this.name = "TrackError";
39
44
  }
@@ -46,6 +51,7 @@ export const TrackError$inboundSchema: z.ZodMiniType<TrackError, unknown> = z
46
51
  error: types.string(),
47
52
  availableCredits: types.optional(types.number()),
48
53
  creditCost: types.optional(types.number()),
54
+ overageRemainingCents: z.optional(z.nullable(types.number())),
49
55
  request$: z.custom<Request>(x => x instanceof Request),
50
56
  response$: z.custom<Response>(x => x instanceof Response),
51
57
  body$: z.string(),
@@ -20,6 +20,10 @@ export * from "./create-customer-input.js";
20
20
  export * from "./create-feature-input.js";
21
21
  export * from "./create-plan-input.js";
22
22
  export * from "./customer-detail.js";
23
+ export * from "./customer-overage-cap.js";
24
+ export * from "./customer-overage-override-result.js";
25
+ export * from "./customer-overage-override.js";
26
+ export * from "./customer-overage.js";
23
27
  export * from "./customer-purchase-item.js";
24
28
  export * from "./customer-purchase-page.js";
25
29
  export * from "./customer-response.js";
@@ -38,6 +42,8 @@ export * from "./plan-item.js";
38
42
  export * from "./plan-list.js";
39
43
  export * from "./plan-mutation.js";
40
44
  export * from "./security.js";
45
+ export * from "./set-customer-overage-cap-input.js";
46
+ export * from "./set-customer-overage-override-input.js";
41
47
  export * from "./track-input.js";
42
48
  export * from "./track-response.js";
43
49
  export * from "./update-add-on-input.js";
@@ -11,6 +11,8 @@ export * from "./get-feature.js";
11
11
  export * from "./get-plan.js";
12
12
  export * from "./list-customer-purchases.js";
13
13
  export * from "./list-customer-subscriptions.js";
14
+ export * from "./set-customer-overage-cap.js";
15
+ export * from "./set-customer-overage-override.js";
14
16
  export * from "./set-subscription-cancellation.js";
15
17
  export * from "./update-add-on.js";
16
18
  export * from "./update-feature.js";
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import * as models from "../index.js";
7
+
8
+ export type SetCustomerOverageCapRequest = {
9
+ customerId: string;
10
+ body: models.SetCustomerOverageCapInput;
11
+ };
12
+
13
+ /** @internal */
14
+ export type SetCustomerOverageCapRequest$Outbound = {
15
+ customerId: string;
16
+ body: models.SetCustomerOverageCapInput$Outbound;
17
+ };
18
+
19
+ /** @internal */
20
+ export const SetCustomerOverageCapRequest$outboundSchema: z.ZodMiniType<
21
+ SetCustomerOverageCapRequest$Outbound,
22
+ SetCustomerOverageCapRequest
23
+ > = z.object({
24
+ customerId: z.string(),
25
+ body: models.SetCustomerOverageCapInput$outboundSchema,
26
+ });
27
+
28
+ export function setCustomerOverageCapRequestToJSON(
29
+ setCustomerOverageCapRequest: SetCustomerOverageCapRequest,
30
+ ): string {
31
+ return JSON.stringify(
32
+ SetCustomerOverageCapRequest$outboundSchema.parse(
33
+ setCustomerOverageCapRequest,
34
+ ),
35
+ );
36
+ }
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+ import * as models from "../index.js";
7
+
8
+ export type SetCustomerOverageOverrideRequest = {
9
+ customerId: string;
10
+ body: models.SetCustomerOverageOverrideInput;
11
+ };
12
+
13
+ /** @internal */
14
+ export type SetCustomerOverageOverrideRequest$Outbound = {
15
+ customerId: string;
16
+ body: models.SetCustomerOverageOverrideInput$Outbound;
17
+ };
18
+
19
+ /** @internal */
20
+ export const SetCustomerOverageOverrideRequest$outboundSchema: z.ZodMiniType<
21
+ SetCustomerOverageOverrideRequest$Outbound,
22
+ SetCustomerOverageOverrideRequest
23
+ > = z.object({
24
+ customerId: z.string(),
25
+ body: models.SetCustomerOverageOverrideInput$outboundSchema,
26
+ });
27
+
28
+ export function setCustomerOverageOverrideRequestToJSON(
29
+ setCustomerOverageOverrideRequest: SetCustomerOverageOverrideRequest,
30
+ ): string {
31
+ return JSON.stringify(
32
+ SetCustomerOverageOverrideRequest$outboundSchema.parse(
33
+ setCustomerOverageOverrideRequest,
34
+ ),
35
+ );
36
+ }
@@ -22,6 +22,18 @@ export type PlanItem = {
22
22
  name: string;
23
23
  monthlyCredits: number;
24
24
  monthlyPriceCents: number;
25
+ /**
26
+ * Price in cents per overageBillingUnits credits used after the plan's credits and packs run out. Null or omitted: no overage.
27
+ */
28
+ overageUnitAmountCents?: number | null | undefined;
29
+ /**
30
+ * Credits billed per overageUnitAmountCents. Defaults to 1.
31
+ */
32
+ overageBillingUnits?: number | undefined;
33
+ /**
34
+ * Default monthly overage spend cap in cents. A customer's own cap replaces it. Null or omitted: no cap.
35
+ */
36
+ overageCapCents?: number | null | undefined;
25
37
  stripeSyncStatus?: StripeSyncStatus | null | undefined;
26
38
  };
27
39
 
@@ -38,6 +50,9 @@ export const PlanItem$inboundSchema: z.ZodMiniType<PlanItem, unknown> = z
38
50
  name: types.string(),
39
51
  monthlyCredits: types.number(),
40
52
  monthlyPriceCents: types.number(),
53
+ overageUnitAmountCents: z.optional(z.nullable(types.number())),
54
+ overageBillingUnits: types.optional(types.number()),
55
+ overageCapCents: z.optional(z.nullable(types.number())),
41
56
  stripeSyncStatus: z.optional(z.nullable(StripeSyncStatus$inboundSchema)),
42
57
  });
43
58
 
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+
7
+ export type SetCustomerOverageCapInput = {
8
+ /**
9
+ * The customer's monthly overage cap in cents. It replaces the plan default, higher or lower. Null clears it and restores the plan default.
10
+ */
11
+ capCents: number | null;
12
+ };
13
+
14
+ /** @internal */
15
+ export type SetCustomerOverageCapInput$Outbound = {
16
+ capCents: number | null;
17
+ };
18
+
19
+ /** @internal */
20
+ export const SetCustomerOverageCapInput$outboundSchema: z.ZodMiniType<
21
+ SetCustomerOverageCapInput$Outbound,
22
+ SetCustomerOverageCapInput
23
+ > = z.object({
24
+ capCents: z.nullable(z.int()),
25
+ });
26
+
27
+ export function setCustomerOverageCapInputToJSON(
28
+ setCustomerOverageCapInput: SetCustomerOverageCapInput,
29
+ ): string {
30
+ return JSON.stringify(
31
+ SetCustomerOverageCapInput$outboundSchema.parse(setCustomerOverageCapInput),
32
+ );
33
+ }
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v4-mini";
6
+
7
+ export type SetCustomerOverageOverrideInput = {
8
+ /**
9
+ * The plan this override applies to. Omit or null to apply it to any plan; a plan-specific override beats one for any plan.
10
+ */
11
+ planId?: string | null | undefined;
12
+ /**
13
+ * Negotiated price in cents per billingUnits overage credits. Null clears the override for this planId and restores the plan rate.
14
+ */
15
+ unitAmountCents: number | null;
16
+ /**
17
+ * Credits billed per unitAmountCents. Defaults to 1. Omit when clearing.
18
+ */
19
+ billingUnits?: number | undefined;
20
+ /**
21
+ * Monthly overage cap in cents for this override. Omit or null to keep the plan default. The customer's own cap (setCustomerOverageCap) still wins. Omit when clearing.
22
+ */
23
+ capCents?: number | null | undefined;
24
+ };
25
+
26
+ /** @internal */
27
+ export type SetCustomerOverageOverrideInput$Outbound = {
28
+ planId?: string | null | undefined;
29
+ unitAmountCents: number | null;
30
+ billingUnits?: number | undefined;
31
+ capCents?: number | null | undefined;
32
+ };
33
+
34
+ /** @internal */
35
+ export const SetCustomerOverageOverrideInput$outboundSchema: z.ZodMiniType<
36
+ SetCustomerOverageOverrideInput$Outbound,
37
+ SetCustomerOverageOverrideInput
38
+ > = z.object({
39
+ planId: z.optional(z.nullable(z.string())),
40
+ unitAmountCents: z.nullable(z.int()),
41
+ billingUnits: z.optional(z.int()),
42
+ capCents: z.optional(z.nullable(z.int())),
43
+ });
44
+
45
+ export function setCustomerOverageOverrideInputToJSON(
46
+ setCustomerOverageOverrideInput: SetCustomerOverageOverrideInput,
47
+ ): string {
48
+ return JSON.stringify(
49
+ SetCustomerOverageOverrideInput$outboundSchema.parse(
50
+ setCustomerOverageOverrideInput,
51
+ ),
52
+ );
53
+ }
@@ -11,8 +11,19 @@ import { SDKValidationError } from "./errors/sdk-validation-error.js";
11
11
 
12
12
  export type TrackResponse = {
13
13
  allowed: true;
14
+ /**
15
+ * Prepaid credits left in plan and credit-pack grants. Overage never makes this negative.
16
+ */
14
17
  availableCredits: number;
15
18
  chargedCredits: number;
19
+ /**
20
+ * Overage credits recorded in the current billing period, including this request.
21
+ */
22
+ overageCredits: number;
23
+ /**
24
+ * Overage spend left under the effective cap this period. Null when there is no cap or no overage.
25
+ */
26
+ overageRemainingCents: number | null;
16
27
  requestId: string;
17
28
  idempotent: boolean;
18
29
  };
@@ -26,6 +37,8 @@ export const TrackResponse$inboundSchema: z.ZodMiniType<
26
37
  allowed: types.literal(true),
27
38
  availableCredits: types.number(),
28
39
  chargedCredits: types.number(),
40
+ overageCredits: types.number(),
41
+ overageRemainingCents: types.nullable(types.number()),
29
42
  request_id: types.string(),
30
43
  idempotent: types.boolean(),
31
44
  }),