diff --git a/.cursor/skills/mintlify b/.cursor/skills/mintlify
deleted file mode 120000
index 207cf1315..000000000
--- a/.cursor/skills/mintlify
+++ /dev/null
@@ -1 +0,0 @@
-../../.agents/skills/mintlify
\ No newline at end of file
diff --git a/apps/docs/mintlify/api-reference/balances/balancesCheck.mdx b/apps/docs/mintlify/api-reference/balances/balancesCheck.mdx
index fe88873e0..3abb519ae 100644
--- a/apps/docs/mintlify/api-reference/balances/balancesCheck.mdx
+++ b/apps/docs/mintlify/api-reference/balances/balancesCheck.mdx
@@ -50,8 +50,6 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
-
@@ -105,8 +103,6 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
-
diff --git a/apps/docs/mintlify/api-reference/balances/balancesTrack.mdx b/apps/docs/mintlify/api-reference/balances/balancesTrack.mdx
index 037611a46..099d394a1 100644
--- a/apps/docs/mintlify/api-reference/balances/balancesTrack.mdx
+++ b/apps/docs/mintlify/api-reference/balances/balancesTrack.mdx
@@ -56,8 +56,6 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
-
@@ -111,8 +109,6 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
-
diff --git a/apps/docs/mintlify/api-reference/billing/billingAttach.mdx b/apps/docs/mintlify/api-reference/billing/billingAttach.mdx
index b37877dae..6d11e8f17 100644
--- a/apps/docs/mintlify/api-reference/billing/billingAttach.mdx
+++ b/apps/docs/mintlify/api-reference/billing/billingAttach.mdx
@@ -29,7 +29,9 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
+
+ The version of the plan to attach.
+
@@ -43,6 +45,7 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
+ Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
@@ -130,9 +133,9 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
+
-
+
diff --git a/apps/docs/mintlify/api-reference/billing/billingPreviewAttach.mdx b/apps/docs/mintlify/api-reference/billing/billingPreviewAttach.mdx
index de84b7e4d..0149eaa1a 100644
--- a/apps/docs/mintlify/api-reference/billing/billingPreviewAttach.mdx
+++ b/apps/docs/mintlify/api-reference/billing/billingPreviewAttach.mdx
@@ -29,7 +29,9 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
+
+ The version of the plan to attach.
+
@@ -43,6 +45,7 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
+ Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
@@ -130,9 +133,9 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
+
-
+
@@ -175,14 +178,12 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
+
-
-
@@ -194,6 +195,8 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
+
+
@@ -205,15 +208,6 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
-
-
-
-
-
-
-
-
@@ -241,14 +235,12 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
+
-
-
@@ -260,6 +252,8 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
+
+
diff --git a/apps/docs/mintlify/api-reference/billing/billingPreviewUpdate.mdx b/apps/docs/mintlify/api-reference/billing/billingPreviewUpdate.mdx
index 67cf2180d..89a09ed4c 100644
--- a/apps/docs/mintlify/api-reference/billing/billingPreviewUpdate.mdx
+++ b/apps/docs/mintlify/api-reference/billing/billingPreviewUpdate.mdx
@@ -29,7 +29,9 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
+
+ The version of the plan to attach.
+
@@ -43,6 +45,7 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
+ Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
@@ -124,15 +127,15 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
+
-
+
-
+
@@ -167,14 +170,12 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
+
-
-
@@ -186,6 +187,8 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
+
+
@@ -197,15 +200,6 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
-
-
-
-
-
-
-
-
@@ -233,14 +227,12 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
+
-
-
@@ -252,6 +244,8 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
+
+
diff --git a/apps/docs/mintlify/api-reference/billing/billingUpdate.mdx b/apps/docs/mintlify/api-reference/billing/billingUpdate.mdx
index fdaac0e19..e1d1d5ca9 100644
--- a/apps/docs/mintlify/api-reference/billing/billingUpdate.mdx
+++ b/apps/docs/mintlify/api-reference/billing/billingUpdate.mdx
@@ -29,7 +29,9 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
+
+ The version of the plan to attach.
+
@@ -43,6 +45,7 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
+ Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
@@ -124,15 +127,15 @@ import { DynamicResponseExample } from "/components/dynamic-response-example.jsx
-
+
-
+
-
+
diff --git a/apps/docs/mintlify/api/openapi.yml b/apps/docs/mintlify/api/openapi.yml
index c6626f347..392189325 100644
--- a/apps/docs/mintlify/api/openapi.yml
+++ b/apps/docs/mintlify/api/openapi.yml
@@ -198,8 +198,6 @@ components:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -275,8 +273,6 @@ components:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -361,7 +357,6 @@ components:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -384,7 +379,6 @@ components:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -1246,8 +1240,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -1323,8 +1315,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -1408,7 +1398,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -1431,7 +1420,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -1696,8 +1684,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -1773,8 +1759,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -1859,7 +1843,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -1882,7 +1865,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -2113,6 +2095,7 @@ paths:
up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -2259,6 +2242,8 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the
+ plan, the items in the plan, or both.
plan_id:
type: string
invoice_mode:
@@ -2266,10 +2251,10 @@ paths:
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -2442,6 +2427,7 @@ paths:
up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -2588,6 +2574,8 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the
+ plan, the items in the plan, or both.
plan_id:
type: string
invoice_mode:
@@ -2595,10 +2583,10 @@ paths:
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -2677,14 +2665,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -2697,13 +2683,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
total:
type: number
currency:
@@ -2712,16 +2700,6 @@ paths:
type: number
period_end:
type: number
- credit:
- type: object
- properties:
- amount:
- type: number
- description:
- type: string
- required:
- - amount
- - description
next_cycle:
type: object
properties:
@@ -2756,14 +2734,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -2776,13 +2752,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
required:
- starts_at
- total
@@ -2813,8 +2791,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -2890,8 +2866,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -2975,7 +2949,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -2998,7 +2971,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -3041,8 +3013,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -3118,8 +3088,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -3203,7 +3171,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -3226,7 +3193,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -3333,6 +3299,7 @@ paths:
up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -3479,19 +3446,19 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the
+ plan, the items in the plan, or both.
plan_id:
- anyOf:
- - type: string
- - type: "null"
+ type: string
invoice_mode:
type: object
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -3633,6 +3600,7 @@ paths:
up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -3779,19 +3747,19 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the
+ plan, the items in the plan, or both.
plan_id:
- anyOf:
- - type: string
- - type: "null"
+ type: string
invoice_mode:
type: object
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -3844,14 +3812,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -3864,13 +3830,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
total:
type: number
currency:
@@ -3879,16 +3847,6 @@ paths:
type: number
period_end:
type: number
- credit:
- type: object
- properties:
- amount:
- type: number
- description:
- type: string
- required:
- - amount
- - description
next_cycle:
type: object
properties:
@@ -3923,14 +3881,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -3943,13 +3899,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
required:
- starts_at
- total
@@ -4326,8 +4284,6 @@ paths:
anyOf:
- type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -4403,8 +4359,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -4489,7 +4443,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -4512,7 +4465,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -4958,8 +4910,6 @@ paths:
anyOf:
- type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -5035,8 +4985,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -5121,7 +5069,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -5144,7 +5091,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -5161,8 +5107,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -5238,8 +5182,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -5324,7 +5266,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -5347,7 +5288,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
diff --git a/apps/sdk-test/components/ui/input.tsx b/apps/sdk-test/components/ui/input.tsx
index edb03d6b5..9da99bb6a 100644
--- a/apps/sdk-test/components/ui/input.tsx
+++ b/apps/sdk-test/components/ui/input.tsx
@@ -8,8 +8,8 @@ function Input({ className, type, ...props }: React.ComponentProps<"input">) {
type={type}
data-slot="input"
className={cn(
- "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-7 w-full min-w-0 rounded border bg-transparent px-2 py-0.5 text-sm shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-5 file:border-0 file:bg-transparent file:text-xs file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
- "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[2px]",
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-7 w-full min-w-0 rounded border border-zinc-200 bg-transparent px-2 py-0.5 text-sm shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-5 file:border-0 file:bg-transparent file:text-xs file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
+ "focus:outline-none focus-visible:border-zinc-400 focus-visible:ring-zinc-300/50 focus-visible:ring-[2px]",
"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
className,
)}
diff --git a/bun.lock b/bun.lock
index 2b2a7d20e..c3b3817db 100644
--- a/bun.lock
+++ b/bun.lock
@@ -127,6 +127,7 @@
"nodemon": "^3.1.10",
"react-dom": "^19.1.0",
"stripe": "^18.3.0",
+ "tsgo": "catalog:",
"tsup": "^8.4.0",
"tsx": "^4.19.3",
"typescript": "^5.8.3",
@@ -159,6 +160,7 @@
"devDependencies": {
"@types/bun": "latest",
"@types/node": "^24.0.3",
+ "tsgo": "catalog:",
},
"peerDependencies": {
"zod": "^3.25.23",
@@ -166,7 +168,7 @@
},
"packages/sdk": {
"name": "@useautumn/sdk",
- "version": "0.8.25",
+ "version": "0.8.26",
"dependencies": {
"zod": "^3.25.65 || ^4.0.0",
},
@@ -464,6 +466,7 @@
"drizzle-kit": "^0.31.1",
"drizzle-orm": "0.43.1",
"stripe": "19.3.0-beta.1",
+ "tsgo": "npm:@typescript/native-preview@7.0.0-dev.20260218.1",
},
"packages": {
"@ai-sdk/anthropic": ["@ai-sdk/anthropic@3.0.44", "", { "dependencies": { "@ai-sdk/provider": "3.0.8", "@ai-sdk/provider-utils": "4.0.15" }, "peerDependencies": { "zod": "^3.25.76 || ^4.1.8" } }, "sha512-ke1NldgohWJ7sWLqm9Um9TVIOrtg8Y8AecWeB6PgaLt+paTPisAsyNfe8FNOVusuv58ugLBqY/78AkhUmbjXHA=="],
@@ -2112,21 +2115,21 @@
"@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.55.0", "", { "dependencies": { "@typescript-eslint/types": "8.55.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA=="],
- "@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260216.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260216.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260216.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260216.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260216.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260216.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260216.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260216.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-Vhffqcro1Q3w1zRgZ0E1C5JOB+8CtwKjSsszYfpGkt0qvRtOBO227AcnQe1sEiX+VLZW3Iw1VGVMhc8hNhpRZw=="],
+ "@typescript/native-preview": ["@typescript/native-preview@7.0.0-dev.20260218.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260218.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260218.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260218.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260218.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260218.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260218.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260218.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-hbGRXBk7abFvOQJk/7mc8K9q1kPkiyziyUsS8r8Hc1sLxrDFUbGgsW9p8qg67Xe1K6NUv/9UU2cdeIitUDexIQ=="],
- "@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260216.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ZcxlhZ4Scm1LFKeGXo7V+B4H1Mb27/uVBO1o7d060jRIpGRuCOxsELo7jgUY8UhhTXtSpLECHsmAj8EyERSi9w=="],
+ "@typescript/native-preview-darwin-arm64": ["@typescript/native-preview-darwin-arm64@7.0.0-dev.20260218.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ybxez4ClJU12TUvX/IxGPIQfS26+Zia7kbB1L4RH+G8yzYg90RPt4njfJkU2WxP70Hp59zS2copPkaBz5gUJkQ=="],
- "@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260216.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-hY+hondi5/2m0rNSIgRkOfmA6FIx+KKnjPd9R6hHHumQu00XXoYA/xcIq3SyV1sXtowkhN+hR3ZUp1y3Orb84A=="],
+ "@typescript/native-preview-darwin-x64": ["@typescript/native-preview-darwin-x64@7.0.0-dev.20260218.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-n9Ki8WTW82w6PlBTlrAQAjEUQB2V7C2oXrkN5U7ElwUH4FOostSFzZHuAdnPMbdzMx76P0pEw9FteYrLDA4m9g=="],
- "@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260216.1", "", { "os": "linux", "cpu": "arm" }, "sha512-Q+HBF1rlwpV1Nh2AESwte0lEHNPYVvbRLPQzTrorvx3gvXdRzfO9tHa6JL8Y1BO2KmSZBKmT7U+0188icTPBSg=="],
+ "@typescript/native-preview-linux-arm": ["@typescript/native-preview-linux-arm@7.0.0-dev.20260218.1", "", { "os": "linux", "cpu": "arm" }, "sha512-WRPMvTztPatQ91UzYWSp82NT45JmjMgo/pVgZjXYEWdF2rwS4ejzR6DnHq30jXhEPnMah1bTeOzSWFF2kvXUmg=="],
- "@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260216.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-L+3CgBVAjpYnWgulmTWOTp7IdbLjgOzLpppr2597i79KE5MV7UyC73UCdvK3GtAl1Huiss0HsWVBBEYRkLQsfw=="],
+ "@typescript/native-preview-linux-arm64": ["@typescript/native-preview-linux-arm64@7.0.0-dev.20260218.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-Osus82LSlwi1l3LoxLWKDuxh5E8JyWwkseBjr2n+TMaTuDPcRSzT8Jr4ywIp3NJpCUUV/LzR84i64jA6g8iVIw=="],
- "@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260216.1", "", { "os": "linux", "cpu": "x64" }, "sha512-qIaQFRL2s+fi3zbS0+fCgR1Nk7fXMnbLW7wsFpcwn3fpEYuMdiQY9pwE8SvJsw2M78xZlXL5L9l5CL8ti0cNZQ=="],
+ "@typescript/native-preview-linux-x64": ["@typescript/native-preview-linux-x64@7.0.0-dev.20260218.1", "", { "os": "linux", "cpu": "x64" }, "sha512-jcDhKCvhWQyMbra4MiqSgyUoSdM9mAiSkIdc80qScpk03aZOU+BZEmHz51S+fEn+8KRWuMuIHXM3sG3oX/EJZA=="],
- "@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260216.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-Yu7OLyMng9A2GA0vlZ8WZuqAnI+WM55UaY1UwA03TJdcljk/AcEzb/99fEq5g0kPg3k2wwHiyMrCGxxu99+gXQ=="],
+ "@typescript/native-preview-win32-arm64": ["@typescript/native-preview-win32-arm64@7.0.0-dev.20260218.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-VmWvJ+TEuTPmZrhWe+buvvUvHbMyiD4ZLgxYPdYcJ3kRQlk2mD5lOq63ZISx1pDB8kYz5/R5xYKy/8gSIU5MgQ=="],
- "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260216.1", "", { "os": "win32", "cpu": "x64" }, "sha512-Lc+E1UNGKioOtKHUm1CLFO3W2PFWdLpJ6j2uB52RH0zhb63p4CEGCsuDH36QvgsXLibviExeNUF5Dum0rNKT9g=="],
+ "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20260218.1", "", { "os": "win32", "cpu": "x64" }, "sha512-9zfUrKV3xBog2tpIR9NZOags+QJZSj7v9Ek7KdSkVu978IJqF9RX7oa2xftX+eiHySfV5ZQ8r2fdhdbYBk+kMw=="],
"@typescript/vfs": ["@typescript/vfs@1.6.3", "", { "dependencies": { "debug": "^4.1.1" }, "peerDependencies": { "typescript": "*" } }, "sha512-8Qs6/Tj2B8Uyo4lYJkopdCtrsfpF/ZlbTXK13Nq6JKN+Ih8FF9Oxg97gEp+zIS96wmkMdWUIETl35Yt9BITeiw=="],
@@ -4496,6 +4499,8 @@
"tsconfig-paths": ["tsconfig-paths@4.2.0", "", { "dependencies": { "json5": "^2.2.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg=="],
+ "tsgo": ["@typescript/native-preview@7.0.0-dev.20260218.1", "", { "optionalDependencies": { "@typescript/native-preview-darwin-arm64": "7.0.0-dev.20260218.1", "@typescript/native-preview-darwin-x64": "7.0.0-dev.20260218.1", "@typescript/native-preview-linux-arm": "7.0.0-dev.20260218.1", "@typescript/native-preview-linux-arm64": "7.0.0-dev.20260218.1", "@typescript/native-preview-linux-x64": "7.0.0-dev.20260218.1", "@typescript/native-preview-win32-arm64": "7.0.0-dev.20260218.1", "@typescript/native-preview-win32-x64": "7.0.0-dev.20260218.1" }, "bin": { "tsgo": "bin/tsgo.js" } }, "sha512-hbGRXBk7abFvOQJk/7mc8K9q1kPkiyziyUsS8r8Hc1sLxrDFUbGgsW9p8qg67Xe1K6NUv/9UU2cdeIitUDexIQ=="],
+
"tshy": ["tshy@2.0.1", "", { "dependencies": { "chalk": "^5.3.0", "chokidar": "^3.6.0", "foreground-child": "^3.1.1", "minimatch": "^9.0.4", "mkdirp": "^3.0.1", "polite-json": "^5.0.0", "resolve-import": "^1.4.5", "rimraf": "^5.0.1", "sync-content": "^1.0.2", "typescript": "5", "walk-up-path": "^3.0.1" }, "bin": { "tshy": "dist/esm/index.js" } }, "sha512-U5fC+3pMaGfmULhPTVpxKMd62AcX13yfsFrjhAP/daTLG6LFRLIuxqYOmkejJ4MT/s5bEa29+1Jy/9mXkMiMfA=="],
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
diff --git a/others/python-sdk/.speakeasy/gen.lock b/others/python-sdk/.speakeasy/gen.lock
index f5870fb07..516cf9996 100644
--- a/others/python-sdk/.speakeasy/gen.lock
+++ b/others/python-sdk/.speakeasy/gen.lock
@@ -1,16 +1,16 @@
lockVersion: 2.0.0
id: 05940b80-1ef8-40f4-9878-822fb2792070
management:
- docChecksum: f3a09ba77181e589c11b4fb1c60c2d8d
+ docChecksum: ae28cba9f4a31ec39633cc683b159eab
docVersion: 2.1.0
speakeasyVersion: 1.719.0
generationVersion: 2.824.1
- releaseVersion: 0.2.21
- configChecksum: 98bfda50427c6359ae4dee8ebeab6610
+ releaseVersion: 0.2.22
+ configChecksum: 05fe4cc58f958fa21b320a1cbb0ec4d8
persistentEdits:
- generation_id: a0e2a2b7-7048-43dd-843d-a9ba47081d57
- pristine_commit_hash: 14f6dae62d081b42d7611555da2b561200f38fd0
- pristine_tree_hash: ac63345d483323e30fef57683de70dcc69f8d36c
+ generation_id: b8deb3e6-4376-4384-8fb8-d3742769316e
+ pristine_commit_hash: d81074b2463a2168ca16d2be775f9316dbcec5f0
+ pristine_tree_hash: b9f1e436d46ef67a51ccebe4176695d899ea2658
features:
python:
additionalDependencies: 1.0.0
@@ -49,12 +49,12 @@ trackedFiles:
pristine_git_object: d96fd08db8799cf32fd7d9fd6398e2741963a46d
docs/models/balances.md:
id: 2f042cf3d0aa
- last_write_checksum: sha1:244b54593114321470ba9ff928c5b1c969b10691
- pristine_git_object: 6dce2aacb5b4bdfe969d3153b5cc0a6313543078
+ last_write_checksum: sha1:5a7d31f7d88c3d6ca511e0ddd363a00aafd64921
+ pristine_git_object: dc522d990cda516e7fc7baa3cb5b6deffb27d23a
docs/models/balancescheckbalance.md:
id: 67cd143f2f2c
- last_write_checksum: sha1:df9c09e8a018685989140c6287e5c43a1a95c58d
- pristine_git_object: 7241a7ba90a3e1db602fd9afadef9249f5a5f013
+ last_write_checksum: sha1:d3428c3665ae643c3402bc4d489e66b58aee813b
+ pristine_git_object: 198922a7dbe47148c3d770bcd53a7b9c17b7f85b
docs/models/balancescheckbalancedisplay.md:
id: 9ccc33ac3d73
last_write_checksum: sha1:d5af38baace3f228c58c408599a57b4ca63a7f14
@@ -81,8 +81,8 @@ trackedFiles:
pristine_git_object: cacafefc749025661cd968f0ece01036198141fe
docs/models/balancescheckbreakdown.md:
id: b356123ea305
- last_write_checksum: sha1:0b401274b8f93aab81b006d5a079b47c5dac5d46
- pristine_git_object: e1112190b5f98c2d53383da1a30ce5e6fd9ca11a
+ last_write_checksum: sha1:19e00e3ae547b991bbcd4960c4ad32e83d40c6bc
+ pristine_git_object: 02feead42724bc5419411c2395f4e0558da731c4
docs/models/balancescheckcreditschema.md:
id: 2a3aac12bb13
last_write_checksum: sha1:42af6e104fb8d49e50bae327839dc8e5dafb09d5
@@ -165,16 +165,16 @@ trackedFiles:
pristine_git_object: 899743b48e88d217530425c2d13efa9254089097
docs/models/balancestrackbalance.md:
id: 84f1cb5b442b
- last_write_checksum: sha1:dea0e2e615ee12717a53ac2b3293e54cef1806da
- pristine_git_object: 5b61c1a997742c751fcb406585379271c47a40e3
+ last_write_checksum: sha1:b91ce5901ec09e733153b7a2baf2759f374926be
+ pristine_git_object: 5b98b79bc86bab83c651b3cbadb0abbb0fc455ab
docs/models/balancestrackbalancebillingmethod.md:
id: 52c99621e59c
last_write_checksum: sha1:193549bcad64b7b94c968160ae3499a90af67d2d
pristine_git_object: ac9a442ee21b36f79a3fdf83443a674824d10e27
docs/models/balancestrackbalancebreakdown.md:
id: 6adfe694fcc5
- last_write_checksum: sha1:839e14983e7a563d2bdf0dd89d8c74222f4b09d9
- pristine_git_object: 0d50fde666bb2e84d73c22b9e107b3311fa74ba1
+ last_write_checksum: sha1:28a9e2ca25b1cc62555e810d68d6ab64c33a70d9
+ pristine_git_object: df781a50c329dee96db3a056264c89fde99c5232
docs/models/balancestrackbalancecreditschema.md:
id: 68aad580e88d
last_write_checksum: sha1:1b7fcc2eab58f32c16928bb1f58c7e7f01b6f975
@@ -209,8 +209,8 @@ trackedFiles:
pristine_git_object: 9bbb8583eb72bc22ee30fde586c75970fd4a7c31
docs/models/balancestrackbalances.md:
id: 5154f97a33e4
- last_write_checksum: sha1:efcf5ab01df72f9c3937a9b1f0f323de9ca72eb8
- pristine_git_object: 3a39d82819a0be699b68e0977009b289f7a5d266
+ last_write_checksum: sha1:bd695cf140e2b4750dea2edfaec30e9c689d44d2
+ pristine_git_object: ead243f65b9a1a1d3153ebe509b0b269e2aa7d69
docs/models/balancestrackbalancetier.md:
id: c0a818ba961f
last_write_checksum: sha1:7cac695036039166f571beef7cc696da41e36bbd
@@ -229,8 +229,8 @@ trackedFiles:
pristine_git_object: f0836fdab98bbef00b977faea115a92f53d3eefe
docs/models/balancestrackbreakdown.md:
id: d20d3f5ff2ed
- last_write_checksum: sha1:ab5bbf7f35573adff70dcad594743ea488f7452f
- pristine_git_object: d06f9b05c9b74ae31c30a1b4bfac23d640c000ea
+ last_write_checksum: sha1:5af2320612691bacab63344f44f76b05b781e29a
+ pristine_git_object: 3e2417352e0478bbe8baf9e5d471e4c4fe2426fe
docs/models/balancestrackcreditschema.md:
id: 4e4ad0986fe1
last_write_checksum: sha1:e4d2c7ff3b9864887b63da551466de40f3bd7b28
@@ -317,8 +317,8 @@ trackedFiles:
pristine_git_object: 9c7a2e760e1781d0c9a1838fa0aea25ea05b11d9
docs/models/billingattachcustomize.md:
id: f0ed3bf58bf5
- last_write_checksum: sha1:6e30ec047be3bc5cc16e22b427e236fe05b8bb6f
- pristine_git_object: 2dd10e07301af9411ed2de0785e91e3b4dace253
+ last_write_checksum: sha1:830e81ca579c5bae1e63436fb86c86b5775d015a
+ pristine_git_object: 2507b52175f3604c468ce3a2bf20c28874a861c8
docs/models/billingattachdiscount1.md:
id: cfb5c217d943
last_write_checksum: sha1:7268ecaa9fe5f2eca7b0ecec0e054011a66dca29
@@ -357,8 +357,8 @@ trackedFiles:
pristine_git_object: 07a1b788d005bb60b15619a4bcb97bd547611d0b
docs/models/billingattachinvoicemode.md:
id: 32474930a784
- last_write_checksum: sha1:a0e1198a50f927343f2af15bbe4984997e7cd006
- pristine_git_object: 532213842d321efcb790a0698eab8c53b5f18b01
+ last_write_checksum: sha1:48dcbb59cce9effcffd12f7d42b052d347f92b5d
+ pristine_git_object: 0b75ef8b013ffea53ac190da8c1c5cba7897f9ab
docs/models/billingattachitem.md:
id: d843385ee259
last_write_checksum: sha1:c137dd6c71a0736bfc0f5529a62dc70b0062267d
@@ -401,8 +401,8 @@ trackedFiles:
pristine_git_object: 68d694191aea597dd44e36f2712507d5362e8594
docs/models/billingattachrequest.md:
id: a887baeabd1e
- last_write_checksum: sha1:968b1577e39ae63e2eb5d179e0020a64d9ed4556
- pristine_git_object: f566bafd33db1a30bd3189814fb79f6185686473
+ last_write_checksum: sha1:d4ac203685d6c2ea2716c2a3988346b3367a967b
+ pristine_git_object: 8d69dbc298a471d0ac3f99340fa3be6da410594d
docs/models/billingattachrequiredaction.md:
id: 0f167f88f79b
last_write_checksum: sha1:de010cc362b545eaf8f63e26134a3c3735400ad6
@@ -439,14 +439,10 @@ trackedFiles:
id: 60e0707f7cba
last_write_checksum: sha1:f8a6c2d93674d7fd2dd120e0219ca2227ca53f5a
pristine_git_object: 2e87268eb495cd1cac5b996c2872243cacc78348
- docs/models/billingpreviewattachcredit.md:
- id: fc066345c336
- last_write_checksum: sha1:ada9e7cbec62ecce47079539b4a3023062035455
- pristine_git_object: b65afddf343f539eaa3f20a4e720a5e9b5121035
docs/models/billingpreviewattachcustomize.md:
id: 51206fe14863
- last_write_checksum: sha1:45db3744b59b1d3b60a02d122a3a9c46e4453bca
- pristine_git_object: 4a36d4258d441c5e671b6767455e84a49bb0d089
+ last_write_checksum: sha1:38012b6ef4d9dd43e5222f52ef4c909557cfdc91
+ pristine_git_object: 1de1e485af4fdda5f7319f418d6ed981d845aa32
docs/models/billingpreviewattachcustomizereset.md:
id: e3109799f638
last_write_checksum: sha1:1a19c258618776c3a8f1de6b5634b9aa9bba0b48
@@ -493,8 +489,8 @@ trackedFiles:
pristine_git_object: 53bf1dc4dd5b27b61f6bacca3312be2055222c1f
docs/models/billingpreviewattachinvoicemode.md:
id: b4c7b46188b8
- last_write_checksum: sha1:146089a7d2b0745bdb96de1d89b34c88a0d8b735
- pristine_git_object: aaa160846b1f099fc77ef3c1040d88de75ad33ac
+ last_write_checksum: sha1:a7ae35c1aa18f276c5fbcb72ab7b19ee372ae484
+ pristine_git_object: f902b8353d3b72be1c29ebf26e7788261ab520a0
docs/models/billingpreviewattachitem.md:
id: a90206919bca
last_write_checksum: sha1:ad70b97a01bad0196867416c7785d22ab352c5b3
@@ -513,8 +509,8 @@ trackedFiles:
pristine_git_object: 9d1304b37997d83326f892c92184d74e7a63656b
docs/models/billingpreviewattachlineitem.md:
id: b5e92ac7c452
- last_write_checksum: sha1:0b3b6d497a6ed22ebba43cd096c194daba07d213
- pristine_git_object: 242c995c084c123a201afe13bbb7ae8c2d9ca3fb
+ last_write_checksum: sha1:d32ae6786aa9f101e42c4f49f68dfee6699cb79f
+ pristine_git_object: aa563a5ea965c626b000724f53636b99beba008d
docs/models/billingpreviewattachnextcycle.md:
id: fe0c0a59ea2a
last_write_checksum: sha1:a8b00097ac5a03d8c24e342d815b22a84418852b
@@ -529,8 +525,8 @@ trackedFiles:
pristine_git_object: 774b61b32d5488ea73afe408f51685c9f60b71b7
docs/models/billingpreviewattachnextcyclelineitem.md:
id: 331ffe23e389
- last_write_checksum: sha1:963d242f5e3fa80e8bc27aff952844ad7b02a695
- pristine_git_object: 7a4f8de6d5323d405bc7b597511e5308b5fa95ce
+ last_write_checksum: sha1:c4a5a0a0fac6ed182a1c48c846ca3b1bf0ae4dcb
+ pristine_git_object: 21ec8c900ae66175e3f6add701afa3259eb69d4f
docs/models/billingpreviewattachondecrease.md:
id: c362810a3dad
last_write_checksum: sha1:1bfdd3d1d821433b717e187fc00e92abc3478d27
@@ -561,12 +557,12 @@ trackedFiles:
pristine_git_object: 54804abca51856a7f4684ed3543e8bfcd539ef8f
docs/models/billingpreviewattachrequest.md:
id: 1f2dd61b026f
- last_write_checksum: sha1:21b4ce49b6e1eae414eaa3af1e19e1967764ccbf
- pristine_git_object: 211d7ef6b2b9ce5bbbe6d5c3c8c00c7ade5089a5
+ last_write_checksum: sha1:90959db0e2b0198aa1a9c667363cfd3f3da3a20e
+ pristine_git_object: a27c3cb0d7af9b74af5a1f5b781ea2795c0bbd23
docs/models/billingpreviewattachresponse.md:
id: 4e4b9c7363c4
- last_write_checksum: sha1:8537feb4b77d43732c6b7ee463ff1a118cd9f71a
- pristine_git_object: 9fd753e8214c6e8af18037f0e11d4201b8e241b9
+ last_write_checksum: sha1:a02ca69bd7ff0b70b84d488d5fbf381bf140141e
+ pristine_git_object: 96a1ad2e7cfdb102f04539d20d004ea85418e86c
docs/models/billingpreviewattachrolloverrequest.md:
id: 23a0742b9b4c
last_write_checksum: sha1:6ccf67b51d45d1bf8f264f8646f01391e7d5f98f
@@ -591,14 +587,10 @@ trackedFiles:
id: 70cd01032cad
last_write_checksum: sha1:a9c144de8f1aebbe5b00eb366fb9606d2fa98dc1
pristine_git_object: 3afae72aef451432e7c78bb7c7394535d105ea59
- docs/models/billingpreviewupdatecredit.md:
- id: 7ab8cd6d875d
- last_write_checksum: sha1:43d3f81e48a9a1a87f59f342f57d524b572a52fe
- pristine_git_object: 1baabcf3e2c36748b7bc9739992b9f77b532f26b
docs/models/billingpreviewupdatecustomize.md:
id: 6d0760a5097f
- last_write_checksum: sha1:0237f641fa431c786cc5c54dcf4165736766443a
- pristine_git_object: d8a42657463381ec429bbab8a9bdc1b0e5c62180
+ last_write_checksum: sha1:c44b48a0cf71372a490a1289341275959086ba1a
+ pristine_git_object: bef2b01e8218636bd5e22e9fa705ee467b632031
docs/models/billingpreviewupdatediscount.md:
id: 366af5958b3c
last_write_checksum: sha1:d72aac7de5460d788f6592fd05ea50a8c69072c0
@@ -629,8 +621,8 @@ trackedFiles:
pristine_git_object: 8c960b0a555ca51cbfef7929d756690983131d62
docs/models/billingpreviewupdateinvoicemode.md:
id: 8779c7cb4c43
- last_write_checksum: sha1:b245397930ecb9ba2c4e23959a2a3cc6833b4182
- pristine_git_object: 8f4fe0700715939a615564573856cb95ebbe74ea
+ last_write_checksum: sha1:8062f1fd396255054e348cc1e4719083a86778c8
+ pristine_git_object: bc1702520861ab67328dcc6143529b02b3d4fb7b
docs/models/billingpreviewupdateitem.md:
id: 5924aa9c88dc
last_write_checksum: sha1:5ed80781e674fbab34e3e45d15457822c40baa3a
@@ -645,8 +637,8 @@ trackedFiles:
pristine_git_object: 0b3f4d8ea8b513c5855c8255244d70b2e783fa29
docs/models/billingpreviewupdatelineitem.md:
id: d07a69e933f5
- last_write_checksum: sha1:6361805c7e3f5dd694eb3de42dffebd884216af2
- pristine_git_object: 4874c0e9fea419717224a384ffa3eef97f56c6f8
+ last_write_checksum: sha1:764b22ba15c8d1db1dd24dfbceffba2a017ee0c4
+ pristine_git_object: 7c3eb9d1b16aab8d9e98eb96660d407456448e40
docs/models/billingpreviewupdatenextcycle.md:
id: 34f560241cd2
last_write_checksum: sha1:03ae47ebdcba09a991155370933c12aab90ade0c
@@ -661,8 +653,8 @@ trackedFiles:
pristine_git_object: c76c451730c3b989eb6ef98e13042b35363556d7
docs/models/billingpreviewupdatenextcyclelineitem.md:
id: 7df0f82636fb
- last_write_checksum: sha1:ac5c38985e284ecfd73f2e19a8111722c3f39185
- pristine_git_object: af40ee4b677f362960d9bb9029f733717e153400
+ last_write_checksum: sha1:7d4dbea698de24e8478a2438a0e580831c59172a
+ pristine_git_object: 810e17cab2def3c45d8b545b5967c97368d6ca24
docs/models/billingpreviewupdateondecrease.md:
id: 469f4619189e
last_write_checksum: sha1:7b80d5b4ec4b87117f4c5bdd5cf83bc1b81e16f9
@@ -685,8 +677,8 @@ trackedFiles:
pristine_git_object: 334f3ff9f6f77723acdad330a8e843354f470750
docs/models/billingpreviewupdaterequest.md:
id: 28274cd59bdb
- last_write_checksum: sha1:4ea708918695c3083580963aeb4d9cf2ceb4cd71
- pristine_git_object: be2f97e9bb3599187ccf4f3b32422592fb2d1819
+ last_write_checksum: sha1:a10c8cca9441f7d548f2e50ef0802817137a2952
+ pristine_git_object: e4399ce1fa4ff6a7b4bd7429f2a1e4267e62a5bf
docs/models/billingpreviewupdatereset.md:
id: 3b716976e1ad
last_write_checksum: sha1:7d88dfbeb9a2251ebf6c97a1fd4bef63f652fb04
@@ -697,8 +689,8 @@ trackedFiles:
pristine_git_object: 9311e90cdec0d2e80f825dcafad6a2cd9d36ff4d
docs/models/billingpreviewupdateresponse.md:
id: 4efe11aea734
- last_write_checksum: sha1:a240c273bd64734dc11478044db7756b29d2471b
- pristine_git_object: 9774572b4228a0dbe49f3b2c57d0050c670de60a
+ last_write_checksum: sha1:86091f438a902677c6db3b6dc56ca166392f396a
+ pristine_git_object: 8c8203a5decdc06a11132aa508b624a237dbe296
docs/models/billingpreviewupdaterollover.md:
id: 708d0be263fb
last_write_checksum: sha1:bd277854e2cde4630c1a4f32f8a5548fafa94882
@@ -741,8 +733,8 @@ trackedFiles:
pristine_git_object: 7d9a46a3e399d8e1c6be359bcfc5bfa76cccf5ed
docs/models/billingupdatecustomize.md:
id: 72b14fed6d26
- last_write_checksum: sha1:879313ff2e2924e9d5045a563546ccc72421d271
- pristine_git_object: bb00a9ce581b31b7e19513855d57d94751379fd5
+ last_write_checksum: sha1:591a140a3569291925c40bc799bc7a663b987ff6
+ pristine_git_object: 285e2a150969c9d4851f4c9acda6ad4acc313dd4
docs/models/billingupdatedurationtype.md:
id: fd1bfb929148
last_write_checksum: sha1:8ec9d61b93a2d43e2c0a92d6443e3549a4b1b255
@@ -769,8 +761,8 @@ trackedFiles:
pristine_git_object: a45dfb5d006af051350c98dea8bde07edf2b162a
docs/models/billingupdateinvoicemode.md:
id: fef42e5dba71
- last_write_checksum: sha1:383ca322b5fad669b9adb4b1c637ebcf78097e6e
- pristine_git_object: 4acb6cb4fbf81cff4434fb190f81cb6c2d052c36
+ last_write_checksum: sha1:bcb962cc3baf764b6eacfa107f6344e84d8a7b55
+ pristine_git_object: 47fb7c47ee28c33e28299c0cc74f0aefea61954c
docs/models/billingupdateitem.md:
id: 349869ec6344
last_write_checksum: sha1:3e73a7ce1b0a2d2dbef2d12afe0adf03dff08cf1
@@ -805,8 +797,8 @@ trackedFiles:
pristine_git_object: 11dce03528cff9a27a669b273f946187ca261dc9
docs/models/billingupdaterequest.md:
id: 1737b2debc78
- last_write_checksum: sha1:e6d52b73b3f76f2b43014ed57e41e91f2ff31bb0
- pristine_git_object: 35c8e0404b11d395027d7525afbe8706a596edbe
+ last_write_checksum: sha1:d35b1b24957cf844bb611caf5b243e31d6f92b22
+ pristine_git_object: 1840eb3fafe0dfb0573fd3f105b494c917ff0b01
docs/models/billingupdaterequiredaction.md:
id: 3f84a7bd8718
last_write_checksum: sha1:6b31a5534f5b48cc6e14775212e818f884642519
@@ -837,8 +829,8 @@ trackedFiles:
pristine_git_object: 1d40f1e0e3af491b7e67142f4d46d7e6bd68377d
docs/models/breakdown.md:
id: 786823ab8ff0
- last_write_checksum: sha1:d3882c7e03d87b2787b6f8209b4df7987a9b6aef
- pristine_git_object: ce26b9772c7d67f69ca846796d34dafdee523407
+ last_write_checksum: sha1:401b60b08fad424e843346063c2b66bcea20b64e
+ pristine_git_object: 849ebfe99854b2a88f8bf16004af1b22fcaf665f
docs/models/config.md:
id: bef254bf823c
last_write_checksum: sha1:5ed7380a4cbf25fc7ad0d51326330b3d7e57ce91
@@ -977,16 +969,16 @@ trackedFiles:
pristine_git_object: 9486f06c25d9bb9934c8af2aa9a57112eabc27da
docs/models/incomingbalances.md:
id: 114d575c3450
- last_write_checksum: sha1:26c82384a11b5d80f8ec9d59a42e47fc5467bd71
- pristine_git_object: ff067809af4d09a480538ff252db91e4331cd806
+ last_write_checksum: sha1:2aff9a53876680e96e530686971efcc8034879cd
+ pristine_git_object: 063c002b3e70637caf65a8770e5b61e402ff7f08
docs/models/incomingbillingmethod.md:
id: 6efbce7dcaec
last_write_checksum: sha1:dfedb0e25d88780eca9d2d377e1ab45308a529eb
pristine_git_object: 625b2ea8ee3779af82d04f730a35bb6594e56aa2
docs/models/incomingbreakdown.md:
id: 41169dd758b2
- last_write_checksum: sha1:d62077ccfa2a975999040d8a9662a97b9f9cda79
- pristine_git_object: 38b9cdf6aaf1fc3cdcd0b1f1997353233815c7c9
+ last_write_checksum: sha1:fe1124b2ba2a1111ee42dae9d286ab26400a2e9d
+ pristine_git_object: 164b60da4e5fa3746849eca962053700ddfd0603
docs/models/incomingcreditschema.md:
id: b2346aec35f4
last_write_checksum: sha1:71dc6727d4d8561d8e61cb012f08fc6878e65913
@@ -1049,16 +1041,16 @@ trackedFiles:
pristine_git_object: 46f65fabed9a5a852350d4bce4f036f73fab0438
docs/models/listcustomersbalances.md:
id: 03c5aa088096
- last_write_checksum: sha1:066b825211eea6022f4b79a4b516ded25a096874
- pristine_git_object: 65979d0524713dccfee655fab32ee390fde80a5a
+ last_write_checksum: sha1:3da2493ee865dcc582bde8a3400fe381ab66d67d
+ pristine_git_object: 47ea1470231462f55c8236110fe1ccb66fe17fcb
docs/models/listcustomersbillingmethod.md:
id: d21be11d928d
last_write_checksum: sha1:8dd920c7dfc528a02a386676e20da2f476fdc354
pristine_git_object: d394f3fcb0d5f139d5ab0060b077fa005ee4a13b
docs/models/listcustomersbreakdown.md:
id: 93bc1cdb1e37
- last_write_checksum: sha1:ab96e61139c6be2acd40cf9bde4d6f21d7684544
- pristine_git_object: fdff270cc1772ddf46004ad89489d62b3e947c2f
+ last_write_checksum: sha1:a25602ec22af2f2938b78a50bb00ef0dcd9b9a7d
+ pristine_git_object: b41b3d4339e2a75a0ec8058b0aa9ab06d74bbc1c
docs/models/listcustomerscreditschema.md:
id: 233b13b5c3ec
last_write_checksum: sha1:df3fc7455a099da412abdc9ff85f021b1de749ec
@@ -1161,16 +1153,16 @@ trackedFiles:
pristine_git_object: 907e050584d9f3b0f7c762487a6b0173860a9d4c
docs/models/outgoingbalances.md:
id: db8d37650c6d
- last_write_checksum: sha1:8d79c5a8427ea7acd77e63a5ac041625a6dec4cb
- pristine_git_object: 57a678b2aae2470c2bd8f4b1bbcd10d102eb1224
+ last_write_checksum: sha1:c53cce12e8819e6b23568d48414e601d2b7f6ac1
+ pristine_git_object: 67b05200a6e8f80f4d28f7a73d1ccb22fd285093
docs/models/outgoingbillingmethod.md:
id: a33118a126b5
last_write_checksum: sha1:7918f2c6e81dce24bbd937d1a7c2315260e8927b
pristine_git_object: 0b62751cf559e85ffab0ede512890d8aee330ad4
docs/models/outgoingbreakdown.md:
id: ad7069a9c33b
- last_write_checksum: sha1:24534d46467b215f9bfb41184a79d14f80cda671
- pristine_git_object: 57b8ded3897c17e3d4a786d17203b3fa22c4bc96
+ last_write_checksum: sha1:5e9854cbc79ee134b19ba3c30636f3c082e97db3
+ pristine_git_object: 835417699951819fd14e9af7029e3c393080d8a8
docs/models/outgoingcreditschema.md:
id: 1fde0b5cbf3d
last_write_checksum: sha1:641c8dc19d0ed31f0c81c69702c1b212cda09051
@@ -1381,16 +1373,16 @@ trackedFiles:
pristine_git_object: 8eba6942218e21e379f0886cbcba182ceffed7b1
docs/models/updatecustomerbalances.md:
id: 7f44136e5175
- last_write_checksum: sha1:a799586ec851ff4e33a18544d12315963ecc1345
- pristine_git_object: 5fa25c01d8d8c2f9b73b69e2723ca78808308a69
+ last_write_checksum: sha1:696b17d9bcd4d1d65d8f41f2561ec021cfb8a4bf
+ pristine_git_object: 273486f9eb4b226358403ffb268329d5fbc4e490
docs/models/updatecustomerbillingmethod.md:
id: b251b4090471
last_write_checksum: sha1:70e36e639090894ce5504b8c055b2962eaae9cef
pristine_git_object: 175ceae8f0d83ab07d5bae5ac485566024ad8dc9
docs/models/updatecustomerbreakdown.md:
id: 2f3a2d8f745a
- last_write_checksum: sha1:6346a6eb0c71948fc0219b008fe2a59f0f51fe98
- pristine_git_object: afede3e125298d0db129328bca917ea07969355d
+ last_write_checksum: sha1:c2627d2fcfe7de7de50035c345212162658c9331
+ pristine_git_object: 0a5f6661217832605789fa1f1011f3eab80a1631
docs/models/updatecustomercreditschema.md:
id: 9ed2810c66f9
last_write_checksum: sha1:874cea697b072edd41ebe61d3435422261c5025c
@@ -1477,8 +1469,8 @@ trackedFiles:
pristine_git_object: 367d6f7e6677473533e5ec84423c6b92bb191627
docs/sdks/billing/README.md:
id: dc915331dd9d
- last_write_checksum: sha1:ad7be2fe86436bba649fe20e151aaf15aafeffc7
- pristine_git_object: e69c28ed48b942404acddb07180bfecd8777d697
+ last_write_checksum: sha1:e3669a666eb87cb510f80973d756454cb5124433
+ pristine_git_object: a611692843021852aef4456cd2781bf13ca2320b
docs/sdks/customers/README.md:
id: 9332759cffc2
last_write_checksum: sha1:13ccde8e19cf24ebf4afdac645940c09a642d652
@@ -1497,8 +1489,8 @@ trackedFiles:
pristine_git_object: f13c2fb5532a06cfe87f594097bfbf72e8fc04a1
pyproject.toml:
id: 5d07e7d72637
- last_write_checksum: sha1:9cba7bb05155616adec572985d89b6a2245c2b2c
- pristine_git_object: 682c3d9a50255af0901168007f392b51f4e6358a
+ last_write_checksum: sha1:1e1204524034eb1c9c0cbb4327c4ac5ad156a8e4
+ pristine_git_object: 38ecae9bb9c9bd37af5c19d7f6869e1a672f86bc
scripts/publish.sh:
id: fe273b08f514
last_write_checksum: sha1:adc9b741c12ad1591ab4870eabe20f0d0a86cd1a
@@ -1521,8 +1513,8 @@ trackedFiles:
pristine_git_object: 3e604651c1eae73d815b276806e73b2f1334bb79
src/autumn_sdk/_version.py:
id: a98babfdf4fc
- last_write_checksum: sha1:0c8f81369be30c079cce0a72939c7306d1d10eed
- pristine_git_object: b94bce67355e946b53f5631970fc14b5bf613cb1
+ last_write_checksum: sha1:956be51e7b757519eedbeb2ff25e3d59b24c8a18
+ pristine_git_object: 6e51775a922b9d5cdbd3cf7c928df326748a5255
src/autumn_sdk/balances_sdk.py:
id: a24aee6f517f
last_write_checksum: sha1:991efc1f4a5675c7c69983dc539b419fee18895b
@@ -1533,8 +1525,8 @@ trackedFiles:
pristine_git_object: b8da96bd89ddafaedb32f4ecac64c27027fcca79
src/autumn_sdk/billing.py:
id: e6cffdbf2221
- last_write_checksum: sha1:a68b26fa814cfaf68bbf4e39dcb532cfbce1108d
- pristine_git_object: 926c58fa64495822e97c30226e4c4f08078001df
+ last_write_checksum: sha1:38548fcf0aa8327a013b62eb7af52f92e3ebe3f0
+ pristine_git_object: 1c2d8ce6f2bf9fe297f8247803a63e442ac07cc8
src/autumn_sdk/customers.py:
id: 5c5a0a07a433
last_write_checksum: sha1:d34a9c1215e7685f15ef88c049e707d9c47163e7
@@ -1565,48 +1557,48 @@ trackedFiles:
pristine_git_object: 89560b566073785535643e694c112bedbd3db13d
src/autumn_sdk/models/__init__.py:
id: bcf3802243ff
- last_write_checksum: sha1:18ea39d276552c70265a5930d4324e8db63e1881
- pristine_git_object: c28ee8b40157951aea458fbb989b2848ba88eefb
+ last_write_checksum: sha1:db5e90a5656586b67697c5372dc42301bae6791c
+ pristine_git_object: ef0446c2af1fb073acd7d9dbded6b04bfad1d0dd
src/autumn_sdk/models/balancescheckop.py:
id: 27ed9e0d5743
- last_write_checksum: sha1:c1be992ef26ab0e4b95a787cce9767c196995825
- pristine_git_object: e808efe8da6b8ad7ea1ebe77601b3f6d116db1a1
+ last_write_checksum: sha1:f76c84c4592ee5bee854d2d31ac55b589c54d86c
+ pristine_git_object: 3a48eb8b3bda977baaf9afa42abc969e736d649a
src/autumn_sdk/models/balancescreateop.py:
id: 8509fb57571f
last_write_checksum: sha1:406d57f4df7fb4eba2a7c8f906cf64ff0b31eb2c
pristine_git_object: cfec2c9f9d44dbefea6defe63e38060da77c8f3a
src/autumn_sdk/models/balancestrackop.py:
id: 625fc102f754
- last_write_checksum: sha1:d25c8efbc9bf228ea6b005f463434a060897159e
- pristine_git_object: d374b65370644bee32573f0b6682a6bce728e5fa
+ last_write_checksum: sha1:e9cee0c262ea63eb9d18a01c233a0d028ef1af1f
+ pristine_git_object: 84737f2b49c04c2a5f8e353cc8b7985071c22ddb
src/autumn_sdk/models/balancesupdateop.py:
id: ee8c7b782105
last_write_checksum: sha1:ae0bd050783e21c60d12ef799df2419f1377943f
pristine_git_object: 10c472b900d590fb9e9606b88470080d1603e0b8
src/autumn_sdk/models/billingattachop.py:
id: a3c4907bef48
- last_write_checksum: sha1:0c87df8b7eec18839393cbf24c6efbde1ce4864a
- pristine_git_object: 587061c46c7fac15baff73281a6a7560ae41ee1c
+ last_write_checksum: sha1:4dbcb3d447f8a10d00939fe1f2d25a66e43b4f11
+ pristine_git_object: aba5fb54b2bff0e09635ccc907cfa5dc2fe83020
src/autumn_sdk/models/billingpreviewattachop.py:
id: 14515cbff2fc
- last_write_checksum: sha1:c154b342b09009a365c48270fd9eee3ca4d540af
- pristine_git_object: 254f25ecf03264c1fc45f26416fd82598fff44d8
+ last_write_checksum: sha1:af2411f945bbc8c50bbd80c697859b2ed8b7fb6a
+ pristine_git_object: f20d47336ce4656e50cceb847ae313cce23f6845
src/autumn_sdk/models/billingpreviewupdateop.py:
id: 6a2eed94753c
- last_write_checksum: sha1:d3151065dfc6be079ba5dc26c487fd872b0a60bc
- pristine_git_object: 377d54b1320f607daf25b27a723b2db9881f1d32
+ last_write_checksum: sha1:1e15bd6e2ac1bdeb2b395e23ae67aade89acdb80
+ pristine_git_object: bf3fa23cdd78a550f2659718bc3ae8bdd1b02236
src/autumn_sdk/models/billingsetuppaymentop.py:
id: 7d8176dc1930
last_write_checksum: sha1:8c2b325016fd7853cb927fec39103eda60be9dd3
pristine_git_object: a9b4b8fb0c61cd28d65d6cc3d816498666374a76
src/autumn_sdk/models/billingupdateop.py:
id: a2f17c75cfd3
- last_write_checksum: sha1:05a3f21f9df3ce256a6ef4b9d039802492dea63c
- pristine_git_object: cf29ffebe8189e774265c516f14c0ca65b11a1cf
+ last_write_checksum: sha1:ded13980e77ae9dfe7dbd80186e74636c98dbfd9
+ pristine_git_object: 04c0e11b2d5eab19b1588fe69dcb6259fbd21d57
src/autumn_sdk/models/customer.py:
id: 8ed0174f7272
- last_write_checksum: sha1:f2917ed4ebd6f8339a83bba13bc516d77dc63321
- pristine_git_object: dfdbb48a387861c50120db0d0669fa3fa1c5b48d
+ last_write_checksum: sha1:cd7f48270a61401129aae29732d82a9756ca577e
+ pristine_git_object: 91ead7f8055ef16c5ab02c2af75812a29c791747
src/autumn_sdk/models/customerdata.py:
id: 9d88118f2123
last_write_checksum: sha1:d056db70a7859d2f55a16c961035578f0aa95c06
@@ -1633,8 +1625,8 @@ trackedFiles:
pristine_git_object: e6ef4341edccbf10916d0f08d7f2717c65c5f8ee
src/autumn_sdk/models/listcustomersop.py:
id: d7074740b8b0
- last_write_checksum: sha1:3b8c9793979eb8f0601a5507cd43fdbd2feaeb9c
- pristine_git_object: 6ea1333bdd0e6596b931f8b596b329a9533a316c
+ last_write_checksum: sha1:c160f55fb72cad9b7aee32728dff44f9184ebd94
+ pristine_git_object: 7be0ab37eb525c710505120585dc57199a164277
src/autumn_sdk/models/listplansop.py:
id: fdf892c403f4
last_write_checksum: sha1:d478ba4edd01b7a9b6871eb072e8df7718263202
@@ -1649,8 +1641,8 @@ trackedFiles:
pristine_git_object: aa686dd6f85ae1e27450392fcfe02527adfe8e61
src/autumn_sdk/models/updatecustomerop.py:
id: 28b9d5b59bae
- last_write_checksum: sha1:76eeccc4d0dc86e6f2d9241aaef0b918e424c7a2
- pristine_git_object: b6325b3809ffce91f4d90214f7384b155b916eec
+ last_write_checksum: sha1:022834e9c5108ba7d729b458f0ac20f8101e784e
+ pristine_git_object: b501c3f8b48871b8ff4206911abb63d720704656
src/autumn_sdk/plans.py:
id: cf1ebabb687c
last_write_checksum: sha1:73164e47a6348eff5882dee9e65092e6687a18e8
@@ -1781,7 +1773,7 @@ examples:
application/json: {"customer_id": "cus_123", "name": "John Doe", "email": "john@example.com"}
responses:
"200":
- application/json: {"id": "cus_123", "name": "John Doe", "email": "john@example.com", "created_at": 1717000000, "fingerprint": "1234567890", "stripe_id": "cus_123", "env": "sandbox", "metadata": {}, "send_email_receipts": false, "subscriptions": [{"plan_id": "plan_123", "auto_enable": false, "add_on": false, "status": "active", "past_due": false, "canceled_at": 1395.23, "expires_at": 455.92, "trial_ends_at": 875.56, "started_at": 3418.9, "current_period_start": 8321.34, "current_period_end": null, "quantity": 1}], "purchases": [], "balances": {"balance_1": {"object": "balance", "feature_id": "", "granted": 8589.77, "remaining": 2642.5, "usage": 145.7, "unlimited": true, "overage_allowed": false, "max_purchase": 8214.93, "next_reset_at": 5618.81}}}
+ application/json: {"id": "cus_123", "name": "John Doe", "email": "john@example.com", "created_at": 1717000000, "fingerprint": "1234567890", "stripe_id": "cus_123", "env": "sandbox", "metadata": {}, "send_email_receipts": false, "subscriptions": [{"plan_id": "plan_123", "auto_enable": false, "add_on": false, "status": "active", "past_due": false, "canceled_at": 1395.23, "expires_at": 455.92, "trial_ends_at": 875.56, "started_at": 3418.9, "current_period_start": 8321.34, "current_period_end": null, "quantity": 1}], "purchases": [], "balances": {"balance_1": {"feature_id": "", "granted": 8589.77, "remaining": 2642.5, "usage": 145.7, "unlimited": true, "overage_allowed": false, "max_purchase": 8214.93, "next_reset_at": 5618.81}}}
listCustomers:
speakeasy-default-list-customers:
parameters:
@@ -1801,7 +1793,7 @@ examples:
application/json: {"customer_id": "cus_123", "name": "Jane Doe", "email": "jane@example.com"}
responses:
"200":
- application/json: {"id": "cus_123", "name": "John Doe", "email": "john@example.com", "created_at": 1717000000, "fingerprint": "1234567890", "stripe_id": "cus_123", "env": "sandbox", "metadata": {}, "send_email_receipts": true, "subscriptions": [{"plan_id": "plan_123", "auto_enable": true, "add_on": true, "status": "active", "past_due": true, "canceled_at": 8303.59, "expires_at": 2755.88, "trial_ends_at": 1461.02, "started_at": 1649.05, "current_period_start": 8034.1, "current_period_end": 8058.66, "quantity": 1}], "purchases": [], "balances": {"balance_1": {"object": "balance", "feature_id": "", "granted": 7559.37, "remaining": 952.25, "usage": 7029.24, "unlimited": true, "overage_allowed": true, "max_purchase": 7619.46, "next_reset_at": 411.76}}}
+ application/json: {"id": "cus_123", "name": "John Doe", "email": "john@example.com", "created_at": 1717000000, "fingerprint": "1234567890", "stripe_id": "cus_123", "env": "sandbox", "metadata": {}, "send_email_receipts": true, "subscriptions": [{"plan_id": "plan_123", "auto_enable": true, "add_on": true, "status": "active", "past_due": true, "canceled_at": 8303.59, "expires_at": 2755.88, "trial_ends_at": 1461.02, "started_at": 1649.05, "current_period_start": 8034.1, "current_period_end": 8058.66, "quantity": 1}], "purchases": [], "balances": {"balance_1": {"feature_id": "", "granted": 7559.37, "remaining": 952.25, "usage": 7029.24, "unlimited": true, "overage_allowed": true, "max_purchase": 7619.46, "next_reset_at": 411.76}}}
deleteCustomer:
speakeasy-default-delete-customer:
parameters:
@@ -1831,7 +1823,7 @@ examples:
application/json: {"customer_id": "", "plan_id": "", "redirect_mode": "always"}
responses:
"200":
- application/json: {"customer_id": "", "line_items": [{"title": "", "description": "at usually sunbathe how forenenst", "amount": 7882.21, "total_quantity": 6544.84, "paid_quantity": 1520.59, "plan_id": ""}], "total": 6124.21, "currency": "Venezuelan bolÃvar", "incoming": [{"plan": {"id": "", "name": "", "description": null, "group": "", "version": 8678.59, "add_on": true, "auto_enable": true, "price": {"amount": 794.59, "interval": "week"}, "items": [{"feature_id": "", "included": 2063.68, "unlimited": true, "reset": {"interval": "hour"}, "price": {"interval": "month", "billing_units": 2123.59, "billing_method": "usage_based", "max_purchase": 9099.32}}], "created_at": 7665.78, "env": "live", "archived": true, "base_variant_id": null}, "feature_quantities": [{"feature_id": "", "quantity": 4464.31}], "balances": {}}], "outgoing": [], "redirect_type": "autumn_checkout"}
+ application/json: {"customer_id": "", "line_items": [{"title": "", "description": "at usually sunbathe how forenenst", "amount": 7882.21, "plan_id": "", "total_quantity": 6544.84, "paid_quantity": 1520.59}], "total": 6124.21, "currency": "Venezuelan bolÃvar", "incoming": [{"plan": {"id": "", "name": "", "description": null, "group": "", "version": 8678.59, "add_on": true, "auto_enable": true, "price": {"amount": 794.59, "interval": "week"}, "items": [{"feature_id": "", "included": 2063.68, "unlimited": true, "reset": {"interval": "hour"}, "price": {"interval": "month", "billing_units": 2123.59, "billing_method": "usage_based", "max_purchase": 9099.32}}], "created_at": 7665.78, "env": "live", "archived": true, "base_variant_id": null}, "feature_quantities": [{"feature_id": "", "quantity": 4464.31}], "balances": {}}], "outgoing": [], "redirect_type": "autumn_checkout"}
billingUpdate:
speakeasy-default-billing-update:
parameters:
@@ -1851,7 +1843,7 @@ examples:
application/json: {"customer_id": ""}
responses:
"200":
- application/json: {"customer_id": "", "line_items": [{"title": "", "description": "across at yet biodegradable wing retention between quash", "amount": 8095.76, "total_quantity": 5397.71, "paid_quantity": 3590.49, "plan_id": ""}], "total": 7497.66, "currency": "Peso Uruguayo"}
+ application/json: {"customer_id": "", "line_items": [{"title": "", "description": "across at yet biodegradable wing retention between quash", "amount": 8095.76, "plan_id": "", "total_quantity": 5397.71, "paid_quantity": 3590.49}], "total": 7497.66, "currency": "Peso Uruguayo"}
billingSetupPayment:
speakeasy-default-billing-setup-payment:
parameters:
@@ -1891,7 +1883,7 @@ examples:
application/json: {"customer_id": ""}
responses:
"200":
- application/json: {"allowed": true, "customer_id": "", "balance": {"object": "balance", "feature_id": "", "granted": 7002.31, "remaining": 9536.21, "usage": 3270.65, "unlimited": false, "overage_allowed": true, "max_purchase": 8252.55, "next_reset_at": 9394.31}}
+ application/json: {"allowed": true, "customer_id": "", "balance": {"feature_id": "", "granted": 7002.31, "remaining": 9536.21, "usage": 3270.65, "unlimited": false, "overage_allowed": true, "max_purchase": 8252.55, "next_reset_at": 9394.31}}
balancesTrack:
speakeasy-default-balances-track:
parameters:
@@ -1901,7 +1893,7 @@ examples:
application/json: {"customer_id": ""}
responses:
"200":
- application/json: {"customer_id": "", "value": 3371.48, "balance": {"object": "balance", "feature_id": "", "granted": 4457.97, "remaining": 7901.2, "usage": 9728.03, "unlimited": false, "overage_allowed": false, "max_purchase": null, "next_reset_at": 9011.85}}
+ application/json: {"customer_id": "", "value": 3371.48, "balance": {"feature_id": "", "granted": 4457.97, "remaining": 7901.2, "usage": 9728.03, "unlimited": false, "overage_allowed": false, "max_purchase": null, "next_reset_at": 9011.85}}
listPlans:
speakeasy-default-list-plans:
parameters:
diff --git a/others/python-sdk/.speakeasy/gen.yaml b/others/python-sdk/.speakeasy/gen.yaml
index 556817a63..a0c54b510 100644
--- a/others/python-sdk/.speakeasy/gen.yaml
+++ b/others/python-sdk/.speakeasy/gen.yaml
@@ -30,7 +30,7 @@ generation:
generateNewTests: true
skipResponseBodyAssertions: false
python:
- version: 0.2.21
+ version: 0.2.22
additionalDependencies:
dev: {}
main: {}
diff --git a/others/python-sdk/docs/models/balances.md b/others/python-sdk/docs/models/balances.md
index 6dce2aacb..dc522d990 100644
--- a/others/python-sdk/docs/models/balances.md
+++ b/others/python-sdk/docs/models/balances.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- |
-| `object` | *Literal["balance"]* | :heavy_check_mark: | N/A |
| `feature_id` | *str* | :heavy_check_mark: | N/A |
| `feature` | [Optional[models.CustomerFeature]](../models/customerfeature.md) | :heavy_minus_sign: | N/A |
| `granted` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/balancescheckbalance.md b/others/python-sdk/docs/models/balancescheckbalance.md
index 7241a7ba9..198922a7d 100644
--- a/others/python-sdk/docs/models/balancescheckbalance.md
+++ b/others/python-sdk/docs/models/balancescheckbalance.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
-| `object` | *Literal["balance"]* | :heavy_check_mark: | N/A |
| `feature_id` | *str* | :heavy_check_mark: | N/A |
| `feature` | [Optional[models.BalancesCheckFeature]](../models/balancescheckfeature.md) | :heavy_minus_sign: | N/A |
| `granted` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/balancescheckbreakdown.md b/others/python-sdk/docs/models/balancescheckbreakdown.md
index e1112190b..02feead42 100644
--- a/others/python-sdk/docs/models/balancescheckbreakdown.md
+++ b/others/python-sdk/docs/models/balancescheckbreakdown.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
-| `object` | *Literal["balance_breakdown"]* | :heavy_check_mark: | N/A |
| `id` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `plan_id` | *Nullable[str]* | :heavy_check_mark: | N/A |
| `included_grant` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/balancestrackbalance.md b/others/python-sdk/docs/models/balancestrackbalance.md
index 5b61c1a99..5b98b79bc 100644
--- a/others/python-sdk/docs/models/balancestrackbalance.md
+++ b/others/python-sdk/docs/models/balancestrackbalance.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
-| `object` | *Literal["balance"]* | :heavy_check_mark: | N/A |
| `feature_id` | *str* | :heavy_check_mark: | N/A |
| `feature` | [Optional[models.BalancesTrackBalanceFeature]](../models/balancestrackbalancefeature.md) | :heavy_minus_sign: | N/A |
| `granted` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/balancestrackbalancebreakdown.md b/others/python-sdk/docs/models/balancestrackbalancebreakdown.md
index 0d50fde66..df781a50c 100644
--- a/others/python-sdk/docs/models/balancestrackbalancebreakdown.md
+++ b/others/python-sdk/docs/models/balancestrackbalancebreakdown.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
-| `object` | *Literal["balance_breakdown"]* | :heavy_check_mark: | N/A |
| `id` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `plan_id` | *Nullable[str]* | :heavy_check_mark: | N/A |
| `included_grant` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/balancestrackbalances.md b/others/python-sdk/docs/models/balancestrackbalances.md
index 3a39d8281..ead243f65 100644
--- a/others/python-sdk/docs/models/balancestrackbalances.md
+++ b/others/python-sdk/docs/models/balancestrackbalances.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
-| `object` | *Literal["balance"]* | :heavy_check_mark: | N/A |
| `feature_id` | *str* | :heavy_check_mark: | N/A |
| `feature` | [Optional[models.BalancesTrackFeature]](../models/balancestrackfeature.md) | :heavy_minus_sign: | N/A |
| `granted` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/balancestrackbreakdown.md b/others/python-sdk/docs/models/balancestrackbreakdown.md
index d06f9b05c..3e2417352 100644
--- a/others/python-sdk/docs/models/balancestrackbreakdown.md
+++ b/others/python-sdk/docs/models/balancestrackbreakdown.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
-| `object` | *Literal["balance_breakdown"]* | :heavy_check_mark: | N/A |
| `id` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `plan_id` | *Nullable[str]* | :heavy_check_mark: | N/A |
| `included_grant` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/billingattachcustomize.md b/others/python-sdk/docs/models/billingattachcustomize.md
index 2dd10e073..2507b5217 100644
--- a/others/python-sdk/docs/models/billingattachcustomize.md
+++ b/others/python-sdk/docs/models/billingattachcustomize.md
@@ -1,5 +1,7 @@
# BillingAttachCustomize
+Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+
## Fields
diff --git a/others/python-sdk/docs/models/billingattachinvoicemode.md b/others/python-sdk/docs/models/billingattachinvoicemode.md
index 532213842..0b75ef8b0 100644
--- a/others/python-sdk/docs/models/billingattachinvoicemode.md
+++ b/others/python-sdk/docs/models/billingattachinvoicemode.md
@@ -3,8 +3,8 @@
## Fields
-| Field | Type | Required | Description |
-| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
-| `enabled` | *bool* | :heavy_check_mark: | N/A |
-| `enable_product_immediately` | *Optional[bool]* | :heavy_minus_sign: | N/A |
-| `finalize_invoice` | *Optional[bool]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ------------------------- | ------------------------- | ------------------------- | ------------------------- |
+| `enabled` | *bool* | :heavy_check_mark: | N/A |
+| `enable_plan_immediately` | *Optional[bool]* | :heavy_minus_sign: | N/A |
+| `finalize` | *Optional[bool]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/billingattachrequest.md b/others/python-sdk/docs/models/billingattachrequest.md
index f566bafd3..8d69dbc29 100644
--- a/others/python-sdk/docs/models/billingattachrequest.md
+++ b/others/python-sdk/docs/models/billingattachrequest.md
@@ -8,9 +8,9 @@
| `customer_id` | *str* | :heavy_check_mark: | The ID of the customer to attach the plan to. |
| `entity_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the entity to attach the plan to. |
| `feature_quantities` | List[[models.BillingAttachFeatureQuantities](../models/billingattachfeaturequantities.md)] | :heavy_minus_sign: | If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. |
-| `version` | *Optional[float]* | :heavy_minus_sign: | N/A |
+| `version` | *Optional[float]* | :heavy_minus_sign: | The version of the plan to attach. |
| `free_trial` | [OptionalNullable[models.BillingAttachFreeTrial]](../models/billingattachfreetrial.md) | :heavy_minus_sign: | N/A |
-| `customize` | [Optional[models.BillingAttachCustomize]](../models/billingattachcustomize.md) | :heavy_minus_sign: | N/A |
+| `customize` | [Optional[models.BillingAttachCustomize]](../models/billingattachcustomize.md) | :heavy_minus_sign: | Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. |
| `plan_id` | *str* | :heavy_check_mark: | N/A |
| `invoice_mode` | [Optional[models.BillingAttachInvoiceMode]](../models/billingattachinvoicemode.md) | :heavy_minus_sign: | N/A |
| `discounts` | List[[models.BillingAttachDiscountUnion](../models/billingattachdiscountunion.md)] | :heavy_minus_sign: | N/A |
diff --git a/others/python-sdk/docs/models/billingpreviewattachcredit.md b/others/python-sdk/docs/models/billingpreviewattachcredit.md
deleted file mode 100644
index b65afddf3..000000000
--- a/others/python-sdk/docs/models/billingpreviewattachcredit.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# BillingPreviewAttachCredit
-
-
-## Fields
-
-| Field | Type | Required | Description |
-| ------------------ | ------------------ | ------------------ | ------------------ |
-| `amount` | *float* | :heavy_check_mark: | N/A |
-| `description` | *str* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/billingpreviewattachcustomize.md b/others/python-sdk/docs/models/billingpreviewattachcustomize.md
index 4a36d4258..1de1e485a 100644
--- a/others/python-sdk/docs/models/billingpreviewattachcustomize.md
+++ b/others/python-sdk/docs/models/billingpreviewattachcustomize.md
@@ -1,5 +1,7 @@
# BillingPreviewAttachCustomize
+Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+
## Fields
diff --git a/others/python-sdk/docs/models/billingpreviewattachinvoicemode.md b/others/python-sdk/docs/models/billingpreviewattachinvoicemode.md
index aaa160846..f902b8353 100644
--- a/others/python-sdk/docs/models/billingpreviewattachinvoicemode.md
+++ b/others/python-sdk/docs/models/billingpreviewattachinvoicemode.md
@@ -3,8 +3,8 @@
## Fields
-| Field | Type | Required | Description |
-| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
-| `enabled` | *bool* | :heavy_check_mark: | N/A |
-| `enable_product_immediately` | *Optional[bool]* | :heavy_minus_sign: | N/A |
-| `finalize_invoice` | *Optional[bool]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ------------------------- | ------------------------- | ------------------------- | ------------------------- |
+| `enabled` | *bool* | :heavy_check_mark: | N/A |
+| `enable_plan_immediately` | *Optional[bool]* | :heavy_minus_sign: | N/A |
+| `finalize` | *Optional[bool]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/billingpreviewattachlineitem.md b/others/python-sdk/docs/models/billingpreviewattachlineitem.md
index 242c995c0..aa563a5ea 100644
--- a/others/python-sdk/docs/models/billingpreviewattachlineitem.md
+++ b/others/python-sdk/docs/models/billingpreviewattachlineitem.md
@@ -9,9 +9,9 @@
| `description` | *str* | :heavy_check_mark: | N/A |
| `amount` | *float* | :heavy_check_mark: | N/A |
| `discounts` | List[[models.BillingPreviewAttachDiscountResponse](../models/billingpreviewattachdiscountresponse.md)] | :heavy_minus_sign: | N/A |
-| `is_base` | *Optional[bool]* | :heavy_minus_sign: | N/A |
+| `plan_id` | *str* | :heavy_check_mark: | N/A |
| `total_quantity` | *float* | :heavy_check_mark: | N/A |
| `paid_quantity` | *float* | :heavy_check_mark: | N/A |
-| `plan_id` | *str* | :heavy_check_mark: | N/A |
| `deferred_for_trial` | *Optional[bool]* | :heavy_minus_sign: | N/A |
-| `effective_period` | [Optional[models.BillingPreviewAttachEffectivePeriod]](../models/billingpreviewattacheffectiveperiod.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| `effective_period` | [Optional[models.BillingPreviewAttachEffectivePeriod]](../models/billingpreviewattacheffectiveperiod.md) | :heavy_minus_sign: | N/A |
+| `is_base` | *Optional[bool]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/billingpreviewattachnextcyclelineitem.md b/others/python-sdk/docs/models/billingpreviewattachnextcyclelineitem.md
index 7a4f8de6d..21ec8c900 100644
--- a/others/python-sdk/docs/models/billingpreviewattachnextcyclelineitem.md
+++ b/others/python-sdk/docs/models/billingpreviewattachnextcyclelineitem.md
@@ -9,9 +9,9 @@
| `description` | *str* | :heavy_check_mark: | N/A |
| `amount` | *float* | :heavy_check_mark: | N/A |
| `discounts` | List[[models.BillingPreviewAttachNextCycleDiscount](../models/billingpreviewattachnextcyclediscount.md)] | :heavy_minus_sign: | N/A |
-| `is_base` | *Optional[bool]* | :heavy_minus_sign: | N/A |
+| `plan_id` | *str* | :heavy_check_mark: | N/A |
| `total_quantity` | *float* | :heavy_check_mark: | N/A |
| `paid_quantity` | *float* | :heavy_check_mark: | N/A |
-| `plan_id` | *str* | :heavy_check_mark: | N/A |
| `deferred_for_trial` | *Optional[bool]* | :heavy_minus_sign: | N/A |
-| `effective_period` | [Optional[models.BillingPreviewAttachNextCycleEffectivePeriod]](../models/billingpreviewattachnextcycleeffectiveperiod.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| `effective_period` | [Optional[models.BillingPreviewAttachNextCycleEffectivePeriod]](../models/billingpreviewattachnextcycleeffectiveperiod.md) | :heavy_minus_sign: | N/A |
+| `is_base` | *Optional[bool]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/billingpreviewattachrequest.md b/others/python-sdk/docs/models/billingpreviewattachrequest.md
index 211d7ef6b..a27c3cb0d 100644
--- a/others/python-sdk/docs/models/billingpreviewattachrequest.md
+++ b/others/python-sdk/docs/models/billingpreviewattachrequest.md
@@ -8,9 +8,9 @@
| `customer_id` | *str* | :heavy_check_mark: | The ID of the customer to attach the plan to. |
| `entity_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the entity to attach the plan to. |
| `feature_quantities` | List[[models.BillingPreviewAttachFeatureQuantities](../models/billingpreviewattachfeaturequantities.md)] | :heavy_minus_sign: | If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. |
-| `version` | *Optional[float]* | :heavy_minus_sign: | N/A |
+| `version` | *Optional[float]* | :heavy_minus_sign: | The version of the plan to attach. |
| `free_trial` | [OptionalNullable[models.BillingPreviewAttachFreeTrial]](../models/billingpreviewattachfreetrial.md) | :heavy_minus_sign: | N/A |
-| `customize` | [Optional[models.BillingPreviewAttachCustomize]](../models/billingpreviewattachcustomize.md) | :heavy_minus_sign: | N/A |
+| `customize` | [Optional[models.BillingPreviewAttachCustomize]](../models/billingpreviewattachcustomize.md) | :heavy_minus_sign: | Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. |
| `plan_id` | *str* | :heavy_check_mark: | N/A |
| `invoice_mode` | [Optional[models.BillingPreviewAttachInvoiceMode]](../models/billingpreviewattachinvoicemode.md) | :heavy_minus_sign: | N/A |
| `discounts` | List[[models.BillingPreviewAttachDiscountUnion](../models/billingpreviewattachdiscountunion.md)] | :heavy_minus_sign: | N/A |
diff --git a/others/python-sdk/docs/models/billingpreviewattachresponse.md b/others/python-sdk/docs/models/billingpreviewattachresponse.md
index 9fd753e82..96a1ad2e7 100644
--- a/others/python-sdk/docs/models/billingpreviewattachresponse.md
+++ b/others/python-sdk/docs/models/billingpreviewattachresponse.md
@@ -13,7 +13,6 @@ OK
| `currency` | *str* | :heavy_check_mark: | N/A |
| `period_start` | *Optional[float]* | :heavy_minus_sign: | N/A |
| `period_end` | *Optional[float]* | :heavy_minus_sign: | N/A |
-| `credit` | [Optional[models.BillingPreviewAttachCredit]](../models/billingpreviewattachcredit.md) | :heavy_minus_sign: | N/A |
| `next_cycle` | [Optional[models.BillingPreviewAttachNextCycle]](../models/billingpreviewattachnextcycle.md) | :heavy_minus_sign: | N/A |
| `incoming` | List[[models.Incoming](../models/incoming.md)] | :heavy_check_mark: | N/A |
| `outgoing` | List[[models.Outgoing](../models/outgoing.md)] | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/billingpreviewupdatecredit.md b/others/python-sdk/docs/models/billingpreviewupdatecredit.md
deleted file mode 100644
index 1baabcf3e..000000000
--- a/others/python-sdk/docs/models/billingpreviewupdatecredit.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# BillingPreviewUpdateCredit
-
-
-## Fields
-
-| Field | Type | Required | Description |
-| ------------------ | ------------------ | ------------------ | ------------------ |
-| `amount` | *float* | :heavy_check_mark: | N/A |
-| `description` | *str* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/billingpreviewupdatecustomize.md b/others/python-sdk/docs/models/billingpreviewupdatecustomize.md
index d8a426574..bef2b01e8 100644
--- a/others/python-sdk/docs/models/billingpreviewupdatecustomize.md
+++ b/others/python-sdk/docs/models/billingpreviewupdatecustomize.md
@@ -1,5 +1,7 @@
# BillingPreviewUpdateCustomize
+Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+
## Fields
diff --git a/others/python-sdk/docs/models/billingpreviewupdateinvoicemode.md b/others/python-sdk/docs/models/billingpreviewupdateinvoicemode.md
index 8f4fe0700..bc1702520 100644
--- a/others/python-sdk/docs/models/billingpreviewupdateinvoicemode.md
+++ b/others/python-sdk/docs/models/billingpreviewupdateinvoicemode.md
@@ -3,8 +3,8 @@
## Fields
-| Field | Type | Required | Description |
-| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
-| `enabled` | *bool* | :heavy_check_mark: | N/A |
-| `enable_product_immediately` | *Optional[bool]* | :heavy_minus_sign: | N/A |
-| `finalize_invoice` | *Optional[bool]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ------------------------- | ------------------------- | ------------------------- | ------------------------- |
+| `enabled` | *bool* | :heavy_check_mark: | N/A |
+| `enable_plan_immediately` | *Optional[bool]* | :heavy_minus_sign: | N/A |
+| `finalize` | *Optional[bool]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/billingpreviewupdatelineitem.md b/others/python-sdk/docs/models/billingpreviewupdatelineitem.md
index 4874c0e9f..7c3eb9d1b 100644
--- a/others/python-sdk/docs/models/billingpreviewupdatelineitem.md
+++ b/others/python-sdk/docs/models/billingpreviewupdatelineitem.md
@@ -9,9 +9,9 @@
| `description` | *str* | :heavy_check_mark: | N/A |
| `amount` | *float* | :heavy_check_mark: | N/A |
| `discounts` | List[[models.BillingPreviewUpdateDiscount](../models/billingpreviewupdatediscount.md)] | :heavy_minus_sign: | N/A |
-| `is_base` | *Optional[bool]* | :heavy_minus_sign: | N/A |
+| `plan_id` | *str* | :heavy_check_mark: | N/A |
| `total_quantity` | *float* | :heavy_check_mark: | N/A |
| `paid_quantity` | *float* | :heavy_check_mark: | N/A |
-| `plan_id` | *str* | :heavy_check_mark: | N/A |
| `deferred_for_trial` | *Optional[bool]* | :heavy_minus_sign: | N/A |
-| `effective_period` | [Optional[models.BillingPreviewUpdateEffectivePeriod]](../models/billingpreviewupdateeffectiveperiod.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| `effective_period` | [Optional[models.BillingPreviewUpdateEffectivePeriod]](../models/billingpreviewupdateeffectiveperiod.md) | :heavy_minus_sign: | N/A |
+| `is_base` | *Optional[bool]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/billingpreviewupdatenextcyclelineitem.md b/others/python-sdk/docs/models/billingpreviewupdatenextcyclelineitem.md
index af40ee4b6..810e17cab 100644
--- a/others/python-sdk/docs/models/billingpreviewupdatenextcyclelineitem.md
+++ b/others/python-sdk/docs/models/billingpreviewupdatenextcyclelineitem.md
@@ -9,9 +9,9 @@
| `description` | *str* | :heavy_check_mark: | N/A |
| `amount` | *float* | :heavy_check_mark: | N/A |
| `discounts` | List[[models.BillingPreviewUpdateNextCycleDiscount](../models/billingpreviewupdatenextcyclediscount.md)] | :heavy_minus_sign: | N/A |
-| `is_base` | *Optional[bool]* | :heavy_minus_sign: | N/A |
+| `plan_id` | *str* | :heavy_check_mark: | N/A |
| `total_quantity` | *float* | :heavy_check_mark: | N/A |
| `paid_quantity` | *float* | :heavy_check_mark: | N/A |
-| `plan_id` | *str* | :heavy_check_mark: | N/A |
| `deferred_for_trial` | *Optional[bool]* | :heavy_minus_sign: | N/A |
-| `effective_period` | [Optional[models.BillingPreviewUpdateNextCycleEffectivePeriod]](../models/billingpreviewupdatenextcycleeffectiveperiod.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| `effective_period` | [Optional[models.BillingPreviewUpdateNextCycleEffectivePeriod]](../models/billingpreviewupdatenextcycleeffectiveperiod.md) | :heavy_minus_sign: | N/A |
+| `is_base` | *Optional[bool]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/billingpreviewupdaterequest.md b/others/python-sdk/docs/models/billingpreviewupdaterequest.md
index be2f97e9b..e4399ce1f 100644
--- a/others/python-sdk/docs/models/billingpreviewupdaterequest.md
+++ b/others/python-sdk/docs/models/billingpreviewupdaterequest.md
@@ -8,10 +8,10 @@
| `customer_id` | *str* | :heavy_check_mark: | The ID of the customer to attach the plan to. |
| `entity_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the entity to attach the plan to. |
| `feature_quantities` | List[[models.BillingPreviewUpdateFeatureQuantities](../models/billingpreviewupdatefeaturequantities.md)] | :heavy_minus_sign: | If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. |
-| `version` | *Optional[float]* | :heavy_minus_sign: | N/A |
+| `version` | *Optional[float]* | :heavy_minus_sign: | The version of the plan to attach. |
| `free_trial` | [OptionalNullable[models.BillingPreviewUpdateFreeTrial]](../models/billingpreviewupdatefreetrial.md) | :heavy_minus_sign: | N/A |
-| `customize` | [Optional[models.BillingPreviewUpdateCustomize]](../models/billingpreviewupdatecustomize.md) | :heavy_minus_sign: | N/A |
-| `plan_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A |
+| `customize` | [Optional[models.BillingPreviewUpdateCustomize]](../models/billingpreviewupdatecustomize.md) | :heavy_minus_sign: | Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. |
+| `plan_id` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `invoice_mode` | [Optional[models.BillingPreviewUpdateInvoiceMode]](../models/billingpreviewupdateinvoicemode.md) | :heavy_minus_sign: | N/A |
| `cancel_action` | [Optional[models.BillingPreviewUpdateCancelAction]](../models/billingpreviewupdatecancelaction.md) | :heavy_minus_sign: | N/A |
| `billing_behavior` | [Optional[models.BillingPreviewUpdateBillingBehavior]](../models/billingpreviewupdatebillingbehavior.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/billingpreviewupdateresponse.md b/others/python-sdk/docs/models/billingpreviewupdateresponse.md
index 9774572b4..8c8203a5d 100644
--- a/others/python-sdk/docs/models/billingpreviewupdateresponse.md
+++ b/others/python-sdk/docs/models/billingpreviewupdateresponse.md
@@ -13,5 +13,4 @@ OK
| `currency` | *str* | :heavy_check_mark: | N/A |
| `period_start` | *Optional[float]* | :heavy_minus_sign: | N/A |
| `period_end` | *Optional[float]* | :heavy_minus_sign: | N/A |
-| `credit` | [Optional[models.BillingPreviewUpdateCredit]](../models/billingpreviewupdatecredit.md) | :heavy_minus_sign: | N/A |
| `next_cycle` | [Optional[models.BillingPreviewUpdateNextCycle]](../models/billingpreviewupdatenextcycle.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/billingupdatecustomize.md b/others/python-sdk/docs/models/billingupdatecustomize.md
index bb00a9ce5..285e2a150 100644
--- a/others/python-sdk/docs/models/billingupdatecustomize.md
+++ b/others/python-sdk/docs/models/billingupdatecustomize.md
@@ -1,5 +1,7 @@
# BillingUpdateCustomize
+Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+
## Fields
diff --git a/others/python-sdk/docs/models/billingupdateinvoicemode.md b/others/python-sdk/docs/models/billingupdateinvoicemode.md
index 4acb6cb4f..47fb7c47e 100644
--- a/others/python-sdk/docs/models/billingupdateinvoicemode.md
+++ b/others/python-sdk/docs/models/billingupdateinvoicemode.md
@@ -3,8 +3,8 @@
## Fields
-| Field | Type | Required | Description |
-| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- |
-| `enabled` | *bool* | :heavy_check_mark: | N/A |
-| `enable_product_immediately` | *Optional[bool]* | :heavy_minus_sign: | N/A |
-| `finalize_invoice` | *Optional[bool]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ------------------------- | ------------------------- | ------------------------- | ------------------------- |
+| `enabled` | *bool* | :heavy_check_mark: | N/A |
+| `enable_plan_immediately` | *Optional[bool]* | :heavy_minus_sign: | N/A |
+| `finalize` | *Optional[bool]* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/billingupdaterequest.md b/others/python-sdk/docs/models/billingupdaterequest.md
index 35c8e0404..1840eb3fa 100644
--- a/others/python-sdk/docs/models/billingupdaterequest.md
+++ b/others/python-sdk/docs/models/billingupdaterequest.md
@@ -8,10 +8,10 @@
| `customer_id` | *str* | :heavy_check_mark: | The ID of the customer to attach the plan to. |
| `entity_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the entity to attach the plan to. |
| `feature_quantities` | List[[models.BillingUpdateFeatureQuantities](../models/billingupdatefeaturequantities.md)] | :heavy_minus_sign: | If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. |
-| `version` | *Optional[float]* | :heavy_minus_sign: | N/A |
+| `version` | *Optional[float]* | :heavy_minus_sign: | The version of the plan to attach. |
| `free_trial` | [OptionalNullable[models.BillingUpdateFreeTrial]](../models/billingupdatefreetrial.md) | :heavy_minus_sign: | N/A |
-| `customize` | [Optional[models.BillingUpdateCustomize]](../models/billingupdatecustomize.md) | :heavy_minus_sign: | N/A |
-| `plan_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A |
+| `customize` | [Optional[models.BillingUpdateCustomize]](../models/billingupdatecustomize.md) | :heavy_minus_sign: | Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. |
+| `plan_id` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `invoice_mode` | [Optional[models.BillingUpdateInvoiceMode]](../models/billingupdateinvoicemode.md) | :heavy_minus_sign: | N/A |
| `cancel_action` | [Optional[models.BillingUpdateCancelAction]](../models/billingupdatecancelaction.md) | :heavy_minus_sign: | N/A |
| `billing_behavior` | [Optional[models.BillingUpdateBillingBehavior]](../models/billingupdatebillingbehavior.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/others/python-sdk/docs/models/breakdown.md b/others/python-sdk/docs/models/breakdown.md
index ce26b9772..849ebfe99 100644
--- a/others/python-sdk/docs/models/breakdown.md
+++ b/others/python-sdk/docs/models/breakdown.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
-| `object` | *Literal["balance_breakdown"]* | :heavy_check_mark: | N/A |
| `id` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `plan_id` | *Nullable[str]* | :heavy_check_mark: | N/A |
| `included_grant` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/incomingbalances.md b/others/python-sdk/docs/models/incomingbalances.md
index ff067809a..063c002b3 100644
--- a/others/python-sdk/docs/models/incomingbalances.md
+++ b/others/python-sdk/docs/models/incomingbalances.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- |
-| `object` | *Literal["balance"]* | :heavy_check_mark: | N/A |
| `feature_id` | *str* | :heavy_check_mark: | N/A |
| `feature` | [Optional[models.IncomingFeature]](../models/incomingfeature.md) | :heavy_minus_sign: | N/A |
| `granted` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/incomingbreakdown.md b/others/python-sdk/docs/models/incomingbreakdown.md
index 38b9cdf6a..164b60da4 100644
--- a/others/python-sdk/docs/models/incomingbreakdown.md
+++ b/others/python-sdk/docs/models/incomingbreakdown.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
-| `object` | *Literal["balance_breakdown"]* | :heavy_check_mark: | N/A |
| `id` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `plan_id` | *Nullable[str]* | :heavy_check_mark: | N/A |
| `included_grant` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/listcustomersbalances.md b/others/python-sdk/docs/models/listcustomersbalances.md
index 65979d052..47ea14702 100644
--- a/others/python-sdk/docs/models/listcustomersbalances.md
+++ b/others/python-sdk/docs/models/listcustomersbalances.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
-| `object` | *Literal["balance"]* | :heavy_check_mark: | N/A |
| `feature_id` | *str* | :heavy_check_mark: | N/A |
| `feature` | [Optional[models.ListCustomersFeature]](../models/listcustomersfeature.md) | :heavy_minus_sign: | N/A |
| `granted` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/listcustomersbreakdown.md b/others/python-sdk/docs/models/listcustomersbreakdown.md
index fdff270cc..b41b3d433 100644
--- a/others/python-sdk/docs/models/listcustomersbreakdown.md
+++ b/others/python-sdk/docs/models/listcustomersbreakdown.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
-| `object` | *Literal["balance_breakdown"]* | :heavy_check_mark: | N/A |
| `id` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `plan_id` | *Nullable[str]* | :heavy_check_mark: | N/A |
| `included_grant` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/outgoingbalances.md b/others/python-sdk/docs/models/outgoingbalances.md
index 57a678b2a..67b05200a 100644
--- a/others/python-sdk/docs/models/outgoingbalances.md
+++ b/others/python-sdk/docs/models/outgoingbalances.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- |
-| `object` | *Literal["balance"]* | :heavy_check_mark: | N/A |
| `feature_id` | *str* | :heavy_check_mark: | N/A |
| `feature` | [Optional[models.OutgoingFeature]](../models/outgoingfeature.md) | :heavy_minus_sign: | N/A |
| `granted` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/outgoingbreakdown.md b/others/python-sdk/docs/models/outgoingbreakdown.md
index 57b8ded38..835417699 100644
--- a/others/python-sdk/docs/models/outgoingbreakdown.md
+++ b/others/python-sdk/docs/models/outgoingbreakdown.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
-| `object` | *Literal["balance_breakdown"]* | :heavy_check_mark: | N/A |
| `id` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `plan_id` | *Nullable[str]* | :heavy_check_mark: | N/A |
| `included_grant` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/updatecustomerbalances.md b/others/python-sdk/docs/models/updatecustomerbalances.md
index 5fa25c01d..273486f9e 100644
--- a/others/python-sdk/docs/models/updatecustomerbalances.md
+++ b/others/python-sdk/docs/models/updatecustomerbalances.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
-| `object` | *Literal["balance"]* | :heavy_check_mark: | N/A |
| `feature_id` | *str* | :heavy_check_mark: | N/A |
| `feature` | [Optional[models.UpdateCustomerFeature]](../models/updatecustomerfeature.md) | :heavy_minus_sign: | N/A |
| `granted` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/models/updatecustomerbreakdown.md b/others/python-sdk/docs/models/updatecustomerbreakdown.md
index afede3e12..0a5f66612 100644
--- a/others/python-sdk/docs/models/updatecustomerbreakdown.md
+++ b/others/python-sdk/docs/models/updatecustomerbreakdown.md
@@ -5,7 +5,6 @@
| Field | Type | Required | Description |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
-| `object` | *Literal["balance_breakdown"]* | :heavy_check_mark: | N/A |
| `id` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `plan_id` | *Nullable[str]* | :heavy_check_mark: | N/A |
| `included_grant` | *float* | :heavy_check_mark: | N/A |
diff --git a/others/python-sdk/docs/sdks/billing/README.md b/others/python-sdk/docs/sdks/billing/README.md
index e69c28ed4..a61169284 100644
--- a/others/python-sdk/docs/sdks/billing/README.md
+++ b/others/python-sdk/docs/sdks/billing/README.md
@@ -41,9 +41,9 @@ with Autumn(
| `plan_id` | *str* | :heavy_check_mark: | N/A |
| `entity_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the entity to attach the plan to. |
| `feature_quantities` | List[[models.BillingAttachFeatureQuantities](../../models/billingattachfeaturequantities.md)] | :heavy_minus_sign: | If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. |
-| `version` | *Optional[float]* | :heavy_minus_sign: | N/A |
+| `version` | *Optional[float]* | :heavy_minus_sign: | The version of the plan to attach. |
| `free_trial` | [OptionalNullable[models.BillingAttachFreeTrial]](../../models/billingattachfreetrial.md) | :heavy_minus_sign: | N/A |
-| `customize` | [Optional[models.BillingAttachCustomize]](../../models/billingattachcustomize.md) | :heavy_minus_sign: | N/A |
+| `customize` | [Optional[models.BillingAttachCustomize]](../../models/billingattachcustomize.md) | :heavy_minus_sign: | Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. |
| `invoice_mode` | [Optional[models.BillingAttachInvoiceMode]](../../models/billingattachinvoicemode.md) | :heavy_minus_sign: | N/A |
| `discounts` | List[[models.BillingAttachDiscountUnion](../../models/billingattachdiscountunion.md)] | :heavy_minus_sign: | N/A |
| `redirect_mode` | [Optional[models.BillingAttachRedirectMode]](../../models/billingattachredirectmode.md) | :heavy_minus_sign: | N/A |
@@ -94,9 +94,9 @@ with Autumn(
| `plan_id` | *str* | :heavy_check_mark: | N/A |
| `entity_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the entity to attach the plan to. |
| `feature_quantities` | List[[models.BillingPreviewAttachFeatureQuantities](../../models/billingpreviewattachfeaturequantities.md)] | :heavy_minus_sign: | If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. |
-| `version` | *Optional[float]* | :heavy_minus_sign: | N/A |
+| `version` | *Optional[float]* | :heavy_minus_sign: | The version of the plan to attach. |
| `free_trial` | [OptionalNullable[models.BillingPreviewAttachFreeTrial]](../../models/billingpreviewattachfreetrial.md) | :heavy_minus_sign: | N/A |
-| `customize` | [Optional[models.BillingPreviewAttachCustomize]](../../models/billingpreviewattachcustomize.md) | :heavy_minus_sign: | N/A |
+| `customize` | [Optional[models.BillingPreviewAttachCustomize]](../../models/billingpreviewattachcustomize.md) | :heavy_minus_sign: | Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. |
| `invoice_mode` | [Optional[models.BillingPreviewAttachInvoiceMode]](../../models/billingpreviewattachinvoicemode.md) | :heavy_minus_sign: | N/A |
| `discounts` | List[[models.BillingPreviewAttachDiscountUnion](../../models/billingpreviewattachdiscountunion.md)] | :heavy_minus_sign: | N/A |
| `redirect_mode` | [Optional[models.BillingPreviewAttachRedirectMode]](../../models/billingpreviewattachredirectmode.md) | :heavy_minus_sign: | N/A |
@@ -146,10 +146,10 @@ with Autumn(
| `customer_id` | *str* | :heavy_check_mark: | The ID of the customer to attach the plan to. |
| `entity_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the entity to attach the plan to. |
| `feature_quantities` | List[[models.BillingUpdateFeatureQuantities](../../models/billingupdatefeaturequantities.md)] | :heavy_minus_sign: | If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. |
-| `version` | *Optional[float]* | :heavy_minus_sign: | N/A |
+| `version` | *Optional[float]* | :heavy_minus_sign: | The version of the plan to attach. |
| `free_trial` | [OptionalNullable[models.BillingUpdateFreeTrial]](../../models/billingupdatefreetrial.md) | :heavy_minus_sign: | N/A |
-| `customize` | [Optional[models.BillingUpdateCustomize]](../../models/billingupdatecustomize.md) | :heavy_minus_sign: | N/A |
-| `plan_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A |
+| `customize` | [Optional[models.BillingUpdateCustomize]](../../models/billingupdatecustomize.md) | :heavy_minus_sign: | Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. |
+| `plan_id` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `invoice_mode` | [Optional[models.BillingUpdateInvoiceMode]](../../models/billingupdateinvoicemode.md) | :heavy_minus_sign: | N/A |
| `cancel_action` | [Optional[models.BillingUpdateCancelAction]](../../models/billingupdatecancelaction.md) | :heavy_minus_sign: | N/A |
| `billing_behavior` | [Optional[models.BillingUpdateBillingBehavior]](../../models/billingupdatebillingbehavior.md) | :heavy_minus_sign: | N/A |
@@ -195,10 +195,10 @@ with Autumn(
| `customer_id` | *str* | :heavy_check_mark: | The ID of the customer to attach the plan to. |
| `entity_id` | *OptionalNullable[str]* | :heavy_minus_sign: | The ID of the entity to attach the plan to. |
| `feature_quantities` | List[[models.BillingPreviewUpdateFeatureQuantities](../../models/billingpreviewupdatefeaturequantities.md)] | :heavy_minus_sign: | If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. |
-| `version` | *Optional[float]* | :heavy_minus_sign: | N/A |
+| `version` | *Optional[float]* | :heavy_minus_sign: | The version of the plan to attach. |
| `free_trial` | [OptionalNullable[models.BillingPreviewUpdateFreeTrial]](../../models/billingpreviewupdatefreetrial.md) | :heavy_minus_sign: | N/A |
-| `customize` | [Optional[models.BillingPreviewUpdateCustomize]](../../models/billingpreviewupdatecustomize.md) | :heavy_minus_sign: | N/A |
-| `plan_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A |
+| `customize` | [Optional[models.BillingPreviewUpdateCustomize]](../../models/billingpreviewupdatecustomize.md) | :heavy_minus_sign: | Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. |
+| `plan_id` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `invoice_mode` | [Optional[models.BillingPreviewUpdateInvoiceMode]](../../models/billingpreviewupdateinvoicemode.md) | :heavy_minus_sign: | N/A |
| `cancel_action` | [Optional[models.BillingPreviewUpdateCancelAction]](../../models/billingpreviewupdatecancelaction.md) | :heavy_minus_sign: | N/A |
| `billing_behavior` | [Optional[models.BillingPreviewUpdateBillingBehavior]](../../models/billingpreviewupdatebillingbehavior.md) | :heavy_minus_sign: | N/A |
diff --git a/others/python-sdk/pyproject.toml b/others/python-sdk/pyproject.toml
index 682c3d9a5..38ecae9bb 100644
--- a/others/python-sdk/pyproject.toml
+++ b/others/python-sdk/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "autumn-sdk"
-version = "0.2.21"
+version = "0.2.22"
description = "Python SDK for the Autumn billing API"
authors = [{ name = "Autumn" },]
readme = "README.md"
diff --git a/others/python-sdk/src/autumn_sdk/_version.py b/others/python-sdk/src/autumn_sdk/_version.py
index b94bce673..6e51775a9 100644
--- a/others/python-sdk/src/autumn_sdk/_version.py
+++ b/others/python-sdk/src/autumn_sdk/_version.py
@@ -3,10 +3,10 @@
import importlib.metadata
__title__: str = "autumn-sdk"
-__version__: str = "0.2.21"
+__version__: str = "0.2.22"
__openapi_doc_version__: str = "2.1.0"
__gen_version__: str = "2.824.1"
-__user_agent__: str = "speakeasy-sdk/python 0.2.21 2.824.1 2.1.0 autumn-sdk"
+__user_agent__: str = "speakeasy-sdk/python 0.2.22 2.824.1 2.1.0 autumn-sdk"
try:
if __package__ is not None:
diff --git a/others/python-sdk/src/autumn_sdk/billing.py b/others/python-sdk/src/autumn_sdk/billing.py
index 926c58fa6..1c2d8ce6f 100644
--- a/others/python-sdk/src/autumn_sdk/billing.py
+++ b/others/python-sdk/src/autumn_sdk/billing.py
@@ -56,9 +56,9 @@ class Billing(BaseSDK):
:param plan_id:
:param entity_id: The ID of the entity to attach the plan to.
:param feature_quantities: If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
- :param version:
+ :param version: The version of the plan to attach.
:param free_trial:
- :param customize:
+ :param customize: Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
:param invoice_mode:
:param discounts:
:param redirect_mode:
@@ -215,9 +215,9 @@ class Billing(BaseSDK):
:param plan_id:
:param entity_id: The ID of the entity to attach the plan to.
:param feature_quantities: If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
- :param version:
+ :param version: The version of the plan to attach.
:param free_trial:
- :param customize:
+ :param customize: Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
:param invoice_mode:
:param discounts:
:param redirect_mode:
@@ -380,9 +380,9 @@ class Billing(BaseSDK):
:param plan_id:
:param entity_id: The ID of the entity to attach the plan to.
:param feature_quantities: If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
- :param version:
+ :param version: The version of the plan to attach.
:param free_trial:
- :param customize:
+ :param customize: Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
:param invoice_mode:
:param discounts:
:param redirect_mode:
@@ -547,9 +547,9 @@ class Billing(BaseSDK):
:param plan_id:
:param entity_id: The ID of the entity to attach the plan to.
:param feature_quantities: If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
- :param version:
+ :param version: The version of the plan to attach.
:param free_trial:
- :param customize:
+ :param customize: Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
:param invoice_mode:
:param discounts:
:param redirect_mode:
@@ -679,7 +679,7 @@ class Billing(BaseSDK):
customize: Optional[
Union[models.BillingUpdateCustomize, models.BillingUpdateCustomizeTypedDict]
] = None,
- plan_id: OptionalNullable[str] = UNSET,
+ plan_id: Optional[str] = None,
invoice_mode: Optional[
Union[
models.BillingUpdateInvoiceMode,
@@ -698,9 +698,9 @@ class Billing(BaseSDK):
:param customer_id: The ID of the customer to attach the plan to.
:param entity_id: The ID of the entity to attach the plan to.
:param feature_quantities: If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
- :param version:
+ :param version: The version of the plan to attach.
:param free_trial:
- :param customize:
+ :param customize: Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
:param plan_id:
:param invoice_mode:
:param cancel_action:
@@ -819,7 +819,7 @@ class Billing(BaseSDK):
customize: Optional[
Union[models.BillingUpdateCustomize, models.BillingUpdateCustomizeTypedDict]
] = None,
- plan_id: OptionalNullable[str] = UNSET,
+ plan_id: Optional[str] = None,
invoice_mode: Optional[
Union[
models.BillingUpdateInvoiceMode,
@@ -838,9 +838,9 @@ class Billing(BaseSDK):
:param customer_id: The ID of the customer to attach the plan to.
:param entity_id: The ID of the entity to attach the plan to.
:param feature_quantities: If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
- :param version:
+ :param version: The version of the plan to attach.
:param free_trial:
- :param customize:
+ :param customize: Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
:param plan_id:
:param invoice_mode:
:param cancel_action:
@@ -965,7 +965,7 @@ class Billing(BaseSDK):
models.BillingPreviewUpdateCustomizeTypedDict,
]
] = None,
- plan_id: OptionalNullable[str] = UNSET,
+ plan_id: Optional[str] = None,
invoice_mode: Optional[
Union[
models.BillingPreviewUpdateInvoiceMode,
@@ -984,9 +984,9 @@ class Billing(BaseSDK):
:param customer_id: The ID of the customer to attach the plan to.
:param entity_id: The ID of the entity to attach the plan to.
:param feature_quantities: If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
- :param version:
+ :param version: The version of the plan to attach.
:param free_trial:
- :param customize:
+ :param customize: Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
:param plan_id:
:param invoice_mode:
:param cancel_action:
@@ -1113,7 +1113,7 @@ class Billing(BaseSDK):
models.BillingPreviewUpdateCustomizeTypedDict,
]
] = None,
- plan_id: OptionalNullable[str] = UNSET,
+ plan_id: Optional[str] = None,
invoice_mode: Optional[
Union[
models.BillingPreviewUpdateInvoiceMode,
@@ -1132,9 +1132,9 @@ class Billing(BaseSDK):
:param customer_id: The ID of the customer to attach the plan to.
:param entity_id: The ID of the entity to attach the plan to.
:param feature_quantities: If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
- :param version:
+ :param version: The version of the plan to attach.
:param free_trial:
- :param customize:
+ :param customize: Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
:param plan_id:
:param invoice_mode:
:param cancel_action:
diff --git a/others/python-sdk/src/autumn_sdk/models/__init__.py b/others/python-sdk/src/autumn_sdk/models/__init__.py
index c28ee8b40..ef0446c2a 100644
--- a/others/python-sdk/src/autumn_sdk/models/__init__.py
+++ b/others/python-sdk/src/autumn_sdk/models/__init__.py
@@ -207,8 +207,6 @@ if TYPE_CHECKING:
from .billingpreviewattachop import (
BillingPreviewAttachBillingBehavior,
BillingPreviewAttachBillingMethodRequest,
- BillingPreviewAttachCredit,
- BillingPreviewAttachCreditTypedDict,
BillingPreviewAttachCustomize,
BillingPreviewAttachCustomizeReset,
BillingPreviewAttachCustomizeResetTypedDict,
@@ -328,8 +326,6 @@ if TYPE_CHECKING:
BillingPreviewUpdateBillingBehavior,
BillingPreviewUpdateBillingMethod,
BillingPreviewUpdateCancelAction,
- BillingPreviewUpdateCredit,
- BillingPreviewUpdateCreditTypedDict,
BillingPreviewUpdateCustomize,
BillingPreviewUpdateCustomizeTypedDict,
BillingPreviewUpdateDiscount,
@@ -809,8 +805,6 @@ __all__ = [
"BillingAttachToTypedDict",
"BillingPreviewAttachBillingBehavior",
"BillingPreviewAttachBillingMethodRequest",
- "BillingPreviewAttachCredit",
- "BillingPreviewAttachCreditTypedDict",
"BillingPreviewAttachCustomize",
"BillingPreviewAttachCustomizeReset",
"BillingPreviewAttachCustomizeResetTypedDict",
@@ -873,8 +867,6 @@ __all__ = [
"BillingPreviewUpdateBillingBehavior",
"BillingPreviewUpdateBillingMethod",
"BillingPreviewUpdateCancelAction",
- "BillingPreviewUpdateCredit",
- "BillingPreviewUpdateCreditTypedDict",
"BillingPreviewUpdateCustomize",
"BillingPreviewUpdateCustomizeTypedDict",
"BillingPreviewUpdateDiscount",
@@ -1439,8 +1431,6 @@ _dynamic_imports: dict[str, str] = {
"BillingAttachToTypedDict": ".billingattachop",
"BillingPreviewAttachBillingBehavior": ".billingpreviewattachop",
"BillingPreviewAttachBillingMethodRequest": ".billingpreviewattachop",
- "BillingPreviewAttachCredit": ".billingpreviewattachop",
- "BillingPreviewAttachCreditTypedDict": ".billingpreviewattachop",
"BillingPreviewAttachCustomize": ".billingpreviewattachop",
"BillingPreviewAttachCustomizeReset": ".billingpreviewattachop",
"BillingPreviewAttachCustomizeResetTypedDict": ".billingpreviewattachop",
@@ -1558,8 +1548,6 @@ _dynamic_imports: dict[str, str] = {
"BillingPreviewUpdateBillingBehavior": ".billingpreviewupdateop",
"BillingPreviewUpdateBillingMethod": ".billingpreviewupdateop",
"BillingPreviewUpdateCancelAction": ".billingpreviewupdateop",
- "BillingPreviewUpdateCredit": ".billingpreviewupdateop",
- "BillingPreviewUpdateCreditTypedDict": ".billingpreviewupdateop",
"BillingPreviewUpdateCustomize": ".billingpreviewupdateop",
"BillingPreviewUpdateCustomizeTypedDict": ".billingpreviewupdateop",
"BillingPreviewUpdateDiscount": ".billingpreviewupdateop",
diff --git a/others/python-sdk/src/autumn_sdk/models/balancescheckop.py b/others/python-sdk/src/autumn_sdk/models/balancescheckop.py
index e808efe8d..3a48eb8b3 100644
--- a/others/python-sdk/src/autumn_sdk/models/balancescheckop.py
+++ b/others/python-sdk/src/autumn_sdk/models/balancescheckop.py
@@ -9,10 +9,9 @@ from autumn_sdk.types import (
UNSET_SENTINEL,
UnrecognizedStr,
)
-from autumn_sdk.utils import FieldMetadata, HeaderMetadata, validate_const
+from autumn_sdk.utils import FieldMetadata, HeaderMetadata
import pydantic
from pydantic import model_serializer
-from pydantic.functional_validators import AfterValidator
from typing import Any, Dict, List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
@@ -364,7 +363,6 @@ class BalancesCheckBreakdownTypedDict(TypedDict):
reset: Nullable[BalancesCheckResetTypedDict]
price: Nullable[BalancesCheckPriceTypedDict]
expires_at: Nullable[float]
- object: Literal["balance_breakdown"]
id: NotRequired[str]
@@ -387,14 +385,6 @@ class BalancesCheckBreakdown(BaseModel):
expires_at: Nullable[float]
- object: Annotated[
- Annotated[
- Literal["balance_breakdown"],
- AfterValidator(validate_const("balance_breakdown")),
- ],
- pydantic.Field(alias="object"),
- ] = "balance_breakdown"
-
id: Optional[str] = ""
@model_serializer(mode="wrap")
@@ -443,7 +433,6 @@ class BalancesCheckBalanceTypedDict(TypedDict):
overage_allowed: bool
max_purchase: Nullable[float]
next_reset_at: Nullable[float]
- object: Literal["balance"]
feature: NotRequired[BalancesCheckFeatureTypedDict]
breakdown: NotRequired[List[BalancesCheckBreakdownTypedDict]]
rollovers: NotRequired[List[BalancesCheckBalanceRolloverTypedDict]]
@@ -466,11 +455,6 @@ class BalancesCheckBalance(BaseModel):
next_reset_at: Nullable[float]
- object: Annotated[
- Annotated[Literal["balance"], AfterValidator(validate_const("balance"))],
- pydantic.Field(alias="object"),
- ] = "balance"
-
feature: Optional[BalancesCheckFeature] = None
breakdown: Optional[List[BalancesCheckBreakdown]] = None
@@ -1203,13 +1187,3 @@ class BalancesCheckResponse(BaseModel):
m[k] = val
return m
-
-
-try:
- BalancesCheckBreakdown.model_rebuild()
-except NameError:
- pass
-try:
- BalancesCheckBalance.model_rebuild()
-except NameError:
- pass
diff --git a/others/python-sdk/src/autumn_sdk/models/balancestrackop.py b/others/python-sdk/src/autumn_sdk/models/balancestrackop.py
index d374b6537..84737f2b4 100644
--- a/others/python-sdk/src/autumn_sdk/models/balancestrackop.py
+++ b/others/python-sdk/src/autumn_sdk/models/balancestrackop.py
@@ -9,10 +9,9 @@ from autumn_sdk.types import (
UNSET_SENTINEL,
UnrecognizedStr,
)
-from autumn_sdk.utils import FieldMetadata, HeaderMetadata, validate_const
+from autumn_sdk.utils import FieldMetadata, HeaderMetadata
import pydantic
from pydantic import model_serializer
-from pydantic.functional_validators import AfterValidator
from typing import Any, Dict, List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
@@ -361,7 +360,6 @@ class BalancesTrackBalanceBreakdownTypedDict(TypedDict):
reset: Nullable[BalancesTrackBalanceResetTypedDict]
price: Nullable[BalancesTrackBalancePriceTypedDict]
expires_at: Nullable[float]
- object: Literal["balance_breakdown"]
id: NotRequired[str]
@@ -384,14 +382,6 @@ class BalancesTrackBalanceBreakdown(BaseModel):
expires_at: Nullable[float]
- object: Annotated[
- Annotated[
- Literal["balance_breakdown"],
- AfterValidator(validate_const("balance_breakdown")),
- ],
- pydantic.Field(alias="object"),
- ] = "balance_breakdown"
-
id: Optional[str] = ""
@model_serializer(mode="wrap")
@@ -440,7 +430,6 @@ class BalancesTrackBalanceTypedDict(TypedDict):
overage_allowed: bool
max_purchase: Nullable[float]
next_reset_at: Nullable[float]
- object: Literal["balance"]
feature: NotRequired[BalancesTrackBalanceFeatureTypedDict]
breakdown: NotRequired[List[BalancesTrackBalanceBreakdownTypedDict]]
rollovers: NotRequired[List[BalancesTrackBalanceRolloverTypedDict]]
@@ -463,11 +452,6 @@ class BalancesTrackBalance(BaseModel):
next_reset_at: Nullable[float]
- object: Annotated[
- Annotated[Literal["balance"], AfterValidator(validate_const("balance"))],
- pydantic.Field(alias="object"),
- ] = "balance"
-
feature: Optional[BalancesTrackBalanceFeature] = None
breakdown: Optional[List[BalancesTrackBalanceBreakdown]] = None
@@ -748,7 +732,6 @@ class BalancesTrackBreakdownTypedDict(TypedDict):
reset: Nullable[BalancesTrackResetTypedDict]
price: Nullable[BalancesTrackPriceTypedDict]
expires_at: Nullable[float]
- object: Literal["balance_breakdown"]
id: NotRequired[str]
@@ -771,14 +754,6 @@ class BalancesTrackBreakdown(BaseModel):
expires_at: Nullable[float]
- object: Annotated[
- Annotated[
- Literal["balance_breakdown"],
- AfterValidator(validate_const("balance_breakdown")),
- ],
- pydantic.Field(alias="object"),
- ] = "balance_breakdown"
-
id: Optional[str] = ""
@model_serializer(mode="wrap")
@@ -827,7 +802,6 @@ class BalancesTrackBalancesTypedDict(TypedDict):
overage_allowed: bool
max_purchase: Nullable[float]
next_reset_at: Nullable[float]
- object: Literal["balance"]
feature: NotRequired[BalancesTrackFeatureTypedDict]
breakdown: NotRequired[List[BalancesTrackBreakdownTypedDict]]
rollovers: NotRequired[List[BalancesTrackRolloverTypedDict]]
@@ -850,11 +824,6 @@ class BalancesTrackBalances(BaseModel):
next_reset_at: Nullable[float]
- object: Annotated[
- Annotated[Literal["balance"], AfterValidator(validate_const("balance"))],
- pydantic.Field(alias="object"),
- ] = "balance"
-
feature: Optional[BalancesTrackFeature] = None
breakdown: Optional[List[BalancesTrackBreakdown]] = None
@@ -943,21 +912,3 @@ class BalancesTrackResponse(BaseModel):
m[k] = val
return m
-
-
-try:
- BalancesTrackBalanceBreakdown.model_rebuild()
-except NameError:
- pass
-try:
- BalancesTrackBalance.model_rebuild()
-except NameError:
- pass
-try:
- BalancesTrackBreakdown.model_rebuild()
-except NameError:
- pass
-try:
- BalancesTrackBalances.model_rebuild()
-except NameError:
- pass
diff --git a/others/python-sdk/src/autumn_sdk/models/billingattachop.py b/others/python-sdk/src/autumn_sdk/models/billingattachop.py
index 587061c46..aba5fb54b 100644
--- a/others/python-sdk/src/autumn_sdk/models/billingattachop.py
+++ b/others/python-sdk/src/autumn_sdk/models/billingattachop.py
@@ -377,11 +377,15 @@ class BillingAttachItem(BaseModel):
class BillingAttachCustomizeTypedDict(TypedDict):
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
+
price: NotRequired[Nullable[BillingAttachPriceTypedDict]]
items: NotRequired[List[BillingAttachItemTypedDict]]
class BillingAttachCustomize(BaseModel):
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
+
price: OptionalNullable[BillingAttachPrice] = UNSET
items: Optional[List[BillingAttachItem]] = None
@@ -414,20 +418,20 @@ class BillingAttachCustomize(BaseModel):
class BillingAttachInvoiceModeTypedDict(TypedDict):
enabled: bool
- enable_product_immediately: NotRequired[bool]
- finalize_invoice: NotRequired[bool]
+ enable_plan_immediately: NotRequired[bool]
+ finalize: NotRequired[bool]
class BillingAttachInvoiceMode(BaseModel):
enabled: bool
- enable_product_immediately: Optional[bool] = False
+ enable_plan_immediately: Optional[bool] = False
- finalize_invoice: Optional[bool] = True
+ finalize: Optional[bool] = True
@model_serializer(mode="wrap")
def serialize_model(self, handler):
- optional_fields = set(["enable_product_immediately", "finalize_invoice"])
+ optional_fields = set(["enable_plan_immediately", "finalize"])
serialized = handler(self)
m = {}
@@ -499,8 +503,10 @@ class BillingAttachRequestTypedDict(TypedDict):
]
r"""If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan."""
version: NotRequired[float]
+ r"""The version of the plan to attach."""
free_trial: NotRequired[Nullable[BillingAttachFreeTrialTypedDict]]
customize: NotRequired[BillingAttachCustomizeTypedDict]
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
invoice_mode: NotRequired[BillingAttachInvoiceModeTypedDict]
discounts: NotRequired[List[BillingAttachDiscountUnionTypedDict]]
redirect_mode: NotRequired[BillingAttachRedirectMode]
@@ -523,10 +529,12 @@ class BillingAttachRequest(BaseModel):
r"""If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan."""
version: Optional[float] = None
+ r"""The version of the plan to attach."""
free_trial: OptionalNullable[BillingAttachFreeTrial] = UNSET
customize: Optional[BillingAttachCustomize] = None
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
invoice_mode: Optional[BillingAttachInvoiceMode] = None
diff --git a/others/python-sdk/src/autumn_sdk/models/billingpreviewattachop.py b/others/python-sdk/src/autumn_sdk/models/billingpreviewattachop.py
index 254f25ecf..f20d47336 100644
--- a/others/python-sdk/src/autumn_sdk/models/billingpreviewattachop.py
+++ b/others/python-sdk/src/autumn_sdk/models/billingpreviewattachop.py
@@ -10,10 +10,9 @@ from autumn_sdk.types import (
UNSET_SENTINEL,
UnrecognizedStr,
)
-from autumn_sdk.utils import FieldMetadata, HeaderMetadata, validate_const
+from autumn_sdk.utils import FieldMetadata, HeaderMetadata
import pydantic
from pydantic import model_serializer
-from pydantic.functional_validators import AfterValidator
from typing import Any, Dict, List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
@@ -381,11 +380,15 @@ class BillingPreviewAttachItem(BaseModel):
class BillingPreviewAttachCustomizeTypedDict(TypedDict):
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
+
price: NotRequired[Nullable[BillingPreviewAttachPriceRequestTypedDict]]
items: NotRequired[List[BillingPreviewAttachItemTypedDict]]
class BillingPreviewAttachCustomize(BaseModel):
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
+
price: OptionalNullable[BillingPreviewAttachPriceRequest] = UNSET
items: Optional[List[BillingPreviewAttachItem]] = None
@@ -418,20 +421,20 @@ class BillingPreviewAttachCustomize(BaseModel):
class BillingPreviewAttachInvoiceModeTypedDict(TypedDict):
enabled: bool
- enable_product_immediately: NotRequired[bool]
- finalize_invoice: NotRequired[bool]
+ enable_plan_immediately: NotRequired[bool]
+ finalize: NotRequired[bool]
class BillingPreviewAttachInvoiceMode(BaseModel):
enabled: bool
- enable_product_immediately: Optional[bool] = False
+ enable_plan_immediately: Optional[bool] = False
- finalize_invoice: Optional[bool] = True
+ finalize: Optional[bool] = True
@model_serializer(mode="wrap")
def serialize_model(self, handler):
- optional_fields = set(["enable_product_immediately", "finalize_invoice"])
+ optional_fields = set(["enable_plan_immediately", "finalize"])
serialized = handler(self)
m = {}
@@ -507,8 +510,10 @@ class BillingPreviewAttachRequestTypedDict(TypedDict):
]
r"""If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan."""
version: NotRequired[float]
+ r"""The version of the plan to attach."""
free_trial: NotRequired[Nullable[BillingPreviewAttachFreeTrialTypedDict]]
customize: NotRequired[BillingPreviewAttachCustomizeTypedDict]
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
invoice_mode: NotRequired[BillingPreviewAttachInvoiceModeTypedDict]
discounts: NotRequired[List[BillingPreviewAttachDiscountUnionTypedDict]]
redirect_mode: NotRequired[BillingPreviewAttachRedirectMode]
@@ -533,10 +538,12 @@ class BillingPreviewAttachRequest(BaseModel):
r"""If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan."""
version: Optional[float] = None
+ r"""The version of the plan to attach."""
free_trial: OptionalNullable[BillingPreviewAttachFreeTrial] = UNSET
customize: Optional[BillingPreviewAttachCustomize] = None
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
invoice_mode: Optional[BillingPreviewAttachInvoiceMode] = None
@@ -643,13 +650,13 @@ class BillingPreviewAttachLineItemTypedDict(TypedDict):
title: str
description: str
amount: float
+ plan_id: str
total_quantity: float
paid_quantity: float
- plan_id: str
discounts: NotRequired[List[BillingPreviewAttachDiscountResponseTypedDict]]
- is_base: NotRequired[bool]
deferred_for_trial: NotRequired[bool]
effective_period: NotRequired[BillingPreviewAttachEffectivePeriodTypedDict]
+ is_base: NotRequired[bool]
class BillingPreviewAttachLineItem(BaseModel):
@@ -659,24 +666,24 @@ class BillingPreviewAttachLineItem(BaseModel):
amount: float
+ plan_id: str
+
total_quantity: float
paid_quantity: float
- plan_id: str
-
discounts: Optional[List[BillingPreviewAttachDiscountResponse]] = None
- is_base: Optional[bool] = None
-
deferred_for_trial: Optional[bool] = None
effective_period: Optional[BillingPreviewAttachEffectivePeriod] = None
+ is_base: Optional[bool] = None
+
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
- ["discounts", "is_base", "deferred_for_trial", "effective_period"]
+ ["discounts", "deferred_for_trial", "effective_period", "is_base"]
)
serialized = handler(self)
m = {}
@@ -692,17 +699,6 @@ class BillingPreviewAttachLineItem(BaseModel):
return m
-class BillingPreviewAttachCreditTypedDict(TypedDict):
- amount: float
- description: str
-
-
-class BillingPreviewAttachCredit(BaseModel):
- amount: float
-
- description: str
-
-
class BillingPreviewAttachNextCycleDiscountTypedDict(TypedDict):
amount_off: float
percent_off: NotRequired[float]
@@ -753,13 +749,13 @@ class BillingPreviewAttachNextCycleLineItemTypedDict(TypedDict):
title: str
description: str
amount: float
+ plan_id: str
total_quantity: float
paid_quantity: float
- plan_id: str
discounts: NotRequired[List[BillingPreviewAttachNextCycleDiscountTypedDict]]
- is_base: NotRequired[bool]
deferred_for_trial: NotRequired[bool]
effective_period: NotRequired[BillingPreviewAttachNextCycleEffectivePeriodTypedDict]
+ is_base: NotRequired[bool]
class BillingPreviewAttachNextCycleLineItem(BaseModel):
@@ -769,24 +765,24 @@ class BillingPreviewAttachNextCycleLineItem(BaseModel):
amount: float
+ plan_id: str
+
total_quantity: float
paid_quantity: float
- plan_id: str
-
discounts: Optional[List[BillingPreviewAttachNextCycleDiscount]] = None
- is_base: Optional[bool] = None
-
deferred_for_trial: Optional[bool] = None
effective_period: Optional[BillingPreviewAttachNextCycleEffectivePeriod] = None
+ is_base: Optional[bool] = None
+
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
- ["discounts", "is_base", "deferred_for_trial", "effective_period"]
+ ["discounts", "deferred_for_trial", "effective_period", "is_base"]
)
serialized = handler(self)
m = {}
@@ -1085,7 +1081,6 @@ class IncomingBreakdownTypedDict(TypedDict):
reset: Nullable[IncomingResetTypedDict]
price: Nullable[IncomingPriceTypedDict]
expires_at: Nullable[float]
- object: Literal["balance_breakdown"]
id: NotRequired[str]
@@ -1108,14 +1103,6 @@ class IncomingBreakdown(BaseModel):
expires_at: Nullable[float]
- object: Annotated[
- Annotated[
- Literal["balance_breakdown"],
- AfterValidator(validate_const("balance_breakdown")),
- ],
- pydantic.Field(alias="object"),
- ] = "balance_breakdown"
-
id: Optional[str] = ""
@model_serializer(mode="wrap")
@@ -1164,7 +1151,6 @@ class IncomingBalancesTypedDict(TypedDict):
overage_allowed: bool
max_purchase: Nullable[float]
next_reset_at: Nullable[float]
- object: Literal["balance"]
feature: NotRequired[IncomingFeatureTypedDict]
breakdown: NotRequired[List[IncomingBreakdownTypedDict]]
rollovers: NotRequired[List[IncomingRolloverTypedDict]]
@@ -1187,11 +1173,6 @@ class IncomingBalances(BaseModel):
next_reset_at: Nullable[float]
- object: Annotated[
- Annotated[Literal["balance"], AfterValidator(validate_const("balance"))],
- pydantic.Field(alias="object"),
- ] = "balance"
-
feature: Optional[IncomingFeature] = None
breakdown: Optional[List[IncomingBreakdown]] = None
@@ -1529,7 +1510,6 @@ class OutgoingBreakdownTypedDict(TypedDict):
reset: Nullable[OutgoingResetTypedDict]
price: Nullable[OutgoingPriceTypedDict]
expires_at: Nullable[float]
- object: Literal["balance_breakdown"]
id: NotRequired[str]
@@ -1552,14 +1532,6 @@ class OutgoingBreakdown(BaseModel):
expires_at: Nullable[float]
- object: Annotated[
- Annotated[
- Literal["balance_breakdown"],
- AfterValidator(validate_const("balance_breakdown")),
- ],
- pydantic.Field(alias="object"),
- ] = "balance_breakdown"
-
id: Optional[str] = ""
@model_serializer(mode="wrap")
@@ -1608,7 +1580,6 @@ class OutgoingBalancesTypedDict(TypedDict):
overage_allowed: bool
max_purchase: Nullable[float]
next_reset_at: Nullable[float]
- object: Literal["balance"]
feature: NotRequired[OutgoingFeatureTypedDict]
breakdown: NotRequired[List[OutgoingBreakdownTypedDict]]
rollovers: NotRequired[List[OutgoingRolloverTypedDict]]
@@ -1631,11 +1602,6 @@ class OutgoingBalances(BaseModel):
next_reset_at: Nullable[float]
- object: Annotated[
- Annotated[Literal["balance"], AfterValidator(validate_const("balance"))],
- pydantic.Field(alias="object"),
- ] = "balance"
-
feature: Optional[OutgoingFeature] = None
breakdown: Optional[List[OutgoingBreakdown]] = None
@@ -1725,7 +1691,6 @@ class BillingPreviewAttachResponseTypedDict(TypedDict):
redirect_type: Nullable[RedirectType]
period_start: NotRequired[float]
period_end: NotRequired[float]
- credit: NotRequired[BillingPreviewAttachCreditTypedDict]
next_cycle: NotRequired[BillingPreviewAttachNextCycleTypedDict]
@@ -1750,13 +1715,11 @@ class BillingPreviewAttachResponse(BaseModel):
period_end: Optional[float] = None
- credit: Optional[BillingPreviewAttachCredit] = None
-
next_cycle: Optional[BillingPreviewAttachNextCycle] = None
@model_serializer(mode="wrap")
def serialize_model(self, handler):
- optional_fields = set(["period_start", "period_end", "credit", "next_cycle"])
+ optional_fields = set(["period_start", "period_end", "next_cycle"])
nullable_fields = set(["redirect_type"])
serialized = handler(self)
m = {}
@@ -1788,19 +1751,3 @@ try:
BillingPreviewAttachNextCycleDiscount.model_rebuild()
except NameError:
pass
-try:
- IncomingBreakdown.model_rebuild()
-except NameError:
- pass
-try:
- IncomingBalances.model_rebuild()
-except NameError:
- pass
-try:
- OutgoingBreakdown.model_rebuild()
-except NameError:
- pass
-try:
- OutgoingBalances.model_rebuild()
-except NameError:
- pass
diff --git a/others/python-sdk/src/autumn_sdk/models/billingpreviewupdateop.py b/others/python-sdk/src/autumn_sdk/models/billingpreviewupdateop.py
index 377d54b13..bf3fa23cd 100644
--- a/others/python-sdk/src/autumn_sdk/models/billingpreviewupdateop.py
+++ b/others/python-sdk/src/autumn_sdk/models/billingpreviewupdateop.py
@@ -378,11 +378,15 @@ class BillingPreviewUpdateItem(BaseModel):
class BillingPreviewUpdateCustomizeTypedDict(TypedDict):
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
+
price: NotRequired[Nullable[BillingPreviewUpdatePriceTypedDict]]
items: NotRequired[List[BillingPreviewUpdateItemTypedDict]]
class BillingPreviewUpdateCustomize(BaseModel):
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
+
price: OptionalNullable[BillingPreviewUpdatePrice] = UNSET
items: Optional[List[BillingPreviewUpdateItem]] = None
@@ -415,20 +419,20 @@ class BillingPreviewUpdateCustomize(BaseModel):
class BillingPreviewUpdateInvoiceModeTypedDict(TypedDict):
enabled: bool
- enable_product_immediately: NotRequired[bool]
- finalize_invoice: NotRequired[bool]
+ enable_plan_immediately: NotRequired[bool]
+ finalize: NotRequired[bool]
class BillingPreviewUpdateInvoiceMode(BaseModel):
enabled: bool
- enable_product_immediately: Optional[bool] = False
+ enable_plan_immediately: Optional[bool] = False
- finalize_invoice: Optional[bool] = True
+ finalize: Optional[bool] = True
@model_serializer(mode="wrap")
def serialize_model(self, handler):
- optional_fields = set(["enable_product_immediately", "finalize_invoice"])
+ optional_fields = set(["enable_plan_immediately", "finalize"])
serialized = handler(self)
m = {}
@@ -466,9 +470,11 @@ class BillingPreviewUpdateRequestTypedDict(TypedDict):
]
r"""If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan."""
version: NotRequired[float]
+ r"""The version of the plan to attach."""
free_trial: NotRequired[Nullable[BillingPreviewUpdateFreeTrialTypedDict]]
customize: NotRequired[BillingPreviewUpdateCustomizeTypedDict]
- plan_id: NotRequired[Nullable[str]]
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
+ plan_id: NotRequired[str]
invoice_mode: NotRequired[BillingPreviewUpdateInvoiceModeTypedDict]
cancel_action: NotRequired[BillingPreviewUpdateCancelAction]
billing_behavior: NotRequired[BillingPreviewUpdateBillingBehavior]
@@ -487,12 +493,14 @@ class BillingPreviewUpdateRequest(BaseModel):
r"""If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan."""
version: Optional[float] = None
+ r"""The version of the plan to attach."""
free_trial: OptionalNullable[BillingPreviewUpdateFreeTrial] = UNSET
customize: Optional[BillingPreviewUpdateCustomize] = None
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
- plan_id: OptionalNullable[str] = UNSET
+ plan_id: Optional[str] = None
invoice_mode: Optional[BillingPreviewUpdateInvoiceMode] = None
@@ -515,9 +523,7 @@ class BillingPreviewUpdateRequest(BaseModel):
"billing_behavior",
]
)
- nullable_fields = set(
- ["entity_id", "feature_quantities", "free_trial", "plan_id"]
- )
+ nullable_fields = set(["entity_id", "feature_quantities", "free_trial"])
serialized = handler(self)
m = {}
@@ -590,13 +596,13 @@ class BillingPreviewUpdateLineItemTypedDict(TypedDict):
title: str
description: str
amount: float
+ plan_id: str
total_quantity: float
paid_quantity: float
- plan_id: str
discounts: NotRequired[List[BillingPreviewUpdateDiscountTypedDict]]
- is_base: NotRequired[bool]
deferred_for_trial: NotRequired[bool]
effective_period: NotRequired[BillingPreviewUpdateEffectivePeriodTypedDict]
+ is_base: NotRequired[bool]
class BillingPreviewUpdateLineItem(BaseModel):
@@ -606,24 +612,24 @@ class BillingPreviewUpdateLineItem(BaseModel):
amount: float
+ plan_id: str
+
total_quantity: float
paid_quantity: float
- plan_id: str
-
discounts: Optional[List[BillingPreviewUpdateDiscount]] = None
- is_base: Optional[bool] = None
-
deferred_for_trial: Optional[bool] = None
effective_period: Optional[BillingPreviewUpdateEffectivePeriod] = None
+ is_base: Optional[bool] = None
+
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
- ["discounts", "is_base", "deferred_for_trial", "effective_period"]
+ ["discounts", "deferred_for_trial", "effective_period", "is_base"]
)
serialized = handler(self)
m = {}
@@ -639,17 +645,6 @@ class BillingPreviewUpdateLineItem(BaseModel):
return m
-class BillingPreviewUpdateCreditTypedDict(TypedDict):
- amount: float
- description: str
-
-
-class BillingPreviewUpdateCredit(BaseModel):
- amount: float
-
- description: str
-
-
class BillingPreviewUpdateNextCycleDiscountTypedDict(TypedDict):
amount_off: float
percent_off: NotRequired[float]
@@ -700,13 +695,13 @@ class BillingPreviewUpdateNextCycleLineItemTypedDict(TypedDict):
title: str
description: str
amount: float
+ plan_id: str
total_quantity: float
paid_quantity: float
- plan_id: str
discounts: NotRequired[List[BillingPreviewUpdateNextCycleDiscountTypedDict]]
- is_base: NotRequired[bool]
deferred_for_trial: NotRequired[bool]
effective_period: NotRequired[BillingPreviewUpdateNextCycleEffectivePeriodTypedDict]
+ is_base: NotRequired[bool]
class BillingPreviewUpdateNextCycleLineItem(BaseModel):
@@ -716,24 +711,24 @@ class BillingPreviewUpdateNextCycleLineItem(BaseModel):
amount: float
+ plan_id: str
+
total_quantity: float
paid_quantity: float
- plan_id: str
-
discounts: Optional[List[BillingPreviewUpdateNextCycleDiscount]] = None
- is_base: Optional[bool] = None
-
deferred_for_trial: Optional[bool] = None
effective_period: Optional[BillingPreviewUpdateNextCycleEffectivePeriod] = None
+ is_base: Optional[bool] = None
+
@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = set(
- ["discounts", "is_base", "deferred_for_trial", "effective_period"]
+ ["discounts", "deferred_for_trial", "effective_period", "is_base"]
)
serialized = handler(self)
m = {}
@@ -772,7 +767,6 @@ class BillingPreviewUpdateResponseTypedDict(TypedDict):
currency: str
period_start: NotRequired[float]
period_end: NotRequired[float]
- credit: NotRequired[BillingPreviewUpdateCreditTypedDict]
next_cycle: NotRequired[BillingPreviewUpdateNextCycleTypedDict]
@@ -791,13 +785,11 @@ class BillingPreviewUpdateResponse(BaseModel):
period_end: Optional[float] = None
- credit: Optional[BillingPreviewUpdateCredit] = None
-
next_cycle: Optional[BillingPreviewUpdateNextCycle] = None
@model_serializer(mode="wrap")
def serialize_model(self, handler):
- optional_fields = set(["period_start", "period_end", "credit", "next_cycle"])
+ optional_fields = set(["period_start", "period_end", "next_cycle"])
serialized = handler(self)
m = {}
diff --git a/others/python-sdk/src/autumn_sdk/models/billingupdateop.py b/others/python-sdk/src/autumn_sdk/models/billingupdateop.py
index cf29ffebe..04c0e11b2 100644
--- a/others/python-sdk/src/autumn_sdk/models/billingupdateop.py
+++ b/others/python-sdk/src/autumn_sdk/models/billingupdateop.py
@@ -377,11 +377,15 @@ class BillingUpdateItem(BaseModel):
class BillingUpdateCustomizeTypedDict(TypedDict):
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
+
price: NotRequired[Nullable[BillingUpdatePriceTypedDict]]
items: NotRequired[List[BillingUpdateItemTypedDict]]
class BillingUpdateCustomize(BaseModel):
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
+
price: OptionalNullable[BillingUpdatePrice] = UNSET
items: Optional[List[BillingUpdateItem]] = None
@@ -414,20 +418,20 @@ class BillingUpdateCustomize(BaseModel):
class BillingUpdateInvoiceModeTypedDict(TypedDict):
enabled: bool
- enable_product_immediately: NotRequired[bool]
- finalize_invoice: NotRequired[bool]
+ enable_plan_immediately: NotRequired[bool]
+ finalize: NotRequired[bool]
class BillingUpdateInvoiceMode(BaseModel):
enabled: bool
- enable_product_immediately: Optional[bool] = False
+ enable_plan_immediately: Optional[bool] = False
- finalize_invoice: Optional[bool] = True
+ finalize: Optional[bool] = True
@model_serializer(mode="wrap")
def serialize_model(self, handler):
- optional_fields = set(["enable_product_immediately", "finalize_invoice"])
+ optional_fields = set(["enable_plan_immediately", "finalize"])
serialized = handler(self)
m = {}
@@ -465,9 +469,11 @@ class BillingUpdateRequestTypedDict(TypedDict):
]
r"""If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan."""
version: NotRequired[float]
+ r"""The version of the plan to attach."""
free_trial: NotRequired[Nullable[BillingUpdateFreeTrialTypedDict]]
customize: NotRequired[BillingUpdateCustomizeTypedDict]
- plan_id: NotRequired[Nullable[str]]
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
+ plan_id: NotRequired[str]
invoice_mode: NotRequired[BillingUpdateInvoiceModeTypedDict]
cancel_action: NotRequired[BillingUpdateCancelAction]
billing_behavior: NotRequired[BillingUpdateBillingBehavior]
@@ -484,12 +490,14 @@ class BillingUpdateRequest(BaseModel):
r"""If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan."""
version: Optional[float] = None
+ r"""The version of the plan to attach."""
free_trial: OptionalNullable[BillingUpdateFreeTrial] = UNSET
customize: Optional[BillingUpdateCustomize] = None
+ r"""Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both."""
- plan_id: OptionalNullable[str] = UNSET
+ plan_id: Optional[str] = None
invoice_mode: Optional[BillingUpdateInvoiceMode] = None
@@ -512,9 +520,7 @@ class BillingUpdateRequest(BaseModel):
"billing_behavior",
]
)
- nullable_fields = set(
- ["entity_id", "feature_quantities", "free_trial", "plan_id"]
- )
+ nullable_fields = set(["entity_id", "feature_quantities", "free_trial"])
serialized = handler(self)
m = {}
diff --git a/others/python-sdk/src/autumn_sdk/models/customer.py b/others/python-sdk/src/autumn_sdk/models/customer.py
index dfdbb48a3..91ead7f80 100644
--- a/others/python-sdk/src/autumn_sdk/models/customer.py
+++ b/others/python-sdk/src/autumn_sdk/models/customer.py
@@ -10,12 +10,9 @@ from autumn_sdk.types import (
UNSET_SENTINEL,
UnrecognizedStr,
)
-from autumn_sdk.utils import validate_const
-import pydantic
from pydantic import model_serializer
-from pydantic.functional_validators import AfterValidator
from typing import Any, Dict, List, Literal, Optional, Union
-from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
+from typing_extensions import NotRequired, TypeAliasType, TypedDict
CustomerEnv = Union[
@@ -408,7 +405,6 @@ class BreakdownTypedDict(TypedDict):
reset: Nullable[CustomerResetTypedDict]
price: Nullable[CustomerPriceTypedDict]
expires_at: Nullable[float]
- object: Literal["balance_breakdown"]
id: NotRequired[str]
@@ -431,14 +427,6 @@ class Breakdown(BaseModel):
expires_at: Nullable[float]
- object: Annotated[
- Annotated[
- Literal["balance_breakdown"],
- AfterValidator(validate_const("balance_breakdown")),
- ],
- pydantic.Field(alias="object"),
- ] = "balance_breakdown"
-
id: Optional[str] = ""
@model_serializer(mode="wrap")
@@ -487,7 +475,6 @@ class BalancesTypedDict(TypedDict):
overage_allowed: bool
max_purchase: Nullable[float]
next_reset_at: Nullable[float]
- object: Literal["balance"]
feature: NotRequired[CustomerFeatureTypedDict]
breakdown: NotRequired[List[BreakdownTypedDict]]
rollovers: NotRequired[List[CustomerRolloverTypedDict]]
@@ -510,11 +497,6 @@ class Balances(BaseModel):
next_reset_at: Nullable[float]
- object: Annotated[
- Annotated[Literal["balance"], AfterValidator(validate_const("balance"))],
- pydantic.Field(alias="object"),
- ] = "balance"
-
feature: Optional[CustomerFeature] = None
breakdown: Optional[List[Breakdown]] = None
@@ -1035,13 +1017,3 @@ class Customer(BaseModel):
m[k] = val
return m
-
-
-try:
- Breakdown.model_rebuild()
-except NameError:
- pass
-try:
- Balances.model_rebuild()
-except NameError:
- pass
diff --git a/others/python-sdk/src/autumn_sdk/models/listcustomersop.py b/others/python-sdk/src/autumn_sdk/models/listcustomersop.py
index 6ea1333bd..7be0ab37e 100644
--- a/others/python-sdk/src/autumn_sdk/models/listcustomersop.py
+++ b/others/python-sdk/src/autumn_sdk/models/listcustomersop.py
@@ -10,10 +10,9 @@ from autumn_sdk.types import (
UNSET_SENTINEL,
UnrecognizedStr,
)
-from autumn_sdk.utils import FieldMetadata, HeaderMetadata, validate_const
+from autumn_sdk.utils import FieldMetadata, HeaderMetadata
import pydantic
from pydantic import model_serializer
-from pydantic.functional_validators import AfterValidator
from typing import Any, Dict, List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
@@ -528,7 +527,6 @@ class ListCustomersBreakdownTypedDict(TypedDict):
reset: Nullable[ListCustomersResetTypedDict]
price: Nullable[ListCustomersPriceTypedDict]
expires_at: Nullable[float]
- object: Literal["balance_breakdown"]
id: NotRequired[str]
@@ -551,14 +549,6 @@ class ListCustomersBreakdown(BaseModel):
expires_at: Nullable[float]
- object: Annotated[
- Annotated[
- Literal["balance_breakdown"],
- AfterValidator(validate_const("balance_breakdown")),
- ],
- pydantic.Field(alias="object"),
- ] = "balance_breakdown"
-
id: Optional[str] = ""
@model_serializer(mode="wrap")
@@ -607,7 +597,6 @@ class ListCustomersBalancesTypedDict(TypedDict):
overage_allowed: bool
max_purchase: Nullable[float]
next_reset_at: Nullable[float]
- object: Literal["balance"]
feature: NotRequired[ListCustomersFeatureTypedDict]
breakdown: NotRequired[List[ListCustomersBreakdownTypedDict]]
rollovers: NotRequired[List[ListCustomersRolloverTypedDict]]
@@ -630,11 +619,6 @@ class ListCustomersBalances(BaseModel):
next_reset_at: Nullable[float]
- object: Annotated[
- Annotated[Literal["balance"], AfterValidator(validate_const("balance"))],
- pydantic.Field(alias="object"),
- ] = "balance"
-
feature: Optional[ListCustomersFeature] = None
breakdown: Optional[List[ListCustomersBreakdown]] = None
@@ -772,13 +756,3 @@ class ListCustomersResponse(BaseModel):
total: float
r"""Total number of items returned in the current page"""
-
-
-try:
- ListCustomersBreakdown.model_rebuild()
-except NameError:
- pass
-try:
- ListCustomersBalances.model_rebuild()
-except NameError:
- pass
diff --git a/others/python-sdk/src/autumn_sdk/models/updatecustomerop.py b/others/python-sdk/src/autumn_sdk/models/updatecustomerop.py
index b6325b380..b501c3f8b 100644
--- a/others/python-sdk/src/autumn_sdk/models/updatecustomerop.py
+++ b/others/python-sdk/src/autumn_sdk/models/updatecustomerop.py
@@ -10,10 +10,9 @@ from autumn_sdk.types import (
UNSET_SENTINEL,
UnrecognizedStr,
)
-from autumn_sdk.utils import FieldMetadata, HeaderMetadata, validate_const
+from autumn_sdk.utils import FieldMetadata, HeaderMetadata
import pydantic
from pydantic import model_serializer
-from pydantic.functional_validators import AfterValidator
from typing import Any, Dict, List, Literal, Optional, Union
from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
@@ -518,7 +517,6 @@ class UpdateCustomerBreakdownTypedDict(TypedDict):
reset: Nullable[UpdateCustomerResetTypedDict]
price: Nullable[UpdateCustomerPriceTypedDict]
expires_at: Nullable[float]
- object: Literal["balance_breakdown"]
id: NotRequired[str]
@@ -541,14 +539,6 @@ class UpdateCustomerBreakdown(BaseModel):
expires_at: Nullable[float]
- object: Annotated[
- Annotated[
- Literal["balance_breakdown"],
- AfterValidator(validate_const("balance_breakdown")),
- ],
- pydantic.Field(alias="object"),
- ] = "balance_breakdown"
-
id: Optional[str] = ""
@model_serializer(mode="wrap")
@@ -597,7 +587,6 @@ class UpdateCustomerBalancesTypedDict(TypedDict):
overage_allowed: bool
max_purchase: Nullable[float]
next_reset_at: Nullable[float]
- object: Literal["balance"]
feature: NotRequired[UpdateCustomerFeatureTypedDict]
breakdown: NotRequired[List[UpdateCustomerBreakdownTypedDict]]
rollovers: NotRequired[List[UpdateCustomerRolloverTypedDict]]
@@ -620,11 +609,6 @@ class UpdateCustomerBalances(BaseModel):
next_reset_at: Nullable[float]
- object: Annotated[
- Annotated[Literal["balance"], AfterValidator(validate_const("balance"))],
- pydantic.Field(alias="object"),
- ] = "balance"
-
feature: Optional[UpdateCustomerFeature] = None
breakdown: Optional[List[UpdateCustomerBreakdown]] = None
@@ -732,13 +716,3 @@ class UpdateCustomerResponse(BaseModel):
m[k] = val
return m
-
-
-try:
- UpdateCustomerBreakdown.model_rebuild()
-except NameError:
- pass
-try:
- UpdateCustomerBalances.model_rebuild()
-except NameError:
- pass
diff --git a/others/python-sdk/uv.lock b/others/python-sdk/uv.lock
index 0043b3e56..0902ab85d 100644
--- a/others/python-sdk/uv.lock
+++ b/others/python-sdk/uv.lock
@@ -44,7 +44,7 @@ wheels = [
[[package]]
name = "autumn-sdk"
-version = "0.2.21"
+version = "0.2.22"
source = { editable = "." }
dependencies = [
{ name = "httpcore" },
diff --git a/package.json b/package.json
index 6b14d2b71..ab2aa5b7e 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"stripe": "19.3.0-beta.1",
"drizzle-orm": "0.43.1",
"drizzle-kit": "^0.31.1",
+ "tsgo": "npm:@typescript/native-preview@7.0.0-dev.20260218.1",
"@sentry/bun": "10.38.0",
"@clickhouse/client": "1.11.2",
"@date-fns/utc": "2.1.0",
diff --git a/packages/autumn-js/package.json b/packages/autumn-js/package.json
index a025d5653..36a10c392 100644
--- a/packages/autumn-js/package.json
+++ b/packages/autumn-js/package.json
@@ -86,6 +86,7 @@
"react-dom": "^19.1.0",
"stripe": "^18.3.0",
"tsup": "^8.4.0",
+ "tsgo": "catalog:",
"tsx": "^4.19.3",
"typescript": "^5.8.3"
},
diff --git a/packages/autumn-js/src/backend/core/handlers/executeRoute.ts b/packages/autumn-js/src/backend/core/handlers/executeRoute.ts
index fc5dd4776..2503fe13f 100644
--- a/packages/autumn-js/src/backend/core/handlers/executeRoute.ts
+++ b/packages/autumn-js/src/backend/core/handlers/executeRoute.ts
@@ -57,8 +57,6 @@ export const executeRoute = async ({
try {
const result = await route.customHandler({ autumn, identity, body });
- console.log("result", result);
-
// If customHandler returns BackendResult, use it directly
if (isBackendResult(result)) {
return result;
diff --git a/packages/autumn-js/src/backend/core/routes/routeConfigs.ts b/packages/autumn-js/src/backend/core/routes/routeConfigs.ts
index 8bce83211..45b766bb8 100644
--- a/packages/autumn-js/src/backend/core/routes/routeConfigs.ts
+++ b/packages/autumn-js/src/backend/core/routes/routeConfigs.ts
@@ -35,10 +35,14 @@ export const routeConfigs: RouteDefinition[] = [
}
// Build args and call SDK
+ const existingExpand = Array.isArray(sanitizedBody.expand)
+ ? sanitizedBody.expand
+ : [];
const args = {
customerId: identity.customerId,
...identity.customerData,
...sanitizedBody,
+ expand: [...existingExpand, "balances.feature"],
};
return autumn.customers.getOrCreate(args);
},
diff --git a/packages/autumn-js/src/generated/billingAttachSchemas.ts b/packages/autumn-js/src/generated/billingAttachSchemas.ts
index 588007166..a69366f22 100644
--- a/packages/autumn-js/src/generated/billingAttachSchemas.ts
+++ b/packages/autumn-js/src/generated/billingAttachSchemas.ts
@@ -20,8 +20,8 @@ export const billingAttachTierSchema = z.object({
export const billingAttachInvoiceModeSchema = z.object({
enabled: z.boolean(),
- enableProductImmediately: z.union([z.boolean(), z.undefined()]).optional(),
- finalizeInvoice: z.union([z.boolean(), z.undefined()]).optional(),
+ enablePlanImmediately: z.union([z.boolean(), z.undefined()]).optional(),
+ finalize: z.union([z.boolean(), z.undefined()]).optional(),
});
export const billingAttachDiscount2Schema = z.object({
@@ -126,8 +126,8 @@ export const billingAttachCustomizeOutboundSchema = z.object({
export const billingAttachInvoiceModeOutboundSchema = z.object({
enabled: z.boolean(),
- enable_product_immediately: z.boolean(),
- finalize_invoice: z.boolean(),
+ enable_plan_immediately: z.boolean(),
+ finalize: z.boolean(),
});
export const billingAttachDiscount2OutboundSchema = z.object({
diff --git a/packages/autumn-js/src/react/hooks/internal/checkUtils.ts b/packages/autumn-js/src/react/hooks/internal/checkUtils.ts
index 7f2405406..bc205c293 100644
--- a/packages/autumn-js/src/react/hooks/internal/checkUtils.ts
+++ b/packages/autumn-js/src/react/hooks/internal/checkUtils.ts
@@ -1,5 +1,10 @@
import type { BalancesCheckResponse, Customer } from "@useautumn/sdk";
-import type { CheckParams } from "../../../types";
+import {
+ type ApiBalanceInput,
+ apiBalanceToAllowed,
+} from "../../../../../../shared/api/customers/cusFeatures/utils/convert/apiBalanceToAllowed";
+import type { ClientCheckParams } from "../../../types/params";
+import { toSnakeCase } from "../../../utils/toSnakeCase";
type CustomerBalance = Customer["balances"][string];
@@ -13,42 +18,6 @@ const resolveRequiredBalance = ({
return requiredBalance ?? requiredQuantity ?? 1;
};
-const getAvailableOverage = ({
- balance,
-}: {
- balance: CustomerBalance;
-}): number | undefined => {
- const breakdown = balance.breakdown ?? [];
- const usageBasedBreakdown = breakdown.filter(
- (item) => item.price?.billingMethod === "usage_based",
- );
-
- if (usageBasedBreakdown.length === 0) {
- return balance.maxPurchase ?? undefined;
- }
-
- let maxOverage = 0;
- let overageUsage = 0;
-
- for (const item of usageBasedBreakdown) {
- if (item.price?.maxPurchase === null) {
- return undefined;
- }
-
- if (item.price?.maxPurchase !== undefined) {
- maxOverage += item.price.maxPurchase;
- }
-
- const overage = Math.max(
- 0,
- item.usage - item.includedGrant - item.prepaidGrant,
- );
- overageUsage += overage;
- }
-
- return Math.max(0, maxOverage - overageUsage);
-};
-
const isBalanceAllowed = ({
balance,
requiredBalance,
@@ -56,28 +25,19 @@ const isBalanceAllowed = ({
balance: CustomerBalance;
requiredBalance: number;
}) => {
- if (balance.feature?.type === "boolean") {
- return true;
- }
+ const snakeCaseBalance = toSnakeCase({
+ obj: balance,
+ }) as unknown as ApiBalanceInput;
- if (balance.unlimited) {
- return true;
- }
+ const featureForCheck = {
+ type: balance.feature?.type ?? "metered",
+ } as Parameters[0]["feature"];
- if (requiredBalance < 0) {
- return true;
- }
-
- if (balance.overageAllowed) {
- const availableOverage = getAvailableOverage({ balance });
- if (availableOverage === undefined) {
- return true;
- }
-
- return balance.remaining + availableOverage >= requiredBalance;
- }
-
- return balance.remaining >= requiredBalance;
+ return apiBalanceToAllowed({
+ apiBalance: snakeCaseBalance,
+ feature: featureForCheck,
+ requiredBalance,
+ });
};
const getCreditBalanceRequired = ({
@@ -102,7 +62,7 @@ const getFeatureCheckResponse = ({
params,
}: {
customer: Customer;
- params: CheckParams;
+ params: ClientCheckParams;
}): BalancesCheckResponse => {
const featureId = params.featureId;
if (!featureId) {
@@ -201,56 +161,12 @@ const getFeatureCheckResponse = ({
};
};
-const getProductCheckResponse = ({
- customer,
- params,
-}: {
- customer: Customer;
- params: CheckParams;
-}): BalancesCheckResponse => {
- const productId = params.productId;
- const requiredBalance = resolveRequiredBalance({
- requiredBalance: params.requiredBalance,
- requiredQuantity: params.requiredQuantity,
- });
-
- if (!productId) {
- return {
- allowed: false,
- customerId: customer.id ?? "",
- entityId: params.entityId ?? null,
- requiredBalance,
- balance: null,
- };
- }
-
- const now = Date.now();
- const hasActiveSubscription = customer.subscriptions.some(
- (subscription) =>
- subscription.planId === productId &&
- (subscription.status === "active" || subscription.status === "scheduled"),
- );
- const hasActivePurchase = customer.purchases.some(
- (purchase) =>
- purchase.planId === productId &&
- (purchase.expiresAt === null || purchase.expiresAt > now),
- );
-
- return {
- allowed: hasActiveSubscription || hasActivePurchase,
- customerId: customer.id ?? "",
- entityId: params.entityId ?? null,
- requiredBalance,
- balance: null,
- };
-};
-
export const getLocalCheckResponse = ({
customer,
params,
}: {
customer: Customer | null;
- params: CheckParams;
+ params: ClientCheckParams;
}): BalancesCheckResponse => {
if (!customer) {
return {
@@ -265,12 +181,8 @@ export const getLocalCheckResponse = ({
};
}
- if (!params.featureId && !params.productId) {
- throw new Error("check() requires either featureId or productId");
- }
-
- if (params.productId && !params.featureId) {
- return getProductCheckResponse({ customer, params });
+ if (!params.featureId) {
+ throw new Error("check() requires featureId");
}
return getFeatureCheckResponse({ customer, params });
diff --git a/packages/autumn-js/src/types/params.ts b/packages/autumn-js/src/types/params.ts
index 9c85354b2..e59bb4eee 100644
--- a/packages/autumn-js/src/types/params.ts
+++ b/packages/autumn-js/src/types/params.ts
@@ -1,13 +1,12 @@
-import type { BillingAttachRequest, CustomerExpand } from "@useautumn/sdk";
+import type {
+ BalancesCheckRequest,
+ BillingAttachRequest,
+ CustomerExpand,
+} from "@useautumn/sdk";
/** Fields injected by backend - stripped from frontend params */
export type ProtectedFields = "customerId" | "customerData";
-/** Attach params without protected fields (for frontend use) */
-export type ClientAttachParams = Omit & {
- openInNewTab?: boolean;
-};
-
/** GetOrCreateCustomer params without protected fields (for frontend use) */
export type ClientGetOrCreateCustomerParams = {
errorOnNotFound?: boolean;
@@ -15,10 +14,12 @@ export type ClientGetOrCreateCustomerParams = {
};
/** Check params for local balance check */
-export type CheckParams = {
- featureId?: string;
- productId?: string;
- entityId?: string;
- requiredBalance?: number;
- requiredQuantity?: number;
+export type ClientCheckParams = Omit;
+
+/** Attach params without protected fields (for frontend use) */
+export type ClientAttachParams = Omit<
+ BillingAttachRequest,
+ ProtectedFields | "sendEvent" | "properties" | "withPreview"
+> & {
+ openInNewTab?: boolean;
};
diff --git a/packages/openapi/openapi-stripped.yml b/packages/openapi/openapi-stripped.yml
index 6928a6d89..0c88090b1 100644
--- a/packages/openapi/openapi-stripped.yml
+++ b/packages/openapi/openapi-stripped.yml
@@ -198,8 +198,6 @@ components:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -275,8 +273,6 @@ components:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -361,7 +357,6 @@ components:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -384,7 +379,6 @@ components:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -1222,8 +1216,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -1299,8 +1291,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -1384,7 +1374,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -1407,7 +1396,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -1649,8 +1637,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -1726,8 +1712,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -1812,7 +1796,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -1835,7 +1818,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -1984,6 +1966,7 @@ paths:
up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -2130,6 +2113,8 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the
+ plan, the items in the plan, or both.
plan_id:
type: string
invoice_mode:
@@ -2137,10 +2122,10 @@ paths:
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -2283,6 +2268,7 @@ paths:
up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -2429,6 +2415,8 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the
+ plan, the items in the plan, or both.
plan_id:
type: string
invoice_mode:
@@ -2436,10 +2424,10 @@ paths:
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -2518,14 +2506,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -2538,13 +2524,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
total:
type: number
currency:
@@ -2553,16 +2541,6 @@ paths:
type: number
period_end:
type: number
- credit:
- type: object
- properties:
- amount:
- type: number
- description:
- type: string
- required:
- - amount
- - description
next_cycle:
type: object
properties:
@@ -2597,14 +2575,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -2617,13 +2593,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
required:
- starts_at
- total
@@ -2654,8 +2632,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -2731,8 +2707,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -2816,7 +2790,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -2839,7 +2812,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -2882,8 +2854,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -2959,8 +2929,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -3044,7 +3012,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -3067,7 +3034,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -3144,6 +3110,7 @@ paths:
up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -3290,19 +3257,19 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the
+ plan, the items in the plan, or both.
plan_id:
- anyOf:
- - type: string
- - type: "null"
+ type: string
invoice_mode:
type: object
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -3419,6 +3386,7 @@ paths:
up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -3565,19 +3533,19 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the
+ plan, the items in the plan, or both.
plan_id:
- anyOf:
- - type: string
- - type: "null"
+ type: string
invoice_mode:
type: object
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -3630,14 +3598,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -3650,13 +3616,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
total:
type: number
currency:
@@ -3665,16 +3633,6 @@ paths:
type: number
period_end:
type: number
- credit:
- type: object
- properties:
- amount:
- type: number
- description:
- type: string
- required:
- - amount
- - description
next_cycle:
type: object
properties:
@@ -3709,14 +3667,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -3729,13 +3685,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
required:
- starts_at
- total
@@ -4004,8 +3962,6 @@ paths:
anyOf:
- type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -4081,8 +4037,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -4167,7 +4121,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -4190,7 +4143,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -4611,8 +4563,6 @@ paths:
anyOf:
- type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -4688,8 +4638,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -4774,7 +4722,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -4797,7 +4744,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -4814,8 +4760,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -4891,8 +4835,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -4977,7 +4919,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -5000,7 +4941,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
diff --git a/packages/openapi/openapi.yml b/packages/openapi/openapi.yml
index c3846b79a..8381c0da6 100644
--- a/packages/openapi/openapi.yml
+++ b/packages/openapi/openapi.yml
@@ -198,8 +198,6 @@ components:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -275,8 +273,6 @@ components:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -361,7 +357,6 @@ components:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -384,7 +379,6 @@ components:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -1251,8 +1245,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -1328,8 +1320,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -1413,7 +1403,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -1436,7 +1425,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -1676,8 +1664,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -1753,8 +1739,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -1839,7 +1823,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -1862,7 +1845,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -1993,6 +1975,11 @@ paths:
this field to specify the quantity of each prepaid feature. This
quantity includes the included amount and billing units defined when
setting up the plan. (optional)
+
+ @param version - The version of the plan to attach. (optional)
+
+ @param customize - Customize the plan to attach. Can either override the
+ price of the plan, the items in the plan, or both. (optional)
tags:
- billing
requestBody:
@@ -2032,6 +2019,7 @@ paths:
up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -2178,6 +2166,8 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the
+ plan, the items in the plan, or both.
plan_id:
type: string
invoice_mode:
@@ -2185,10 +2175,10 @@ paths:
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -2331,6 +2321,7 @@ paths:
up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -2477,6 +2468,8 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the
+ plan, the items in the plan, or both.
plan_id:
type: string
invoice_mode:
@@ -2484,10 +2477,10 @@ paths:
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -2566,14 +2559,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -2586,13 +2577,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
total:
type: number
currency:
@@ -2601,16 +2594,6 @@ paths:
type: number
period_end:
type: number
- credit:
- type: object
- properties:
- amount:
- type: number
- description:
- type: string
- required:
- - amount
- - description
next_cycle:
type: object
properties:
@@ -2645,14 +2628,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -2665,13 +2646,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
required:
- starts_at
- total
@@ -2702,8 +2685,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -2779,8 +2760,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -2864,7 +2843,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -2887,7 +2865,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -2930,8 +2907,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -3007,8 +2982,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -3092,7 +3065,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -3115,7 +3087,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -3192,6 +3163,7 @@ paths:
up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -3338,19 +3310,19 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the
+ plan, the items in the plan, or both.
plan_id:
- anyOf:
- - type: string
- - type: "null"
+ type: string
invoice_mode:
type: object
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -3467,6 +3439,7 @@ paths:
up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -3613,19 +3586,19 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the
+ plan, the items in the plan, or both.
plan_id:
- anyOf:
- - type: string
- - type: "null"
+ type: string
invoice_mode:
type: object
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -3678,14 +3651,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -3698,13 +3669,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
total:
type: number
currency:
@@ -3713,16 +3686,6 @@ paths:
type: number
period_end:
type: number
- credit:
- type: object
- properties:
- amount:
- type: number
- description:
- type: string
- required:
- - amount
- - description
next_cycle:
type: object
properties:
@@ -3757,14 +3720,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -3777,13 +3738,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
required:
- starts_at
- total
@@ -4052,8 +4015,6 @@ paths:
anyOf:
- type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -4129,8 +4090,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -4215,7 +4174,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -4238,7 +4196,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -4659,8 +4616,6 @@ paths:
anyOf:
- type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -4736,8 +4691,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -4822,7 +4775,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -4845,7 +4797,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -4862,8 +4813,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -4939,8 +4888,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -5025,7 +4972,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -5048,7 +4994,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
diff --git a/packages/openapi/package.json b/packages/openapi/package.json
index 206465515..0a7fbddb1 100644
--- a/packages/openapi/package.json
+++ b/packages/openapi/package.json
@@ -19,6 +19,7 @@
},
"devDependencies": {
"@types/bun": "latest",
- "@types/node": "^24.0.3"
+ "@types/node": "^24.0.3",
+ "tsgo": "catalog:"
}
}
diff --git a/packages/sdk/.speakeasy/gen.lock b/packages/sdk/.speakeasy/gen.lock
index a337d2e12..fb4ff8162 100644
--- a/packages/sdk/.speakeasy/gen.lock
+++ b/packages/sdk/.speakeasy/gen.lock
@@ -1,16 +1,16 @@
lockVersion: 2.0.0
id: 7b300647-cd76-49e9-bf77-7d1bf5446d66
management:
- docChecksum: 9b26038b0f2a1ba63acb8bafb2c178fd
+ docChecksum: 2599354f8d9fec10f95f15d1c9096b1d
docVersion: 2.1.0
speakeasyVersion: 1.719.0
generationVersion: 2.824.1
- releaseVersion: 0.8.25
- configChecksum: 455706e7c673fa1444e7f4db4ca90c5f
+ releaseVersion: 0.8.26
+ configChecksum: b6c3c32777c82006d83440f8a980d2af
persistentEdits:
- generation_id: 74144e98-8f07-4222-a25c-9a40e8f1479b
- pristine_commit_hash: 57e185a8cc44e8c4c4332fae73e8f5d06bb89182
- pristine_tree_hash: 198ed5d2ca32f133be3b23183072b8cf290083ac
+ generation_id: ddc35772-b2eb-4820-b753-62525d82a8eb
+ pristine_commit_hash: 60a4122091e83ecafdd2621fef72c448d614bdf2
+ pristine_tree_hash: eea50d885bff1b9f808c6350c2e0ad0b877155a9
features:
typescript:
additionalDependencies: 0.1.0
@@ -92,16 +92,16 @@ trackedFiles:
pristine_git_object: 1a9b2c56cbffafe4f9ce50040d67cd01cc9713ad
docs/models/balances-check-balance.md:
id: 2617c1dd40dc
- last_write_checksum: sha1:b6ea15452d02660ba7d87e1eca23a1d3a4315499
- pristine_git_object: 927b0c458fad1b8592a033f948d031cae34a380f
+ last_write_checksum: sha1:882a4db4be46b51f0e0bbb565b41ee2f650b318c
+ pristine_git_object: 5db52bece2fb9d7552625a88b9ca0d56605be4dd
docs/models/balances-check-billing-method.md:
id: 583834db21cd
last_write_checksum: sha1:7d77b700b2ae048d475a184872eb5d28a97b6739
pristine_git_object: d7269db25959238ddb6f8c668389c092078db207
docs/models/balances-check-breakdown.md:
id: de24bb88bcba
- last_write_checksum: sha1:2beb4afa766570ace9320732a452e7c4cbd6e626
- pristine_git_object: d48fa230ac24414d710ef9e86d62f782f7b156e6
+ last_write_checksum: sha1:391725266f289e1957c1e64efe73e02ee316caf9
+ pristine_git_object: a4f2014656b6e3d5e46c239db56099ad94fd1195
docs/models/balances-check-credit-schema.md:
id: c589ed3caba6
last_write_checksum: sha1:2bb946ab9f2ca06de9ec86b6f0339ef4d8175667
@@ -152,8 +152,8 @@ trackedFiles:
pristine_git_object: f0bffa7d66f032f26856f1c39d97c8565c2e3b47
docs/models/balances-check-response.md:
id: bd48955a780a
- last_write_checksum: sha1:7211c396d72762a4dc9079086dbcab7d89500b3b
- pristine_git_object: 260858a12e1f3884bcfc8ff0c5fbaa42fa2dad29
+ last_write_checksum: sha1:1f3f7c9ac94fdfc6cd2420fc8aef65797e127abe
+ pristine_git_object: 13c90b2a54df4c30caf755d899adac4ab7fc2749
docs/models/balances-check-scenario.md:
id: aefabfed1a3d
last_write_checksum: sha1:0c14ca643df4a726f3aaf30f5c2c1caa3cad2d72
@@ -188,8 +188,8 @@ trackedFiles:
pristine_git_object: 29cb6a93841aafe72287fee85a49cb3fbcd092e2
docs/models/balances-track-balance-breakdown.md:
id: bfa6c8f0598f
- last_write_checksum: sha1:c80cefa9fc6a091d43b5ab66f4ed3df5843b38ed
- pristine_git_object: e3afcde4144dfe0140561a3585a987e52340908b
+ last_write_checksum: sha1:11cd84de20bebedd8614835f2be1bf41609a2d70
+ pristine_git_object: c4ccc9979aa3750535aebbc726d9228f1b8ef2d2
docs/models/balances-track-balance-credit-schema.md:
id: 5529602a29be
last_write_checksum: sha1:a4da519e6607287c1da2115032df1be457a27eb8
@@ -236,20 +236,20 @@ trackedFiles:
pristine_git_object: 882d9d3dc934b7ed7c4fedc1874a78a72081e2d8
docs/models/balances-track-balance.md:
id: a63fed0309ba
- last_write_checksum: sha1:f6a293ca8449b8d210e299590f0fbd34ddbdcf98
- pristine_git_object: 52c41561b9c8e72359420533558865b3862ebe34
+ last_write_checksum: sha1:910bdad0ad4ade89f612abc291732723fe079d50
+ pristine_git_object: 932237fa5f2929d6d1dd872afe99c94319204535
docs/models/balances-track-balances.md:
id: 021ee4a29341
- last_write_checksum: sha1:a69ebfbec0aa40c774ea8bf90e2b25816fb91626
- pristine_git_object: 64c61a7b593f5de89c1c9ec772ce343393a7fa1d
+ last_write_checksum: sha1:bab8be67683b4da8c4e68fb98fcc2b45b05b41a8
+ pristine_git_object: a19a265977811693320f0e11d414d9202a5da65b
docs/models/balances-track-billing-method.md:
id: a6b8fad7a6ff
last_write_checksum: sha1:7b2aecd489e7876dc1dc4b7b90010b915691b996
pristine_git_object: 22f323f1f684d0e45189794dcc59954a3be194d0
docs/models/balances-track-breakdown.md:
id: 9889d0b0d3a3
- last_write_checksum: sha1:1b93e28f63b721a108af735a320456bcb58374c4
- pristine_git_object: 6bdf25b7f4450f3518f623439e36f5fec51ae49c
+ last_write_checksum: sha1:6a24d8a6e6432216a3989241265b2bb120f89111
+ pristine_git_object: e11ae4e8ad25391630930694d47a2658d17a0f6c
docs/models/balances-track-credit-schema.md:
id: d719ea66b30f
last_write_checksum: sha1:60385b355cf8a70cedb250f948cf3b195715ea27
@@ -288,8 +288,8 @@ trackedFiles:
pristine_git_object: d6ce345bb4647a172589c205cefe33d1c49d7570
docs/models/balances-track-response.md:
id: 1505ee74210a
- last_write_checksum: sha1:c0f6b3d7f04110e8c7ed3729e8f19d91508500af
- pristine_git_object: 298ff88b2a8c75792576febf9c3ee655e04dca69
+ last_write_checksum: sha1:7cabd4dedfdf30d7db034e0a8df088d5e2487af4
+ pristine_git_object: ee6fc647bf340a621d98ecd83a923ce5c7bc8004
docs/models/balances-track-rollover.md:
id: f2a1b55f4f24
last_write_checksum: sha1:412f352852450e765e62aa33fda87a155804e483
@@ -324,8 +324,8 @@ trackedFiles:
pristine_git_object: ab7956e12dcd465a3823a93285b175fdc2bbd582
docs/models/balances.md:
id: 2f042cf3d0aa
- last_write_checksum: sha1:961df8a92770eefa6e3761b58dc0f8119e43ff37
- pristine_git_object: 165def0fce7a0dfeed684b9c15322003eb879dfa
+ last_write_checksum: sha1:9a9c2a84d066247446703b35af6efe14f5df1cb3
+ pristine_git_object: fd59d3018e8e84c9fcdf744a438072eff75638b6
docs/models/billing-attach-billing-behavior.md:
id: 69bb81e8c7dc
last_write_checksum: sha1:09f6094796a2f12ee8a2c68c8017b476fd54c086
@@ -340,8 +340,8 @@ trackedFiles:
pristine_git_object: bcc209eac8b4b53dc8977de477b10736462a6750
docs/models/billing-attach-customize.md:
id: fdbcde378958
- last_write_checksum: sha1:c57ddf7091160673850d174c73a94aafe12d3eb5
- pristine_git_object: 8769359a342520e11101d1dd6b994525016d52ef
+ last_write_checksum: sha1:7bfa0fc1444dc4916482edc359762fcb84b0a41a
+ pristine_git_object: f3eda471186b21392e9d1bc031ae3f6307d59233
docs/models/billing-attach-discount-union.md:
id: 01f04cffd3dd
last_write_checksum: sha1:99f3732c455c922da151a6e6c7a20f5bcf659d4b
@@ -376,8 +376,8 @@ trackedFiles:
pristine_git_object: e33e3d806a642d9b936d867e0eec217edda9199f
docs/models/billing-attach-invoice-mode.md:
id: 9cd0f26dd730
- last_write_checksum: sha1:57eb9b452bd34bf32b95e710ab1e470df1860be6
- pristine_git_object: 6a80b61ff7dc1608f596b7a38ba93b2414af8485
+ last_write_checksum: sha1:1748f7a34350dea3662e548f8edc6bd4d95c812f
+ pristine_git_object: 1a41dead8e8bd4a813724e9835328f73657eab37
docs/models/billing-attach-invoice.md:
id: dc71d6a68aab
last_write_checksum: sha1:c06f7dc2fbb36310c43da2f99ad72082e5e3373f
@@ -424,8 +424,8 @@ trackedFiles:
pristine_git_object: a458416b2fd8ef52ebaf49c4c37d35cdc192e4be
docs/models/billing-attach-request.md:
id: b6f36e00f4c1
- last_write_checksum: sha1:024a9d4bf2bf901a9a33f241a9765ec32a3fe6df
- pristine_git_object: 6bfaf425b902076b25d2fe3750dac6a78e522272
+ last_write_checksum: sha1:bd2bca7e8167796b1469d9eb956c160106f9dc9d
+ pristine_git_object: 6115d4c5cb713a6a0a4fc1714bb40eb9e39905f6
docs/models/billing-attach-required-action.md:
id: 8ba37f3620e5
last_write_checksum: sha1:7063b6fd636642582b41505c53e0fd925839f987
@@ -462,18 +462,14 @@ trackedFiles:
id: 1495a9fc1816
last_write_checksum: sha1:85ca489229e4fd71fb11e150d367915c9417e7ac
pristine_git_object: ca72a1af609666308d5289e00c53aee7a46afb82
- docs/models/billing-preview-attach-credit.md:
- id: 2f7dd9d1bd0b
- last_write_checksum: sha1:e97d009f76a98c0c6deff27669303afdf0f3fbbe
- pristine_git_object: 9d7743e943a74e86d09b5316c314352289739690
docs/models/billing-preview-attach-customize-reset.md:
id: 08b7672cceb1
last_write_checksum: sha1:012d6ca68c8304d2970da533c2fcdd47c3a474de
pristine_git_object: 417e782695458da4e3d20d842557e3cde0d8165d
docs/models/billing-preview-attach-customize.md:
id: db4350a07b4a
- last_write_checksum: sha1:0a665c0882e5d27d9428dbf996acf60f117b95b9
- pristine_git_object: d10c255ae6fd1af91041edc5da5d752d5e241c5a
+ last_write_checksum: sha1:7ca078b89d1ddb807de370c1cb33fa9c7f311827
+ pristine_git_object: cbec9da518bc8bce53df143487191d092a8be704
docs/models/billing-preview-attach-discount-request1.md:
id: b7463c8fcc7e
last_write_checksum: sha1:72de3ad51a1b6baa1e76b49c85d36cbe6be4c56d
@@ -516,8 +512,8 @@ trackedFiles:
pristine_git_object: 39f8ffc2e65acf9add7aa452b0e13145699d88e3
docs/models/billing-preview-attach-invoice-mode.md:
id: "579551578440"
- last_write_checksum: sha1:3371297f697da8192218fea2b9fba18c70a456c9
- pristine_git_object: f1524f24c5407b552b1f4e2988e2747b13ea31c2
+ last_write_checksum: sha1:3ee9de3e1a1d3f8a33333f4a95f72532de5ff929
+ pristine_git_object: 9ed84d9ceedd9d43de863044f7902ed81e199574
docs/models/billing-preview-attach-item-price-interval.md:
id: 9292f3405760
last_write_checksum: sha1:7196e1880b16f567598337a0cb543cf4ca2b9985
@@ -536,8 +532,8 @@ trackedFiles:
pristine_git_object: 8bad9add40c4cbf0ce3f01d0d4291c8723d8034b
docs/models/billing-preview-attach-line-item.md:
id: ee96cc430bdf
- last_write_checksum: sha1:e259f42764feea773fd951cc908888accd1132bc
- pristine_git_object: bbb676d956f6278fd67535e8cbdc0d36941ff389
+ last_write_checksum: sha1:7b5558d14250b8866c8046b751229956f1b488cc
+ pristine_git_object: cabb85b7184469d0e4eb7b1c955bba9d99ebbef3
docs/models/billing-preview-attach-next-cycle-discount.md:
id: 0c48ff87c206
last_write_checksum: sha1:d0013ae39b392f8e57d1cd3ac3fcfde3f8f2673d
@@ -548,8 +544,8 @@ trackedFiles:
pristine_git_object: f08fff29f4eaff3516916bea3ea7986f1f48c24a
docs/models/billing-preview-attach-next-cycle-line-item.md:
id: 91e717af160b
- last_write_checksum: sha1:8e0cb3e74e755374cdea328471341c39a10a125a
- pristine_git_object: b844edb4179b05d6d56740136a2cab407a913e7b
+ last_write_checksum: sha1:7a9dd47f011f262a3f77a417f1821b9c4308fec9
+ pristine_git_object: d31f66e6273801a88fc176f76be1480255e3b31d
docs/models/billing-preview-attach-next-cycle.md:
id: 74850a3b3f53
last_write_checksum: sha1:5f0def9a42f509bd6207aa6244b330f33df50af1
@@ -584,12 +580,12 @@ trackedFiles:
pristine_git_object: 784a14506156879c0745ac8d9172f468fbeece98
docs/models/billing-preview-attach-request.md:
id: 3f00ff275eb9
- last_write_checksum: sha1:94e2531f9bdc85782a5004af3476b1da21f03813
- pristine_git_object: 6da57d0e064d5ba4e8478be9b5a0b4ab6fb25b2f
+ last_write_checksum: sha1:27d7fa29701311a9f8401f30a53a3ae49119143c
+ pristine_git_object: dd592a2f9ed74a081031b5d60fac41f8ce874c94
docs/models/billing-preview-attach-response.md:
id: 28169ccdb7ce
- last_write_checksum: sha1:e89231255e62adada9286a24d7f4bc063d66397c
- pristine_git_object: d13d67e3bb28c80374d69a4f28975116fcf43bc0
+ last_write_checksum: sha1:374bba5ebede36501fc1e0659cf098b52068ac0e
+ pristine_git_object: bea2b64d85a52436189f74b7b55d929069f4d7e3
docs/models/billing-preview-attach-rollover-request.md:
id: b64b48b2920a
last_write_checksum: sha1:6bf382304fde4646e1233fca8bba98f9e578297a
@@ -614,14 +610,10 @@ trackedFiles:
id: 84c691cb9224
last_write_checksum: sha1:2c927b75756dfa054e42bfa357ee74efd22171ed
pristine_git_object: 29380f328502e86965d828a21266e7fcc1f8f71b
- docs/models/billing-preview-update-credit.md:
- id: 3a266f3ae693
- last_write_checksum: sha1:92de11e58d47e65938c6d493fbd7124543284cbc
- pristine_git_object: adf2289fe11a27037157d3d3ab43a71d4bf569e0
docs/models/billing-preview-update-customize.md:
id: 9aea6b63543c
- last_write_checksum: sha1:3e059861be2b6456db96d6174e791b1294efd4e2
- pristine_git_object: abaa75e9e66e4c869e19574dce9ffb43cd5d4bf6
+ last_write_checksum: sha1:c766c53504776dada8d726769c70fbd5b02a84e7
+ pristine_git_object: c452501c4d3f26109ee32f8677b5c29d962486ae
docs/models/billing-preview-update-discount.md:
id: 1c01f60de9f7
last_write_checksum: sha1:135f79ccda4e8ce197ba4a0db58b4a36b05ac536
@@ -652,8 +644,8 @@ trackedFiles:
pristine_git_object: 729798893c6cbeaa8ea67671c9a591fbc20c3b01
docs/models/billing-preview-update-invoice-mode.md:
id: 3b23bf8970e5
- last_write_checksum: sha1:1dd6ae1568f10b177e035c56b68c5ca99e40c02c
- pristine_git_object: 7b502dc6cbe5ded6534cb111462020a2ce9630a6
+ last_write_checksum: sha1:e9baa60060fb27fe5458a77bf22daa173e7d65cc
+ pristine_git_object: e11c822a5bb5bec80d5e84a9541cc38041ce33a3
docs/models/billing-preview-update-item-price-interval.md:
id: fb22f4118c73
last_write_checksum: sha1:e76e6f8c053d78452ab5b28bd1a53e6e2e04a3a2
@@ -668,8 +660,8 @@ trackedFiles:
pristine_git_object: 69874c55c6a4e3e236c35a9084c69c8c911756d6
docs/models/billing-preview-update-line-item.md:
id: d647f3522082
- last_write_checksum: sha1:736ce30b9f3d023cec443a74c98e0eafd5403ba1
- pristine_git_object: 61b9b0355c1bfc7244b59ee6e1d77153cd647025
+ last_write_checksum: sha1:f88b8b1f40062efa2071058f361988d40c236e6c
+ pristine_git_object: 1ed943f4e07f70a2e53533bc18b475bb05f4e91c
docs/models/billing-preview-update-next-cycle-discount.md:
id: 9c3601f4d54f
last_write_checksum: sha1:396dabe7d30e31f233d6c2e197e6ef674e6302fc
@@ -680,12 +672,12 @@ trackedFiles:
pristine_git_object: 4a645d24eaca5511ab3d2b4a23b2f5c5bfcbb24f
docs/models/billing-preview-update-next-cycle-line-item.md:
id: 542fb852b4ae
- last_write_checksum: sha1:4e746403ac802a953e0a0b7dc845066884e4c9af
- pristine_git_object: 68c508b5019db30b614a415572f54f859f2ab81d
+ last_write_checksum: sha1:72a6ae263c17a2eaf259ec01c0514fff76e38ebd
+ pristine_git_object: 76d411dc08437fc30de3858266274b28def2c17d
docs/models/billing-preview-update-next-cycle.md:
id: 6036c027e884
- last_write_checksum: sha1:8aeec947a7a80d0b173b5f913ef2779c20c0507b
- pristine_git_object: ffc4ac84f71e55852d538374e682ce190c936f45
+ last_write_checksum: sha1:69ae45131c9d7288c58509330a560a5c8257e972
+ pristine_git_object: 3a02cabaf0e2b8340bcc8a52498583df1b8f340c
docs/models/billing-preview-update-on-decrease.md:
id: c1e80b9245b3
last_write_checksum: sha1:b77aa7b0df8d21104e35cd98e40c520c110a6780
@@ -708,8 +700,8 @@ trackedFiles:
pristine_git_object: 981563dc95fa105eaf903810acdf57d536287761
docs/models/billing-preview-update-request.md:
id: 5eb7bb9c4e4b
- last_write_checksum: sha1:31ab71fa2c1f690383362829cbfb22430c468ceb
- pristine_git_object: e2f0308fe57a3e34677b1bd5dfee848db87f7d49
+ last_write_checksum: sha1:e041d24f991ccfefdaf51023e140749a3eae7958
+ pristine_git_object: 07a22eeaad9210f81758e4dc5e8430a83e08b122
docs/models/billing-preview-update-reset-interval.md:
id: 453adf1acc00
last_write_checksum: sha1:acc6ae3f2a0d931d052d13dd6384339270065c94
@@ -720,8 +712,8 @@ trackedFiles:
pristine_git_object: 1c6ae89cce28249d170b684c6bd2e9e33f892efd
docs/models/billing-preview-update-response.md:
id: fb81ae40e654
- last_write_checksum: sha1:86642eff5b4c18b1a5b7b9fbfea10bbf256ea958
- pristine_git_object: e78bea29070f24d79746d32295baa745cd03b16b
+ last_write_checksum: sha1:84f2b9d5804e7155fbcaab11df9c796d288f1c71
+ pristine_git_object: 53925f7fde6ec1d9d20412aeb65c52bb950aacc9
docs/models/billing-preview-update-rollover.md:
id: d5c045d6805d
last_write_checksum: sha1:09a485f911c4795cfa7e4764da2a08f7404020aa
@@ -764,8 +756,8 @@ trackedFiles:
pristine_git_object: 0395a87548b4be60308a174558b5a83316575892
docs/models/billing-update-customize.md:
id: 533e2ca5e4bd
- last_write_checksum: sha1:cd4b0e2f48bfbdf8f4dbc2de51567fc5aa0a8201
- pristine_git_object: 5aab2d4567e33c0ab2922717d553b626f1ebefc6
+ last_write_checksum: sha1:2efd7c30b8caf828b782da4cb584982763312914
+ pristine_git_object: 3155a23f41866237cce1467ef8b360c12b4abb2c
docs/models/billing-update-duration-type.md:
id: f711ec227260
last_write_checksum: sha1:1f658a150a3f09c6a9779127d147b86643ea21af
@@ -788,8 +780,8 @@ trackedFiles:
pristine_git_object: a5ca2395c55d099fdc8ca0eb2ca7d93121cc36a3
docs/models/billing-update-invoice-mode.md:
id: 33eaf6fc88e5
- last_write_checksum: sha1:652d8c947e49e2cb8fdceb9fc12b383fcea983af
- pristine_git_object: b0d26a7c6a014dbf629b547e2dd86d2ffffeeaf5
+ last_write_checksum: sha1:0a1a226e00b716e08cde966896c19f69a9ed233b
+ pristine_git_object: 41a918bde1c4d93d4320d511da5037b9e419a527
docs/models/billing-update-invoice.md:
id: af93d501891d
last_write_checksum: sha1:682f8cbaa0f49befed72b184cde626b6f2bfdc03
@@ -828,8 +820,8 @@ trackedFiles:
pristine_git_object: d21ea7ddeec02d3d27542b7fe435fd4d3491f2bc
docs/models/billing-update-request.md:
id: 29e20b402adf
- last_write_checksum: sha1:50a2aea5847479e1471a865ff0d6d4454c01ffab
- pristine_git_object: cdfe4085d7f9e3ab0d1ddc3041b0a017a83e6c79
+ last_write_checksum: sha1:12280466435b737c9b9ef3bdfe45616f62729cf5
+ pristine_git_object: ad79f248303e56d87664e7c017394af279afd7a7
docs/models/billing-update-required-action.md:
id: bf7357d5d4cb
last_write_checksum: sha1:41c74d57e6714477fb6b7d5f6855beaf1a618ce1
@@ -860,8 +852,8 @@ trackedFiles:
pristine_git_object: 60fcbcb344d4c6c73b744c34eb416803c8090b11
docs/models/breakdown.md:
id: 786823ab8ff0
- last_write_checksum: sha1:120ff2cfb315e426ed72d0e2aa4648989f5b3e68
- pristine_git_object: e4072746d40d0ceda15539556f7e73c933579701
+ last_write_checksum: sha1:6992c68ed199fd46e06c6e7d26d412704f9164f8
+ pristine_git_object: f6bdbd480cbf0f5ae1083f2c9cd3a9cd0fb80e9f
docs/models/config-rollover.md:
id: 5ee80b023fde
last_write_checksum: sha1:e62db7791a2a08562f37d915c7487fee45a3cadb
@@ -940,8 +932,8 @@ trackedFiles:
pristine_git_object: adb4e6a216daf5fe4f5e1566821240b1406007e1
docs/models/customer.md:
id: 42ac97d31359
- last_write_checksum: sha1:22834f41273cf7395438b355022d0521722f5910
- pristine_git_object: 440255c4ce5e7f51a7afcf2d41eaa8f2fa5371cf
+ last_write_checksum: sha1:9d3f9fa3d14b9a85ee6e8bb245e213768ebc4da2
+ pristine_git_object: d7c1b370d1bdab1832f7315616c7b5dae45661e6
docs/models/delete-customer-globals.md:
id: e2b2740e2b2d
last_write_checksum: sha1:92a62a15010425dfd1b008717705100796c00620
@@ -996,16 +988,16 @@ trackedFiles:
pristine_git_object: 5fe6a61067cd319d6cd0d1e1e7f1d165c0d4579d
docs/models/incoming-balances.md:
id: d374de62f567
- last_write_checksum: sha1:d7ef7ab6b42ebdde8ef5ee1bded563f90bd04ac7
- pristine_git_object: 35a1e51181af1fecb47ecb5d75d22913956da33c
+ last_write_checksum: sha1:0427c9d1c60180243f7b1b21a6a25e4af2d929f1
+ pristine_git_object: d7aa18a435815c67678b401063f4ea446448eedc
docs/models/incoming-billing-method.md:
id: 602168a4cedc
last_write_checksum: sha1:a71ce01497dd5ee960fcc3f2a1e6966fe717df61
pristine_git_object: ad0d10422e0934600ccf04b155b577591de9e2fa
docs/models/incoming-breakdown.md:
id: a52e025e8649
- last_write_checksum: sha1:a490299294b08ca84dfa010df67fc25beab2dfd3
- pristine_git_object: 10321802dbd89ac6445d0c62eed1ddfdb41200e9
+ last_write_checksum: sha1:ab685e06091f5e02efb87bd2dcaa0d29785cbd83
+ pristine_git_object: ef753ea993933e410d6576012cfc66524d6babf5
docs/models/incoming-credit-schema.md:
id: e3f652113358
last_write_checksum: sha1:12c18c9e498e040d8635b4e4bad010e6ced3a48e
@@ -1048,8 +1040,8 @@ trackedFiles:
pristine_git_object: 24ad3e91fca94f76da5397679897bbaf953637a9
docs/models/incoming.md:
id: 440441d25a42
- last_write_checksum: sha1:c19a2a6b94cf1678e17cc687b9d7319eed37199d
- pristine_git_object: 1bc0be9a88fc1a8e4b0453ea0587d87486d403a9
+ last_write_checksum: sha1:5265a1e6b833d8ef04d95642994fdfb2ed0d9d55
+ pristine_git_object: 14b39cf62ca462ee56b5a47651a178dd97cb4d8c
docs/models/interval-incoming-enum.md:
id: 4beaa3b22e5b
last_write_checksum: sha1:957607f01827ff06ecda175d8880a6ab252c7ac3
@@ -1068,16 +1060,16 @@ trackedFiles:
pristine_git_object: ed47413dfd80f05f59b2a5f870b612430faea3f6
docs/models/list-customers-balances.md:
id: 46cd8155bb0e
- last_write_checksum: sha1:6fcc20430236a07c65b3391c71b14aa15421605d
- pristine_git_object: cdcffe81063aa55d0b0493814cce455a79861095
+ last_write_checksum: sha1:1d670bb537ecaffe2f48ced508c1cf672b2ade03
+ pristine_git_object: 57123fe519103cc83169e9ddaa0a7fcbaa15d94d
docs/models/list-customers-billing-method.md:
id: 0d3398dec326
last_write_checksum: sha1:f13e148e053d42bde8430b3fda4803bf7163f77c
pristine_git_object: 3ddd429f50edea95c30f8d0f163aca6e809e74da
docs/models/list-customers-breakdown.md:
id: ccf93d67f0e0
- last_write_checksum: sha1:92ff7fa9775849de3d2a2b2659dcc21dab80299f
- pristine_git_object: 4a5ff7d07cda1383156e6ea3fb84b1e02fa83b7e
+ last_write_checksum: sha1:c57363b82b82a2630374718c21832b4cc8f4dedc
+ pristine_git_object: e24c52777169794b632e0838ea0c4f6c88734fc2
docs/models/list-customers-credit-schema.md:
id: bd8c18aa56d6
last_write_checksum: sha1:7a96afb453ef3df9964ffa03fa62738c2185353d
@@ -1176,16 +1168,16 @@ trackedFiles:
pristine_git_object: 93010d453c873028de83eddc22d515539582a209
docs/models/outgoing-balances.md:
id: bf7fc0b18cbd
- last_write_checksum: sha1:2cd9523d9ff7584b2d1b4e82860d220c186da7c1
- pristine_git_object: 01579531ab9601a60ae6110bf95de52690ad620a
+ last_write_checksum: sha1:dd3bba83ba5328e99cb0f175cf7225717e609db7
+ pristine_git_object: 33ccd99f1aaf9ab3760306c80154cd042ed18e93
docs/models/outgoing-billing-method.md:
id: 109e17e2f8f5
last_write_checksum: sha1:11090fd3c60432cd6a94cb17d62a3581138c2313
pristine_git_object: 4db5123b9d9f60197fbcfd8bfd5304354037eb0d
docs/models/outgoing-breakdown.md:
id: 0593f700f7df
- last_write_checksum: sha1:c9efa7448a652154ecbb803055d09e12e5f7052a
- pristine_git_object: 2ce1cc741d3875a2b73bcb666cde0cec331b49fb
+ last_write_checksum: sha1:d8ed909dfa9b88622a4fe23311328b46470bbd19
+ pristine_git_object: 979288102952763413ae4c5baa92ac15f082613d
docs/models/outgoing-credit-schema.md:
id: aef5d0af0d19
last_write_checksum: sha1:93b6d0d8f5426c2efe1a188d806f552975444808
@@ -1228,8 +1220,8 @@ trackedFiles:
pristine_git_object: d6c26e5ff159fb5aac08f53f8d3bbf81f8ce4ac5
docs/models/outgoing.md:
id: 5ead4a3a13e9
- last_write_checksum: sha1:f2abecbb4f4ff64ac112f062665c9c17e89a33d8
- pristine_git_object: 3223f6bd64485bbdffd3b5614c7a569afbff9fd2
+ last_write_checksum: sha1:ddf1046db0aefda84dcc4a697603075b52409808
+ pristine_git_object: 1bc95403e0807bfeeac952251f6edb62953a38ae
docs/models/plan-billing-method.md:
id: 4789ae90ae01
last_write_checksum: sha1:8b53127c48cd1e81a29d62093ae96a52359b268a
@@ -1400,16 +1392,16 @@ trackedFiles:
pristine_git_object: 72df6cb602ecac3658f8cbb19ea2c460995b7a4a
docs/models/update-customer-balances.md:
id: 1bfa8c6cffed
- last_write_checksum: sha1:1631a16dc7a915fc7d0210f91619827f8a3f96db
- pristine_git_object: 80debc4a39d851ec13b55403eb711b39789f7871
+ last_write_checksum: sha1:4d0032ada0430399279f5fd8f7c27906c6211626
+ pristine_git_object: 011ff0fe532ae95af0738f860353ad9e097e3ce9
docs/models/update-customer-billing-method.md:
id: 88c216b41cc9
last_write_checksum: sha1:3bb481957c5c6c49eafbf6f203f509f5b7e2cd58
pristine_git_object: 8ce9fde5f55f832e49db75595f2d8ce9043491ac
docs/models/update-customer-breakdown.md:
id: f58ab0f6bff1
- last_write_checksum: sha1:d5500884443579f8045496a18a527dbf1d2bc859
- pristine_git_object: 90db320850fb6303be46e757a1bfe8d132894182
+ last_write_checksum: sha1:15dae25ce69e028151ceb3fea98a1c8b540aed53
+ pristine_git_object: a39a9da7e62530194a691bc5587b94df8253d336
docs/models/update-customer-credit-schema.md:
id: 3cf3ff338501
last_write_checksum: sha1:ab98468adfe3343dadcaf47c557f168345bfe0d2
@@ -1492,8 +1484,8 @@ trackedFiles:
pristine_git_object: c7aa4176ebe0ecc174019273ac857b26e1986c2b
docs/sdks/billing/README.md:
id: dc915331dd9d
- last_write_checksum: sha1:3827b8f7ddd06e51bc2816b203f80d272071e114
- pristine_git_object: 23e341bbae7daaf4e327dc3c5bb13fa57a97bd8c
+ last_write_checksum: sha1:9e5ac33eb2f8161d4a9813184ce0bda310b5184e
+ pristine_git_object: b4b6ad4f74cdaf1bd54e8ec0afabf089e9c26613
docs/sdks/customers/README.md:
id: 9332759cffc2
last_write_checksum: sha1:67ee9f4c5ba6f23fd7e16807f8503ed5a065e1ba
@@ -1524,12 +1516,12 @@ trackedFiles:
pristine_git_object: 900d545ed58929951e2208e1bec791cb264429a4
jsr.json:
id: 7f6ab7767282
- last_write_checksum: sha1:67275431c3eb5f32540c60074c3ee683e81452d3
- pristine_git_object: 278b8c189ba9a3906d310744ff52a091738f11de
+ last_write_checksum: sha1:81f59385b4f8527291ecad9b442981054bb1c9af
+ pristine_git_object: 498da37844b72100f84a7a0e8dab8e6011222af1
package.json:
id: 7030d0b2f71b
- last_write_checksum: sha1:8bb2c8764fcabe89c0fd1df2fb6b20d0354ff6fe
- pristine_git_object: ae9c10d74e318d990aab95f7e73394bcb1283863
+ last_write_checksum: sha1:1cf6dc171bd97df401d76a20b37cff97a8f79f2f
+ pristine_git_object: ac3ec23ec56922ecd27496c75330ab80bb4ce2c4
src/core.ts:
id: f431fdbcd144
last_write_checksum: sha1:f8f24a3ca09c1efb285d7a75ad3697d0128f47e2
@@ -1552,8 +1544,8 @@ trackedFiles:
pristine_git_object: e3f89175fafe3b0a6c5074af1b1d24b8b3ba778b
src/funcs/billing-attach.ts:
id: c23b3cd15f32
- last_write_checksum: sha1:314b37d4503c268e6706e28597fda9cc283f7b37
- pristine_git_object: d8bca161bff272a4ef07c36f07b5d0a2167b2013
+ last_write_checksum: sha1:b8b163019c58d7e64b39d1ea4524f9ad1ceb706c
+ pristine_git_object: 2730fb8f3f16c04719808eccd3f7c03aef12e7fb
src/funcs/billing-preview-attach.ts:
id: d262a9163889
last_write_checksum: sha1:90fb559c4fd90f6339c34c9428da7d69359e78ec
@@ -1612,8 +1604,8 @@ trackedFiles:
pristine_git_object: 44be0eae8246521b230e8e711a88eff738fc015d
src/lib/config.ts:
id: 320761608fb3
- last_write_checksum: sha1:d0c50c1b166ca206b68742a4c3f916f86793df75
- pristine_git_object: 9446befa93d48d6b0a0f9fff4e48528b1ebca735
+ last_write_checksum: sha1:cbc217ef66dbc1a7713cea3ed30b3afbe58f85f8
+ pristine_git_object: c80c88bd24b38e4183bb4602ef8df47e61d57381
src/lib/dlv.ts:
id: b1988214835a
last_write_checksum: sha1:1dd3e3fbb4550c4bf31f5ef997faff355d6f3250
@@ -1680,40 +1672,40 @@ trackedFiles:
pristine_git_object: 7cfcf2c90f1cfaa152ee2f4033187aa20b1c696b
src/models/balances-check-op.ts:
id: b818c72b5764
- last_write_checksum: sha1:fd74e98b1fd9fd8dfa0ae2ded58d816ff7465231
- pristine_git_object: 3ed86b0b4af8383c3e4534db44042c86fa9b06d2
+ last_write_checksum: sha1:43ba10dc6d3f77ac0c27566aa7da722be99b9b91
+ pristine_git_object: 202ad5a71f0bfd85e6d100d8aa477d2c106f4e35
src/models/balances-create-op.ts:
id: 0ac1d9c85f60
last_write_checksum: sha1:93f8b8a57403da4a95b83dcb2c7a54029694d2a4
pristine_git_object: 4691d74f2c76904a0ac5fe8c9db7d95b9fcfb2d1
src/models/balances-track-op.ts:
id: 827123ccf6a9
- last_write_checksum: sha1:33dc08e050dab96683fd77c9520e1783755a15fc
- pristine_git_object: bf34bd60326f0cdb85f2e09660678d758fb3fb44
+ last_write_checksum: sha1:ea05f8b6cca9224837c7cc3e99cb20ca0a77363b
+ pristine_git_object: c4a0072f6642989ad51949650bccaf1d4869702c
src/models/balances-update-op.ts:
id: 212dd68fb106
last_write_checksum: sha1:57e79acb25df86996d96340471e5716119f66ba7
pristine_git_object: 111f5ade15069959b73926dc632a622a5f1f7eaf
src/models/billing-attach-op.ts:
id: c0a94471ba75
- last_write_checksum: sha1:20007a9004de3ff25060da97a0efbb4efd8baf4d
- pristine_git_object: 278602bb47a4c23a23f2fd6f6f6ce3d339a37e5c
+ last_write_checksum: sha1:d32dd4646bdad734acf091264f04eba411e29cc6
+ pristine_git_object: a80e00630e5ea26c67ed6b2fc8c852f62b574c67
src/models/billing-preview-attach-op.ts:
id: ad719a76005b
- last_write_checksum: sha1:6130f34a58b2bf990885593f7f1d426f58dc99da
- pristine_git_object: 27c9d844b64a0a4dc9c09aeaf41b3b0e039f8a0b
+ last_write_checksum: sha1:d8c0b961e6f23fe733cd8483a7467721f24755f4
+ pristine_git_object: 8cad4b5fee2c41b1a5c56e5b3ed4061ef82cf8a6
src/models/billing-preview-update-op.ts:
id: 381d33cff672
- last_write_checksum: sha1:3d834b2a724d17922b884dbe05eb9736e22ef2a1
- pristine_git_object: ffc9948f6795cf86fdabe5caceb787aa569ad97a
+ last_write_checksum: sha1:f8a999fa5cae22c7388e9c105d8bfb8daf4bb1de
+ pristine_git_object: 6caf3a21e1905c23bb01b75f7168bc8885e0e55f
src/models/billing-setup-payment-op.ts:
id: cc957e224289
last_write_checksum: sha1:be82f17cbf8ea59c8d5fed908d3c91ebb61f45f3
pristine_git_object: c5ae80c858560b595473286d2a757a5878d56469
src/models/billing-update-op.ts:
id: e7371769c7ca
- last_write_checksum: sha1:a20f3f651db4e58f53d8facb29526c0816d20703
- pristine_git_object: 02674fc4e112614054edeeacb25149ef36871f4b
+ last_write_checksum: sha1:4daf1f198b91c30be0ff075d2d08c70bd900d642
+ pristine_git_object: 28e62dae1c16c346623b96cab5b6823162bbbed5
src/models/customer-data.ts:
id: 04dac7ee392e
last_write_checksum: sha1:418a3dc8273f1a7f0b06e3558d6fb352ca31bfb1
@@ -1724,8 +1716,8 @@ trackedFiles:
pristine_git_object: b6a303e11f4d5964b94379a470104d00ff8fb5cc
src/models/customer.ts:
id: 20be78c552a4
- last_write_checksum: sha1:7da1822a0a2164cbaea657e45e4783ee78f17d0b
- pristine_git_object: efd6254df0d122443fa999504f1d6b41e3185046
+ last_write_checksum: sha1:834fdd87d593fe97b8d00680f1f868571e814aec
+ pristine_git_object: 85200c4624b20c9991cd822a07f6f4c070e0c752
src/models/delete-customer-op.ts:
id: 5a0865a96e72
last_write_checksum: sha1:c13b51ffb77a1436b29b76a21686c69813c1e81d
@@ -1744,8 +1736,8 @@ trackedFiles:
pristine_git_object: 049aff41b9e5a2c33bdc0f7f3241a4e2c0cf14d0
src/models/list-customers-op.ts:
id: b391692c8429
- last_write_checksum: sha1:61b3fbd1ea038f8bf0406eb97fdede1685d38baa
- pristine_git_object: 0499fcd8cacaca8bf488cf3a314bf8f5d076c27a
+ last_write_checksum: sha1:5f940428ca63d4e852d4b2b63abba9f258bc4cda
+ pristine_git_object: dae93235f3abd02ddb5558bbaa90e260d09ba204
src/models/list-plans-op.ts:
id: 513cde894485
last_write_checksum: sha1:df5e3899fe571eedffbebb6dd234e6d5b673b90e
@@ -1768,16 +1760,16 @@ trackedFiles:
pristine_git_object: 3774cc1e9bbb80ac592990aa86f8d4a38ee51f29
src/models/update-customer-op.ts:
id: 5d226d30d8e4
- last_write_checksum: sha1:97f5ee259d4004b497d2cd949721f595b525e290
- pristine_git_object: a9ad129a3327f9f8a9a8a8aa29e213b947f19c0b
+ last_write_checksum: sha1:2691abf4914fdc17ee2bfd41d39931aa968a894e
+ pristine_git_object: 249d7b1e7c1809d933e9109b5c32b9672996868c
src/sdk/balances.ts:
id: 9ad229cb9d64
last_write_checksum: sha1:d80897969e038afaca2195fc694d98bf4ff5a374
pristine_git_object: a339128fd41eb46b423d5b7ea44ef9370c61f8c3
src/sdk/billing.ts:
id: 10905058c4ad
- last_write_checksum: sha1:9bb6b8827d623595bbb535b3ee1a02c3c70f3066
- pristine_git_object: d58344cb08d684984e59b96f5b5a3a1abb824945
+ last_write_checksum: sha1:49cc390bd072973e21df2c234ee113e604426f67
+ pristine_git_object: 5e3899481df00efca75de9c2aa555735a9c03a8d
src/sdk/customers.ts:
id: d33e193e0c00
last_write_checksum: sha1:3e4d794f7a68a5e1962483b578b5643b339581fe
@@ -2123,7 +2115,7 @@ examples:
application/json: {"customer_id": "cus_123", "name": "John Doe", "email": "john@example.com"}
responses:
"200":
- application/json: {"id": "cus_123", "name": "John Doe", "email": "john@example.com", "created_at": 1717000000, "fingerprint": "1234567890", "stripe_id": "cus_123", "env": "sandbox", "metadata": {}, "send_email_receipts": true, "subscriptions": [{"plan_id": "plan_123", "auto_enable": false, "add_on": false, "status": "active", "past_due": false, "canceled_at": 9611.97, "expires_at": 7806.81, "trial_ends_at": null, "started_at": 6124.93, "current_period_start": null, "current_period_end": 9733.97, "quantity": 1}], "purchases": [], "balances": {"balance_1": {"object": "balance", "feature_id": "", "granted": 8321.34, "remaining": 5.02, "usage": 8589.77, "unlimited": true, "overage_allowed": true, "max_purchase": 5498.35, "next_reset_at": 8214.93}}}
+ application/json: {"id": "cus_123", "name": "John Doe", "email": "john@example.com", "created_at": 1717000000, "fingerprint": "1234567890", "stripe_id": "cus_123", "env": "sandbox", "metadata": {}, "send_email_receipts": true, "subscriptions": [{"plan_id": "plan_123", "auto_enable": false, "add_on": false, "status": "active", "past_due": false, "canceled_at": 9611.97, "expires_at": 7806.81, "trial_ends_at": null, "started_at": 6124.93, "current_period_start": null, "current_period_end": 9733.97, "quantity": 1}], "purchases": [], "balances": {"balance_1": {"feature_id": "", "granted": 8321.34, "remaining": 5.02, "usage": 8589.77, "unlimited": true, "overage_allowed": true, "max_purchase": 5498.35, "next_reset_at": 8214.93}}}
listPlans:
speakeasy-default-list-plans:
parameters:
@@ -2179,7 +2171,7 @@ examples:
application/json: {"customer_id": "cus_123", "name": "Jane Doe", "email": "jane@example.com"}
responses:
"200":
- application/json: {"id": "cus_123", "name": "John Doe", "email": "john@example.com", "created_at": 1717000000, "fingerprint": "1234567890", "stripe_id": "cus_123", "env": "sandbox", "metadata": {}, "send_email_receipts": true, "subscriptions": [{"plan_id": "plan_123", "auto_enable": true, "add_on": true, "status": "active", "past_due": true, "canceled_at": 8303.59, "expires_at": 2755.88, "trial_ends_at": 1461.02, "started_at": 1649.05, "current_period_start": 8034.1, "current_period_end": 8058.66, "quantity": 1}], "purchases": [], "balances": {"balance_1": {"object": "balance", "feature_id": "", "granted": 7559.37, "remaining": 952.25, "usage": 7029.24, "unlimited": true, "overage_allowed": true, "max_purchase": 7619.46, "next_reset_at": 411.76}}}
+ application/json: {"id": "cus_123", "name": "John Doe", "email": "john@example.com", "created_at": 1717000000, "fingerprint": "1234567890", "stripe_id": "cus_123", "env": "sandbox", "metadata": {}, "send_email_receipts": true, "subscriptions": [{"plan_id": "plan_123", "auto_enable": true, "add_on": true, "status": "active", "past_due": true, "canceled_at": 8303.59, "expires_at": 2755.88, "trial_ends_at": 1461.02, "started_at": 1649.05, "current_period_start": 8034.1, "current_period_end": 8058.66, "quantity": 1}], "purchases": [], "balances": {"balance_1": {"feature_id": "", "granted": 7559.37, "remaining": 952.25, "usage": 7029.24, "unlimited": true, "overage_allowed": true, "max_purchase": 7619.46, "next_reset_at": 411.76}}}
deleteCustomer:
speakeasy-default-delete-customer:
parameters:
@@ -2209,7 +2201,7 @@ examples:
application/json: {"customer_id": "", "plan_id": "", "redirect_mode": "always"}
responses:
"200":
- application/json: {"customer_id": "", "line_items": [{"title": "", "description": "at usually sunbathe how forenenst", "amount": 7882.21, "total_quantity": 6544.84, "paid_quantity": 1520.59, "plan_id": ""}], "total": 6124.21, "currency": "Venezuelan bolÃvar", "incoming": [{"plan": {"id": "", "name": "", "description": null, "group": "", "version": 8678.59, "add_on": true, "auto_enable": true, "price": {"amount": 794.59, "interval": "week"}, "items": [{"feature_id": "", "included": 2063.68, "unlimited": true, "reset": {"interval": "hour"}, "price": {"interval": "month", "billing_units": 2123.59, "billing_method": "usage_based", "max_purchase": 9099.32}}], "created_at": 7665.78, "env": "live", "archived": true, "base_variant_id": null}, "feature_quantities": [{"feature_id": "", "quantity": 4464.31}], "balances": {}}], "outgoing": [], "redirect_type": "autumn_checkout"}
+ application/json: {"customer_id": "", "line_items": [{"title": "", "description": "at usually sunbathe how forenenst", "amount": 7882.21, "plan_id": "", "total_quantity": 6544.84, "paid_quantity": 1520.59}], "total": 6124.21, "currency": "Venezuelan bolÃvar", "incoming": [{"plan": {"id": "", "name": "", "description": null, "group": "", "version": 8678.59, "add_on": true, "auto_enable": true, "price": {"amount": 794.59, "interval": "week"}, "items": [{"feature_id": "", "included": 2063.68, "unlimited": true, "reset": {"interval": "hour"}, "price": {"interval": "month", "billing_units": 2123.59, "billing_method": "usage_based", "max_purchase": 9099.32}}], "created_at": 7665.78, "env": "live", "archived": true, "base_variant_id": null}, "feature_quantities": [{"feature_id": "", "quantity": 4464.31}], "balances": {}}], "outgoing": [], "redirect_type": "autumn_checkout"}
billingUpdate:
speakeasy-default-billing-update:
parameters:
@@ -2229,7 +2221,7 @@ examples:
application/json: {"customer_id": ""}
responses:
"200":
- application/json: {"customer_id": "", "line_items": [{"title": "", "description": "across at yet biodegradable wing retention between quash", "amount": 8095.76, "total_quantity": 5397.71, "paid_quantity": 3590.49, "plan_id": ""}], "total": 7497.66, "currency": "Peso Uruguayo"}
+ application/json: {"customer_id": "", "line_items": [{"title": "", "description": "across at yet biodegradable wing retention between quash", "amount": 8095.76, "plan_id": "", "total_quantity": 5397.71, "paid_quantity": 3590.49}], "total": 7497.66, "currency": "Peso Uruguayo"}
billingSetupPayment:
speakeasy-default-billing-setup-payment:
parameters:
@@ -2269,7 +2261,7 @@ examples:
application/json: {"customer_id": ""}
responses:
"200":
- application/json: {"allowed": true, "customer_id": "", "balance": {"object": "balance", "feature_id": "", "granted": 7002.31, "remaining": 9536.21, "usage": 3270.65, "unlimited": false, "overage_allowed": true, "max_purchase": 8252.55, "next_reset_at": 9394.31}}
+ application/json: {"allowed": true, "customer_id": "", "balance": {"feature_id": "", "granted": 7002.31, "remaining": 9536.21, "usage": 3270.65, "unlimited": false, "overage_allowed": true, "max_purchase": 8252.55, "next_reset_at": 9394.31}}
balancesTrack:
speakeasy-default-balances-track:
parameters:
@@ -2279,5 +2271,5 @@ examples:
application/json: {"customer_id": ""}
responses:
"200":
- application/json: {"customer_id": "", "value": 3371.48, "balance": {"object": "balance", "feature_id": "", "granted": 4457.97, "remaining": 7901.2, "usage": 9728.03, "unlimited": false, "overage_allowed": false, "max_purchase": null, "next_reset_at": 9011.85}}
+ application/json: {"customer_id": "", "value": 3371.48, "balance": {"feature_id": "", "granted": 4457.97, "remaining": 7901.2, "usage": 9728.03, "unlimited": false, "overage_allowed": false, "max_purchase": null, "next_reset_at": 9011.85}}
examplesVersion: 1.0.2
diff --git a/packages/sdk/.speakeasy/gen.yaml b/packages/sdk/.speakeasy/gen.yaml
index 34093a733..5d58d0239 100644
--- a/packages/sdk/.speakeasy/gen.yaml
+++ b/packages/sdk/.speakeasy/gen.yaml
@@ -33,7 +33,7 @@ generation:
generateNewTests: true
skipResponseBodyAssertions: false
typescript:
- version: 0.8.25
+ version: 0.8.26
acceptHeaderEnum: false
additionalDependencies:
dependencies: {}
diff --git a/packages/sdk/.speakeasy/out.openapi.yaml b/packages/sdk/.speakeasy/out.openapi.yaml
index 5c6abf2b9..f30b025d8 100644
--- a/packages/sdk/.speakeasy/out.openapi.yaml
+++ b/packages/sdk/.speakeasy/out.openapi.yaml
@@ -196,8 +196,6 @@ components:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -273,8 +271,6 @@ components:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -359,7 +355,6 @@ components:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -382,7 +377,6 @@ components:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -1236,8 +1230,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -1313,8 +1305,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -1398,7 +1388,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -1421,7 +1410,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -1659,8 +1647,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -1736,8 +1722,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -1822,7 +1806,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -1845,7 +1828,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -1971,6 +1953,10 @@ paths:
@param entityId - The ID of the entity to attach the plan to. (optional)
@param featureQuantities - If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. (optional)
+
+ @param version - The version of the plan to attach. (optional)
+
+ @param customize - Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. (optional)
tags:
- billing
requestBody:
@@ -2007,6 +1993,7 @@ paths:
description: If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -2153,6 +2140,7 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
plan_id:
type: string
invoice_mode:
@@ -2160,10 +2148,10 @@ paths:
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -2303,6 +2291,7 @@ paths:
description: If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -2449,6 +2438,7 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
plan_id:
type: string
invoice_mode:
@@ -2456,10 +2446,10 @@ paths:
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -2538,14 +2528,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -2558,13 +2546,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
total:
type: number
currency:
@@ -2573,16 +2563,6 @@ paths:
type: number
period_end:
type: number
- credit:
- type: object
- properties:
- amount:
- type: number
- description:
- type: string
- required:
- - amount
- - description
next_cycle:
type: object
properties:
@@ -2617,14 +2597,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -2637,13 +2615,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
required:
- starts_at
- total
@@ -2674,8 +2654,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -2751,8 +2729,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -2836,7 +2812,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -2859,7 +2834,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -2902,8 +2876,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -2979,8 +2951,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -3064,7 +3034,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -3087,7 +3056,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -3161,6 +3129,7 @@ paths:
description: If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -3307,19 +3276,18 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
plan_id:
- anyOf:
- - type: string
- - type: "null"
+ type: string
invoice_mode:
type: object
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -3433,6 +3401,7 @@ paths:
description: If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
version:
type: number
+ description: The version of the plan to attach.
free_trial:
anyOf:
- type: object
@@ -3579,19 +3548,18 @@ paths:
- expiry_duration_type
required:
- feature_id
+ description: Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
plan_id:
- anyOf:
- - type: string
- - type: "null"
+ type: string
invoice_mode:
type: object
properties:
enabled:
type: boolean
- enable_product_immediately:
+ enable_plan_immediately:
type: boolean
default: false
- finalize_invoice:
+ finalize:
type: boolean
default: true
required:
@@ -3644,14 +3612,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -3664,13 +3630,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
total:
type: number
currency:
@@ -3679,16 +3647,6 @@ paths:
type: number
period_end:
type: number
- credit:
- type: object
- properties:
- amount:
- type: number
- description:
- type: string
- required:
- - amount
- - description
next_cycle:
type: object
properties:
@@ -3723,14 +3681,12 @@ paths:
required:
- amountOff
default: []
- is_base:
- type: boolean
+ plan_id:
+ type: string
total_quantity:
type: number
paid_quantity:
type: number
- plan_id:
- type: string
deferred_for_trial:
type: boolean
effective_period:
@@ -3743,13 +3699,15 @@ paths:
required:
- start
- end
+ is_base:
+ type: boolean
required:
- title
- description
- amount
+ - plan_id
- total_quantity
- paid_quantity
- - plan_id
required:
- starts_at
- total
@@ -4009,8 +3967,6 @@ paths:
anyOf:
- type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -4086,8 +4042,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -4172,7 +4126,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -4195,7 +4148,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -4589,8 +4541,6 @@ paths:
anyOf:
- type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -4666,8 +4616,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -4752,7 +4700,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -4775,7 +4722,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
@@ -4792,8 +4738,6 @@ paths:
additionalProperties:
type: object
properties:
- object:
- const: balance
feature_id:
type: string
feature:
@@ -4869,8 +4813,6 @@ paths:
items:
type: object
properties:
- object:
- const: balance_breakdown
id:
type: string
default: ""
@@ -4955,7 +4897,6 @@ paths:
- type: number
- type: "null"
required:
- - object
- plan_id
- included_grant
- prepaid_grant
@@ -4978,7 +4919,6 @@ paths:
- balance
- expires_at
required:
- - object
- feature_id
- granted
- remaining
diff --git a/packages/sdk/.speakeasy/workflow.lock b/packages/sdk/.speakeasy/workflow.lock
index eeb68f876..e0c269681 100644
--- a/packages/sdk/.speakeasy/workflow.lock
+++ b/packages/sdk/.speakeasy/workflow.lock
@@ -9,8 +9,8 @@ sources:
- 2.1.0
Autumn API Stripped:
sourceNamespace: autumn-api-stripped
- sourceRevisionDigest: sha256:e23309626b28cb7cb5f2adbd8d59f4a769332629fd1a070dc6bf4236192d47e4
- sourceBlobDigest: sha256:c974b9c4fa51784e1726ff062a264b4d280a8f0041be381e9994b0fc953f9cdc
+ sourceRevisionDigest: sha256:3c2b0984859b57cb45257efef3e1a1bfe48fd0ef1c2e3c3702d42b955cf096db
+ sourceBlobDigest: sha256:a10bc74dc833d54d6024f61f2d24fd5975f011ab69e88b489a46abb73c1eb4bd
tags:
- latest
- 2.1.0
@@ -25,8 +25,8 @@ targets:
autumn-python:
source: Autumn API Stripped
sourceNamespace: autumn-api-stripped
- sourceRevisionDigest: sha256:e23309626b28cb7cb5f2adbd8d59f4a769332629fd1a070dc6bf4236192d47e4
- sourceBlobDigest: sha256:c974b9c4fa51784e1726ff062a264b4d280a8f0041be381e9994b0fc953f9cdc
+ sourceRevisionDigest: sha256:3c2b0984859b57cb45257efef3e1a1bfe48fd0ef1c2e3c3702d42b955cf096db
+ sourceBlobDigest: sha256:a10bc74dc833d54d6024f61f2d24fd5975f011ab69e88b489a46abb73c1eb4bd
codeSamplesNamespace: autumn-api-python-code-samples
codeSamplesRevisionDigest: sha256:ca39ee64d522fc8fdba083d3fc8eef936be15f8f65340bb75bb6cce7b7190561
workflow:
diff --git a/packages/sdk/README.md b/packages/sdk/README.md
index 775e927f6..ba4e797ed 100644
--- a/packages/sdk/README.md
+++ b/packages/sdk/README.md
@@ -169,6 +169,8 @@ const response = await client.attach({ customerId: "cus_123", planId: "pro_plan"
@param customerId - The ID of the customer to attach the plan to.
@param entityId - The ID of the entity to attach the plan to. (optional)
@param featureQuantities - If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. (optional)
+@param version - The version of the plan to attach. (optional)
+@param customize - Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. (optional)
* [previewAttach](docs/sdks/billing/README.md#previewattach) - Preview billing changes before attaching a plan.
* [update](docs/sdks/billing/README.md#update) - Update an existing subscription.
* [previewUpdate](docs/sdks/billing/README.md#previewupdate) - Preview billing changes before updating a subscription.
@@ -236,6 +238,8 @@ const response = await client.attach({ customerId: "cus_123", planId: "pro_plan"
@param customerId - The ID of the customer to attach the plan to.
@param entityId - The ID of the entity to attach the plan to. (optional)
@param featureQuantities - If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. (optional)
+@param version - The version of the plan to attach. (optional)
+@param customize - Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. (optional)
- [`billingPreviewAttach`](docs/sdks/billing/README.md#previewattach) - Preview billing changes before attaching a plan.
- [`billingPreviewUpdate`](docs/sdks/billing/README.md#previewupdate) - Preview billing changes before updating a subscription.
- [`billingSetupPayment`](docs/sdks/billing/README.md#setuppayment) - Create a setup payment session for a customer.
diff --git a/packages/sdk/docs/models/balances-check-balance.md b/packages/sdk/docs/models/balances-check-balance.md
index 927b0c458..5db52bece 100644
--- a/packages/sdk/docs/models/balances-check-balance.md
+++ b/packages/sdk/docs/models/balances-check-balance.md
@@ -6,7 +6,6 @@
import { BalancesCheckBalance } from "@useautumn/sdk";
let value: BalancesCheckBalance = {
- object: "balance",
featureId: "",
granted: 5805.07,
remaining: 2547.08,
@@ -22,7 +21,6 @@ let value: BalancesCheckBalance = {
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
-| `object` | *"balance"* | :heavy_check_mark: | N/A |
| `featureId` | *string* | :heavy_check_mark: | N/A |
| `feature` | [models.BalancesCheckFeature](../models/balances-check-feature.md) | :heavy_minus_sign: | N/A |
| `granted` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/balances-check-breakdown.md b/packages/sdk/docs/models/balances-check-breakdown.md
index d48fa230a..a4f201465 100644
--- a/packages/sdk/docs/models/balances-check-breakdown.md
+++ b/packages/sdk/docs/models/balances-check-breakdown.md
@@ -6,7 +6,6 @@
import { BalancesCheckBreakdown } from "@useautumn/sdk";
let value: BalancesCheckBreakdown = {
- object: "balance_breakdown",
planId: "",
includedGrant: 639.18,
prepaidGrant: 9880.63,
@@ -30,7 +29,6 @@ let value: BalancesCheckBreakdown = {
| Field | Type | Required | Description |
| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
-| `object` | *"balance_breakdown"* | :heavy_check_mark: | N/A |
| `id` | *string* | :heavy_minus_sign: | N/A |
| `planId` | *string* | :heavy_check_mark: | N/A |
| `includedGrant` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/balances-check-response.md b/packages/sdk/docs/models/balances-check-response.md
index 260858a12..13c90b2a5 100644
--- a/packages/sdk/docs/models/balances-check-response.md
+++ b/packages/sdk/docs/models/balances-check-response.md
@@ -11,7 +11,6 @@ let value: BalancesCheckResponse = {
allowed: true,
customerId: "",
balance: {
- object: "balance",
featureId: "",
granted: 5669.36,
remaining: 9220.56,
diff --git a/packages/sdk/docs/models/balances-track-balance-breakdown.md b/packages/sdk/docs/models/balances-track-balance-breakdown.md
index e3afcde41..c4ccc9979 100644
--- a/packages/sdk/docs/models/balances-track-balance-breakdown.md
+++ b/packages/sdk/docs/models/balances-track-balance-breakdown.md
@@ -6,7 +6,6 @@
import { BalancesTrackBalanceBreakdown } from "@useautumn/sdk";
let value: BalancesTrackBalanceBreakdown = {
- object: "balance_breakdown",
planId: "",
includedGrant: 1267.23,
prepaidGrant: 7892.69,
@@ -30,7 +29,6 @@ let value: BalancesTrackBalanceBreakdown = {
| Field | Type | Required | Description |
| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
-| `object` | *"balance_breakdown"* | :heavy_check_mark: | N/A |
| `id` | *string* | :heavy_minus_sign: | N/A |
| `planId` | *string* | :heavy_check_mark: | N/A |
| `includedGrant` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/balances-track-balance.md b/packages/sdk/docs/models/balances-track-balance.md
index 52c41561b..932237fa5 100644
--- a/packages/sdk/docs/models/balances-track-balance.md
+++ b/packages/sdk/docs/models/balances-track-balance.md
@@ -6,7 +6,6 @@
import { BalancesTrackBalance } from "@useautumn/sdk";
let value: BalancesTrackBalance = {
- object: "balance",
featureId: "",
granted: 6031.57,
remaining: 4645.12,
@@ -22,7 +21,6 @@ let value: BalancesTrackBalance = {
| Field | Type | Required | Description |
| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
-| `object` | *"balance"* | :heavy_check_mark: | N/A |
| `featureId` | *string* | :heavy_check_mark: | N/A |
| `feature` | [models.BalancesTrackBalanceFeature](../models/balances-track-balance-feature.md) | :heavy_minus_sign: | N/A |
| `granted` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/balances-track-balances.md b/packages/sdk/docs/models/balances-track-balances.md
index 64c61a7b5..a19a26597 100644
--- a/packages/sdk/docs/models/balances-track-balances.md
+++ b/packages/sdk/docs/models/balances-track-balances.md
@@ -6,7 +6,6 @@
import { BalancesTrackBalances } from "@useautumn/sdk";
let value: BalancesTrackBalances = {
- object: "balance",
featureId: "",
granted: 4279.52,
remaining: 1892.83,
@@ -22,7 +21,6 @@ let value: BalancesTrackBalances = {
| Field | Type | Required | Description |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
-| `object` | *"balance"* | :heavy_check_mark: | N/A |
| `featureId` | *string* | :heavy_check_mark: | N/A |
| `feature` | [models.BalancesTrackFeature](../models/balances-track-feature.md) | :heavy_minus_sign: | N/A |
| `granted` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/balances-track-breakdown.md b/packages/sdk/docs/models/balances-track-breakdown.md
index 6bdf25b7f..e11ae4e8a 100644
--- a/packages/sdk/docs/models/balances-track-breakdown.md
+++ b/packages/sdk/docs/models/balances-track-breakdown.md
@@ -6,7 +6,6 @@
import { BalancesTrackBreakdown } from "@useautumn/sdk";
let value: BalancesTrackBreakdown = {
- object: "balance_breakdown",
planId: null,
includedGrant: 9958.89,
prepaidGrant: 8123.08,
@@ -30,7 +29,6 @@ let value: BalancesTrackBreakdown = {
| Field | Type | Required | Description |
| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
-| `object` | *"balance_breakdown"* | :heavy_check_mark: | N/A |
| `id` | *string* | :heavy_minus_sign: | N/A |
| `planId` | *string* | :heavy_check_mark: | N/A |
| `includedGrant` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/balances-track-response.md b/packages/sdk/docs/models/balances-track-response.md
index 298ff88b2..ee6fc647b 100644
--- a/packages/sdk/docs/models/balances-track-response.md
+++ b/packages/sdk/docs/models/balances-track-response.md
@@ -11,7 +11,6 @@ let value: BalancesTrackResponse = {
customerId: "",
value: 107.2,
balance: {
- object: "balance",
featureId: "",
granted: 121.68,
remaining: 7842.83,
diff --git a/packages/sdk/docs/models/balances.md b/packages/sdk/docs/models/balances.md
index 165def0fc..fd59d3018 100644
--- a/packages/sdk/docs/models/balances.md
+++ b/packages/sdk/docs/models/balances.md
@@ -6,7 +6,6 @@
import { Balances } from "@useautumn/sdk";
let value: Balances = {
- object: "balance",
featureId: "",
granted: 3195.9,
remaining: 3289.89,
@@ -22,7 +21,6 @@ let value: Balances = {
| Field | Type | Required | Description |
| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
-| `object` | *"balance"* | :heavy_check_mark: | N/A |
| `featureId` | *string* | :heavy_check_mark: | N/A |
| `feature` | [models.CustomerFeature](../models/customer-feature.md) | :heavy_minus_sign: | N/A |
| `granted` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/billing-attach-customize.md b/packages/sdk/docs/models/billing-attach-customize.md
index 8769359a3..f3eda4711 100644
--- a/packages/sdk/docs/models/billing-attach-customize.md
+++ b/packages/sdk/docs/models/billing-attach-customize.md
@@ -1,5 +1,7 @@
# BillingAttachCustomize
+Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+
## Example Usage
```typescript
diff --git a/packages/sdk/docs/models/billing-attach-invoice-mode.md b/packages/sdk/docs/models/billing-attach-invoice-mode.md
index 6a80b61ff..1a41dead8 100644
--- a/packages/sdk/docs/models/billing-attach-invoice-mode.md
+++ b/packages/sdk/docs/models/billing-attach-invoice-mode.md
@@ -12,8 +12,8 @@ let value: BillingAttachInvoiceMode = {
## Fields
-| Field | Type | Required | Description |
-| -------------------------- | -------------------------- | -------------------------- | -------------------------- |
-| `enabled` | *boolean* | :heavy_check_mark: | N/A |
-| `enableProductImmediately` | *boolean* | :heavy_minus_sign: | N/A |
-| `finalizeInvoice` | *boolean* | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ----------------------- | ----------------------- | ----------------------- | ----------------------- |
+| `enabled` | *boolean* | :heavy_check_mark: | N/A |
+| `enablePlanImmediately` | *boolean* | :heavy_minus_sign: | N/A |
+| `finalize` | *boolean* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/packages/sdk/docs/models/billing-attach-request.md b/packages/sdk/docs/models/billing-attach-request.md
index 6bfaf425b..6115d4c5c 100644
--- a/packages/sdk/docs/models/billing-attach-request.md
+++ b/packages/sdk/docs/models/billing-attach-request.md
@@ -18,9 +18,9 @@ let value: BillingAttachRequest = {
| `customerId` | *string* | :heavy_check_mark: | The ID of the customer to attach the plan to. |
| `entityId` | *string* | :heavy_minus_sign: | The ID of the entity to attach the plan to. |
| `featureQuantities` | [models.BillingAttachFeatureQuantities](../models/billing-attach-feature-quantities.md)[] | :heavy_minus_sign: | If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. |
-| `version` | *number* | :heavy_minus_sign: | N/A |
+| `version` | *number* | :heavy_minus_sign: | The version of the plan to attach. |
| `freeTrial` | [models.BillingAttachFreeTrial](../models/billing-attach-free-trial.md) | :heavy_minus_sign: | N/A |
-| `customize` | [models.BillingAttachCustomize](../models/billing-attach-customize.md) | :heavy_minus_sign: | N/A |
+| `customize` | [models.BillingAttachCustomize](../models/billing-attach-customize.md) | :heavy_minus_sign: | Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. |
| `planId` | *string* | :heavy_check_mark: | N/A |
| `invoiceMode` | [models.BillingAttachInvoiceMode](../models/billing-attach-invoice-mode.md) | :heavy_minus_sign: | N/A |
| `discounts` | *models.BillingAttachDiscountUnion*[] | :heavy_minus_sign: | N/A |
diff --git a/packages/sdk/docs/models/billing-preview-attach-credit.md b/packages/sdk/docs/models/billing-preview-attach-credit.md
deleted file mode 100644
index 9d7743e94..000000000
--- a/packages/sdk/docs/models/billing-preview-attach-credit.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# BillingPreviewAttachCredit
-
-## Example Usage
-
-```typescript
-import { BillingPreviewAttachCredit } from "@useautumn/sdk";
-
-let value: BillingPreviewAttachCredit = {
- amount: 3819.54,
- description:
- "reasoning broadcast above shoddy ah lustrous wisely physically fooey bah",
-};
-```
-
-## Fields
-
-| Field | Type | Required | Description |
-| ------------------ | ------------------ | ------------------ | ------------------ |
-| `amount` | *number* | :heavy_check_mark: | N/A |
-| `description` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/packages/sdk/docs/models/billing-preview-attach-customize.md b/packages/sdk/docs/models/billing-preview-attach-customize.md
index d10c255ae..cbec9da51 100644
--- a/packages/sdk/docs/models/billing-preview-attach-customize.md
+++ b/packages/sdk/docs/models/billing-preview-attach-customize.md
@@ -1,5 +1,7 @@
# BillingPreviewAttachCustomize
+Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+
## Example Usage
```typescript
diff --git a/packages/sdk/docs/models/billing-preview-attach-invoice-mode.md b/packages/sdk/docs/models/billing-preview-attach-invoice-mode.md
index f1524f24c..9ed84d9ce 100644
--- a/packages/sdk/docs/models/billing-preview-attach-invoice-mode.md
+++ b/packages/sdk/docs/models/billing-preview-attach-invoice-mode.md
@@ -12,8 +12,8 @@ let value: BillingPreviewAttachInvoiceMode = {
## Fields
-| Field | Type | Required | Description |
-| -------------------------- | -------------------------- | -------------------------- | -------------------------- |
-| `enabled` | *boolean* | :heavy_check_mark: | N/A |
-| `enableProductImmediately` | *boolean* | :heavy_minus_sign: | N/A |
-| `finalizeInvoice` | *boolean* | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ----------------------- | ----------------------- | ----------------------- | ----------------------- |
+| `enabled` | *boolean* | :heavy_check_mark: | N/A |
+| `enablePlanImmediately` | *boolean* | :heavy_minus_sign: | N/A |
+| `finalize` | *boolean* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/packages/sdk/docs/models/billing-preview-attach-line-item.md b/packages/sdk/docs/models/billing-preview-attach-line-item.md
index bbb676d95..cabb85b71 100644
--- a/packages/sdk/docs/models/billing-preview-attach-line-item.md
+++ b/packages/sdk/docs/models/billing-preview-attach-line-item.md
@@ -10,9 +10,9 @@ let value: BillingPreviewAttachLineItem = {
description:
"anti plagiarise why gah bludgeon from whoever experience celsius",
amount: 9045.15,
+ planId: "",
totalQuantity: 8695.78,
paidQuantity: 1093.11,
- planId: "",
};
```
@@ -24,9 +24,9 @@ let value: BillingPreviewAttachLineItem = {
| `description` | *string* | :heavy_check_mark: | N/A |
| `amount` | *number* | :heavy_check_mark: | N/A |
| `discounts` | [models.BillingPreviewAttachDiscountResponse](../models/billing-preview-attach-discount-response.md)[] | :heavy_minus_sign: | N/A |
-| `isBase` | *boolean* | :heavy_minus_sign: | N/A |
+| `planId` | *string* | :heavy_check_mark: | N/A |
| `totalQuantity` | *number* | :heavy_check_mark: | N/A |
| `paidQuantity` | *number* | :heavy_check_mark: | N/A |
-| `planId` | *string* | :heavy_check_mark: | N/A |
| `deferredForTrial` | *boolean* | :heavy_minus_sign: | N/A |
-| `effectivePeriod` | [models.BillingPreviewAttachEffectivePeriod](../models/billing-preview-attach-effective-period.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| `effectivePeriod` | [models.BillingPreviewAttachEffectivePeriod](../models/billing-preview-attach-effective-period.md) | :heavy_minus_sign: | N/A |
+| `isBase` | *boolean* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/packages/sdk/docs/models/billing-preview-attach-next-cycle-line-item.md b/packages/sdk/docs/models/billing-preview-attach-next-cycle-line-item.md
index b844edb41..d31f66e62 100644
--- a/packages/sdk/docs/models/billing-preview-attach-next-cycle-line-item.md
+++ b/packages/sdk/docs/models/billing-preview-attach-next-cycle-line-item.md
@@ -9,9 +9,9 @@ let value: BillingPreviewAttachNextCycleLineItem = {
title: "",
description: "overdub boohoo along instructor",
amount: 7376.73,
+ planId: "",
totalQuantity: 9732.07,
paidQuantity: 880.16,
- planId: "",
};
```
@@ -23,9 +23,9 @@ let value: BillingPreviewAttachNextCycleLineItem = {
| `description` | *string* | :heavy_check_mark: | N/A |
| `amount` | *number* | :heavy_check_mark: | N/A |
| `discounts` | [models.BillingPreviewAttachNextCycleDiscount](../models/billing-preview-attach-next-cycle-discount.md)[] | :heavy_minus_sign: | N/A |
-| `isBase` | *boolean* | :heavy_minus_sign: | N/A |
+| `planId` | *string* | :heavy_check_mark: | N/A |
| `totalQuantity` | *number* | :heavy_check_mark: | N/A |
| `paidQuantity` | *number* | :heavy_check_mark: | N/A |
-| `planId` | *string* | :heavy_check_mark: | N/A |
| `deferredForTrial` | *boolean* | :heavy_minus_sign: | N/A |
-| `effectivePeriod` | [models.BillingPreviewAttachNextCycleEffectivePeriod](../models/billing-preview-attach-next-cycle-effective-period.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| `effectivePeriod` | [models.BillingPreviewAttachNextCycleEffectivePeriod](../models/billing-preview-attach-next-cycle-effective-period.md) | :heavy_minus_sign: | N/A |
+| `isBase` | *boolean* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/packages/sdk/docs/models/billing-preview-attach-request.md b/packages/sdk/docs/models/billing-preview-attach-request.md
index 6da57d0e0..dd592a2f9 100644
--- a/packages/sdk/docs/models/billing-preview-attach-request.md
+++ b/packages/sdk/docs/models/billing-preview-attach-request.md
@@ -18,9 +18,9 @@ let value: BillingPreviewAttachRequest = {
| `customerId` | *string* | :heavy_check_mark: | The ID of the customer to attach the plan to. |
| `entityId` | *string* | :heavy_minus_sign: | The ID of the entity to attach the plan to. |
| `featureQuantities` | [models.BillingPreviewAttachFeatureQuantities](../models/billing-preview-attach-feature-quantities.md)[] | :heavy_minus_sign: | If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. |
-| `version` | *number* | :heavy_minus_sign: | N/A |
+| `version` | *number* | :heavy_minus_sign: | The version of the plan to attach. |
| `freeTrial` | [models.BillingPreviewAttachFreeTrial](../models/billing-preview-attach-free-trial.md) | :heavy_minus_sign: | N/A |
-| `customize` | [models.BillingPreviewAttachCustomize](../models/billing-preview-attach-customize.md) | :heavy_minus_sign: | N/A |
+| `customize` | [models.BillingPreviewAttachCustomize](../models/billing-preview-attach-customize.md) | :heavy_minus_sign: | Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. |
| `planId` | *string* | :heavy_check_mark: | N/A |
| `invoiceMode` | [models.BillingPreviewAttachInvoiceMode](../models/billing-preview-attach-invoice-mode.md) | :heavy_minus_sign: | N/A |
| `discounts` | *models.BillingPreviewAttachDiscountUnion*[] | :heavy_minus_sign: | N/A |
diff --git a/packages/sdk/docs/models/billing-preview-attach-response.md b/packages/sdk/docs/models/billing-preview-attach-response.md
index d13d67e3b..bea2b64d8 100644
--- a/packages/sdk/docs/models/billing-preview-attach-response.md
+++ b/packages/sdk/docs/models/billing-preview-attach-response.md
@@ -15,9 +15,9 @@ let value: BillingPreviewAttachResponse = {
description:
"what finally apparatus coaxingly atop inside amid heavily CD notwithstanding",
amount: 8002.47,
+ planId: "",
totalQuantity: 1699.59,
paidQuantity: 5709.75,
- planId: "",
},
],
total: 3142.76,
@@ -65,7 +65,6 @@ let value: BillingPreviewAttachResponse = {
],
balances: {
"key": {
- object: "balance",
featureId: "",
granted: 3858.89,
remaining: 9478.44,
@@ -93,7 +92,6 @@ let value: BillingPreviewAttachResponse = {
| `currency` | *string* | :heavy_check_mark: | N/A |
| `periodStart` | *number* | :heavy_minus_sign: | N/A |
| `periodEnd` | *number* | :heavy_minus_sign: | N/A |
-| `credit` | [models.BillingPreviewAttachCredit](../models/billing-preview-attach-credit.md) | :heavy_minus_sign: | N/A |
| `nextCycle` | [models.BillingPreviewAttachNextCycle](../models/billing-preview-attach-next-cycle.md) | :heavy_minus_sign: | N/A |
| `incoming` | [models.Incoming](../models/incoming.md)[] | :heavy_check_mark: | N/A |
| `outgoing` | [models.Outgoing](../models/outgoing.md)[] | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/billing-preview-update-credit.md b/packages/sdk/docs/models/billing-preview-update-credit.md
deleted file mode 100644
index adf2289fe..000000000
--- a/packages/sdk/docs/models/billing-preview-update-credit.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# BillingPreviewUpdateCredit
-
-## Example Usage
-
-```typescript
-import { BillingPreviewUpdateCredit } from "@useautumn/sdk";
-
-let value: BillingPreviewUpdateCredit = {
- amount: 1261.98,
- description: "book whether yuck difficult acidic comb between famously whose",
-};
-```
-
-## Fields
-
-| Field | Type | Required | Description |
-| ------------------ | ------------------ | ------------------ | ------------------ |
-| `amount` | *number* | :heavy_check_mark: | N/A |
-| `description` | *string* | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/packages/sdk/docs/models/billing-preview-update-customize.md b/packages/sdk/docs/models/billing-preview-update-customize.md
index abaa75e9e..c452501c4 100644
--- a/packages/sdk/docs/models/billing-preview-update-customize.md
+++ b/packages/sdk/docs/models/billing-preview-update-customize.md
@@ -1,5 +1,7 @@
# BillingPreviewUpdateCustomize
+Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+
## Example Usage
```typescript
diff --git a/packages/sdk/docs/models/billing-preview-update-invoice-mode.md b/packages/sdk/docs/models/billing-preview-update-invoice-mode.md
index 7b502dc6c..e11c822a5 100644
--- a/packages/sdk/docs/models/billing-preview-update-invoice-mode.md
+++ b/packages/sdk/docs/models/billing-preview-update-invoice-mode.md
@@ -12,8 +12,8 @@ let value: BillingPreviewUpdateInvoiceMode = {
## Fields
-| Field | Type | Required | Description |
-| -------------------------- | -------------------------- | -------------------------- | -------------------------- |
-| `enabled` | *boolean* | :heavy_check_mark: | N/A |
-| `enableProductImmediately` | *boolean* | :heavy_minus_sign: | N/A |
-| `finalizeInvoice` | *boolean* | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ----------------------- | ----------------------- | ----------------------- | ----------------------- |
+| `enabled` | *boolean* | :heavy_check_mark: | N/A |
+| `enablePlanImmediately` | *boolean* | :heavy_minus_sign: | N/A |
+| `finalize` | *boolean* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/packages/sdk/docs/models/billing-preview-update-line-item.md b/packages/sdk/docs/models/billing-preview-update-line-item.md
index 61b9b0355..1ed943f4e 100644
--- a/packages/sdk/docs/models/billing-preview-update-line-item.md
+++ b/packages/sdk/docs/models/billing-preview-update-line-item.md
@@ -10,9 +10,9 @@ let value: BillingPreviewUpdateLineItem = {
description:
"nun uh-huh clonk towards forenenst major yum justly young brand",
amount: 4163.79,
+ planId: "",
totalQuantity: 7156.63,
paidQuantity: 2381.01,
- planId: "",
};
```
@@ -24,9 +24,9 @@ let value: BillingPreviewUpdateLineItem = {
| `description` | *string* | :heavy_check_mark: | N/A |
| `amount` | *number* | :heavy_check_mark: | N/A |
| `discounts` | [models.BillingPreviewUpdateDiscount](../models/billing-preview-update-discount.md)[] | :heavy_minus_sign: | N/A |
-| `isBase` | *boolean* | :heavy_minus_sign: | N/A |
+| `planId` | *string* | :heavy_check_mark: | N/A |
| `totalQuantity` | *number* | :heavy_check_mark: | N/A |
| `paidQuantity` | *number* | :heavy_check_mark: | N/A |
-| `planId` | *string* | :heavy_check_mark: | N/A |
| `deferredForTrial` | *boolean* | :heavy_minus_sign: | N/A |
-| `effectivePeriod` | [models.BillingPreviewUpdateEffectivePeriod](../models/billing-preview-update-effective-period.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| `effectivePeriod` | [models.BillingPreviewUpdateEffectivePeriod](../models/billing-preview-update-effective-period.md) | :heavy_minus_sign: | N/A |
+| `isBase` | *boolean* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/packages/sdk/docs/models/billing-preview-update-next-cycle-line-item.md b/packages/sdk/docs/models/billing-preview-update-next-cycle-line-item.md
index 68c508b50..76d411dc0 100644
--- a/packages/sdk/docs/models/billing-preview-update-next-cycle-line-item.md
+++ b/packages/sdk/docs/models/billing-preview-update-next-cycle-line-item.md
@@ -9,9 +9,9 @@ let value: BillingPreviewUpdateNextCycleLineItem = {
title: "",
description: "as wetly punctual nor upon likewise unless that motionless",
amount: 4446.55,
+ planId: "",
totalQuantity: 4950.32,
paidQuantity: 9579.37,
- planId: "",
};
```
@@ -23,9 +23,9 @@ let value: BillingPreviewUpdateNextCycleLineItem = {
| `description` | *string* | :heavy_check_mark: | N/A |
| `amount` | *number* | :heavy_check_mark: | N/A |
| `discounts` | [models.BillingPreviewUpdateNextCycleDiscount](../models/billing-preview-update-next-cycle-discount.md)[] | :heavy_minus_sign: | N/A |
-| `isBase` | *boolean* | :heavy_minus_sign: | N/A |
+| `planId` | *string* | :heavy_check_mark: | N/A |
| `totalQuantity` | *number* | :heavy_check_mark: | N/A |
| `paidQuantity` | *number* | :heavy_check_mark: | N/A |
-| `planId` | *string* | :heavy_check_mark: | N/A |
| `deferredForTrial` | *boolean* | :heavy_minus_sign: | N/A |
-| `effectivePeriod` | [models.BillingPreviewUpdateNextCycleEffectivePeriod](../models/billing-preview-update-next-cycle-effective-period.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| `effectivePeriod` | [models.BillingPreviewUpdateNextCycleEffectivePeriod](../models/billing-preview-update-next-cycle-effective-period.md) | :heavy_minus_sign: | N/A |
+| `isBase` | *boolean* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/packages/sdk/docs/models/billing-preview-update-next-cycle.md b/packages/sdk/docs/models/billing-preview-update-next-cycle.md
index ffc4ac84f..3a02cabaf 100644
--- a/packages/sdk/docs/models/billing-preview-update-next-cycle.md
+++ b/packages/sdk/docs/models/billing-preview-update-next-cycle.md
@@ -13,9 +13,9 @@ let value: BillingPreviewUpdateNextCycle = {
title: "",
description: "given gratefully whoever",
amount: 5703.35,
+ planId: "",
totalQuantity: 3085.48,
paidQuantity: 8080.87,
- planId: "",
},
],
};
diff --git a/packages/sdk/docs/models/billing-preview-update-request.md b/packages/sdk/docs/models/billing-preview-update-request.md
index e2f0308fe..07a22eeaa 100644
--- a/packages/sdk/docs/models/billing-preview-update-request.md
+++ b/packages/sdk/docs/models/billing-preview-update-request.md
@@ -17,9 +17,9 @@ let value: BillingPreviewUpdateRequest = {
| `customerId` | *string* | :heavy_check_mark: | The ID of the customer to attach the plan to. |
| `entityId` | *string* | :heavy_minus_sign: | The ID of the entity to attach the plan to. |
| `featureQuantities` | [models.BillingPreviewUpdateFeatureQuantities](../models/billing-preview-update-feature-quantities.md)[] | :heavy_minus_sign: | If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. |
-| `version` | *number* | :heavy_minus_sign: | N/A |
+| `version` | *number* | :heavy_minus_sign: | The version of the plan to attach. |
| `freeTrial` | [models.BillingPreviewUpdateFreeTrial](../models/billing-preview-update-free-trial.md) | :heavy_minus_sign: | N/A |
-| `customize` | [models.BillingPreviewUpdateCustomize](../models/billing-preview-update-customize.md) | :heavy_minus_sign: | N/A |
+| `customize` | [models.BillingPreviewUpdateCustomize](../models/billing-preview-update-customize.md) | :heavy_minus_sign: | Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. |
| `planId` | *string* | :heavy_minus_sign: | N/A |
| `invoiceMode` | [models.BillingPreviewUpdateInvoiceMode](../models/billing-preview-update-invoice-mode.md) | :heavy_minus_sign: | N/A |
| `cancelAction` | [models.BillingPreviewUpdateCancelAction](../models/billing-preview-update-cancel-action.md) | :heavy_minus_sign: | N/A |
diff --git a/packages/sdk/docs/models/billing-preview-update-response.md b/packages/sdk/docs/models/billing-preview-update-response.md
index e78bea290..53925f7fd 100644
--- a/packages/sdk/docs/models/billing-preview-update-response.md
+++ b/packages/sdk/docs/models/billing-preview-update-response.md
@@ -25,5 +25,4 @@ let value: BillingPreviewUpdateResponse = {
| `currency` | *string* | :heavy_check_mark: | N/A |
| `periodStart` | *number* | :heavy_minus_sign: | N/A |
| `periodEnd` | *number* | :heavy_minus_sign: | N/A |
-| `credit` | [models.BillingPreviewUpdateCredit](../models/billing-preview-update-credit.md) | :heavy_minus_sign: | N/A |
| `nextCycle` | [models.BillingPreviewUpdateNextCycle](../models/billing-preview-update-next-cycle.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/packages/sdk/docs/models/billing-update-customize.md b/packages/sdk/docs/models/billing-update-customize.md
index 5aab2d456..3155a23f4 100644
--- a/packages/sdk/docs/models/billing-update-customize.md
+++ b/packages/sdk/docs/models/billing-update-customize.md
@@ -1,5 +1,7 @@
# BillingUpdateCustomize
+Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+
## Example Usage
```typescript
diff --git a/packages/sdk/docs/models/billing-update-invoice-mode.md b/packages/sdk/docs/models/billing-update-invoice-mode.md
index b0d26a7c6..41a918bde 100644
--- a/packages/sdk/docs/models/billing-update-invoice-mode.md
+++ b/packages/sdk/docs/models/billing-update-invoice-mode.md
@@ -12,8 +12,8 @@ let value: BillingUpdateInvoiceMode = {
## Fields
-| Field | Type | Required | Description |
-| -------------------------- | -------------------------- | -------------------------- | -------------------------- |
-| `enabled` | *boolean* | :heavy_check_mark: | N/A |
-| `enableProductImmediately` | *boolean* | :heavy_minus_sign: | N/A |
-| `finalizeInvoice` | *boolean* | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ----------------------- | ----------------------- | ----------------------- | ----------------------- |
+| `enabled` | *boolean* | :heavy_check_mark: | N/A |
+| `enablePlanImmediately` | *boolean* | :heavy_minus_sign: | N/A |
+| `finalize` | *boolean* | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/packages/sdk/docs/models/billing-update-request.md b/packages/sdk/docs/models/billing-update-request.md
index cdfe4085d..ad79f2483 100644
--- a/packages/sdk/docs/models/billing-update-request.md
+++ b/packages/sdk/docs/models/billing-update-request.md
@@ -17,9 +17,9 @@ let value: BillingUpdateRequest = {
| `customerId` | *string* | :heavy_check_mark: | The ID of the customer to attach the plan to. |
| `entityId` | *string* | :heavy_minus_sign: | The ID of the entity to attach the plan to. |
| `featureQuantities` | [models.BillingUpdateFeatureQuantities](../models/billing-update-feature-quantities.md)[] | :heavy_minus_sign: | If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. |
-| `version` | *number* | :heavy_minus_sign: | N/A |
+| `version` | *number* | :heavy_minus_sign: | The version of the plan to attach. |
| `freeTrial` | [models.BillingUpdateFreeTrial](../models/billing-update-free-trial.md) | :heavy_minus_sign: | N/A |
-| `customize` | [models.BillingUpdateCustomize](../models/billing-update-customize.md) | :heavy_minus_sign: | N/A |
+| `customize` | [models.BillingUpdateCustomize](../models/billing-update-customize.md) | :heavy_minus_sign: | Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. |
| `planId` | *string* | :heavy_minus_sign: | N/A |
| `invoiceMode` | [models.BillingUpdateInvoiceMode](../models/billing-update-invoice-mode.md) | :heavy_minus_sign: | N/A |
| `cancelAction` | [models.BillingUpdateCancelAction](../models/billing-update-cancel-action.md) | :heavy_minus_sign: | N/A |
diff --git a/packages/sdk/docs/models/breakdown.md b/packages/sdk/docs/models/breakdown.md
index e4072746d..f6bdbd480 100644
--- a/packages/sdk/docs/models/breakdown.md
+++ b/packages/sdk/docs/models/breakdown.md
@@ -6,7 +6,6 @@
import { Breakdown } from "@useautumn/sdk";
let value: Breakdown = {
- object: "balance_breakdown",
planId: "",
includedGrant: 2970.54,
prepaidGrant: 4188.54,
@@ -30,7 +29,6 @@ let value: Breakdown = {
| Field | Type | Required | Description |
| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- |
-| `object` | *"balance_breakdown"* | :heavy_check_mark: | N/A |
| `id` | *string* | :heavy_minus_sign: | N/A |
| `planId` | *string* | :heavy_check_mark: | N/A |
| `includedGrant` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/customer.md b/packages/sdk/docs/models/customer.md
index 440255c4c..d7c1b370d 100644
--- a/packages/sdk/docs/models/customer.md
+++ b/packages/sdk/docs/models/customer.md
@@ -34,7 +34,6 @@ let value: Customer = {
purchases: [],
balances: {
"balance_1": {
- object: "balance",
featureId: "",
granted: 7438.76,
remaining: 7441.15,
diff --git a/packages/sdk/docs/models/incoming-balances.md b/packages/sdk/docs/models/incoming-balances.md
index 35a1e5118..d7aa18a43 100644
--- a/packages/sdk/docs/models/incoming-balances.md
+++ b/packages/sdk/docs/models/incoming-balances.md
@@ -6,7 +6,6 @@
import { IncomingBalances } from "@useautumn/sdk";
let value: IncomingBalances = {
- object: "balance",
featureId: "",
granted: 3885.87,
remaining: 4866.24,
@@ -22,7 +21,6 @@ let value: IncomingBalances = {
| Field | Type | Required | Description |
| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- |
-| `object` | *"balance"* | :heavy_check_mark: | N/A |
| `featureId` | *string* | :heavy_check_mark: | N/A |
| `feature` | [models.IncomingFeature](../models/incoming-feature.md) | :heavy_minus_sign: | N/A |
| `granted` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/incoming-breakdown.md b/packages/sdk/docs/models/incoming-breakdown.md
index 10321802d..ef753ea99 100644
--- a/packages/sdk/docs/models/incoming-breakdown.md
+++ b/packages/sdk/docs/models/incoming-breakdown.md
@@ -6,7 +6,6 @@
import { IncomingBreakdown } from "@useautumn/sdk";
let value: IncomingBreakdown = {
- object: "balance_breakdown",
planId: "",
includedGrant: 7793.91,
prepaidGrant: 8395.06,
@@ -30,7 +29,6 @@ let value: IncomingBreakdown = {
| Field | Type | Required | Description |
| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- |
-| `object` | *"balance_breakdown"* | :heavy_check_mark: | N/A |
| `id` | *string* | :heavy_minus_sign: | N/A |
| `planId` | *string* | :heavy_check_mark: | N/A |
| `includedGrant` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/incoming.md b/packages/sdk/docs/models/incoming.md
index 1bc0be9a8..14b39cf62 100644
--- a/packages/sdk/docs/models/incoming.md
+++ b/packages/sdk/docs/models/incoming.md
@@ -47,7 +47,6 @@ let value: Incoming = {
],
balances: {
"key": {
- object: "balance",
featureId: "",
granted: 3858.89,
remaining: 9478.44,
diff --git a/packages/sdk/docs/models/list-customers-balances.md b/packages/sdk/docs/models/list-customers-balances.md
index cdcffe810..57123fe51 100644
--- a/packages/sdk/docs/models/list-customers-balances.md
+++ b/packages/sdk/docs/models/list-customers-balances.md
@@ -6,7 +6,6 @@
import { ListCustomersBalances } from "@useautumn/sdk";
let value: ListCustomersBalances = {
- object: "balance",
featureId: "",
granted: 2638.08,
remaining: 7638.23,
@@ -22,7 +21,6 @@ let value: ListCustomersBalances = {
| Field | Type | Required | Description |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
-| `object` | *"balance"* | :heavy_check_mark: | N/A |
| `featureId` | *string* | :heavy_check_mark: | N/A |
| `feature` | [models.ListCustomersFeature](../models/list-customers-feature.md) | :heavy_minus_sign: | N/A |
| `granted` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/list-customers-breakdown.md b/packages/sdk/docs/models/list-customers-breakdown.md
index 4a5ff7d07..e24c52777 100644
--- a/packages/sdk/docs/models/list-customers-breakdown.md
+++ b/packages/sdk/docs/models/list-customers-breakdown.md
@@ -6,7 +6,6 @@
import { ListCustomersBreakdown } from "@useautumn/sdk";
let value: ListCustomersBreakdown = {
- object: "balance_breakdown",
planId: "",
includedGrant: 625.15,
prepaidGrant: 422.07,
@@ -30,7 +29,6 @@ let value: ListCustomersBreakdown = {
| Field | Type | Required | Description |
| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
-| `object` | *"balance_breakdown"* | :heavy_check_mark: | N/A |
| `id` | *string* | :heavy_minus_sign: | N/A |
| `planId` | *string* | :heavy_check_mark: | N/A |
| `includedGrant` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/outgoing-balances.md b/packages/sdk/docs/models/outgoing-balances.md
index 01579531a..33ccd99f1 100644
--- a/packages/sdk/docs/models/outgoing-balances.md
+++ b/packages/sdk/docs/models/outgoing-balances.md
@@ -6,7 +6,6 @@
import { OutgoingBalances } from "@useautumn/sdk";
let value: OutgoingBalances = {
- object: "balance",
featureId: "",
granted: 4580.63,
remaining: 1565.6,
@@ -22,7 +21,6 @@ let value: OutgoingBalances = {
| Field | Type | Required | Description |
| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- |
-| `object` | *"balance"* | :heavy_check_mark: | N/A |
| `featureId` | *string* | :heavy_check_mark: | N/A |
| `feature` | [models.OutgoingFeature](../models/outgoing-feature.md) | :heavy_minus_sign: | N/A |
| `granted` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/outgoing-breakdown.md b/packages/sdk/docs/models/outgoing-breakdown.md
index 2ce1cc741..979288102 100644
--- a/packages/sdk/docs/models/outgoing-breakdown.md
+++ b/packages/sdk/docs/models/outgoing-breakdown.md
@@ -6,7 +6,6 @@
import { OutgoingBreakdown } from "@useautumn/sdk";
let value: OutgoingBreakdown = {
- object: "balance_breakdown",
planId: "",
includedGrant: 1099.43,
prepaidGrant: 2387.81,
@@ -30,7 +29,6 @@ let value: OutgoingBreakdown = {
| Field | Type | Required | Description |
| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- |
-| `object` | *"balance_breakdown"* | :heavy_check_mark: | N/A |
| `id` | *string* | :heavy_minus_sign: | N/A |
| `planId` | *string* | :heavy_check_mark: | N/A |
| `includedGrant` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/outgoing.md b/packages/sdk/docs/models/outgoing.md
index 3223f6bd6..1bc95403e 100644
--- a/packages/sdk/docs/models/outgoing.md
+++ b/packages/sdk/docs/models/outgoing.md
@@ -42,7 +42,6 @@ let value: Outgoing = {
featureQuantities: [],
balances: {
"key": {
- object: "balance",
featureId: "",
granted: 2003.63,
remaining: 7112.33,
diff --git a/packages/sdk/docs/models/update-customer-balances.md b/packages/sdk/docs/models/update-customer-balances.md
index 80debc4a3..011ff0fe5 100644
--- a/packages/sdk/docs/models/update-customer-balances.md
+++ b/packages/sdk/docs/models/update-customer-balances.md
@@ -6,7 +6,6 @@
import { UpdateCustomerBalances } from "@useautumn/sdk";
let value: UpdateCustomerBalances = {
- object: "balance",
featureId: "",
granted: 3659.37,
remaining: 1762.52,
@@ -22,7 +21,6 @@ let value: UpdateCustomerBalances = {
| Field | Type | Required | Description |
| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
-| `object` | *"balance"* | :heavy_check_mark: | N/A |
| `featureId` | *string* | :heavy_check_mark: | N/A |
| `feature` | [models.UpdateCustomerFeature](../models/update-customer-feature.md) | :heavy_minus_sign: | N/A |
| `granted` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/models/update-customer-breakdown.md b/packages/sdk/docs/models/update-customer-breakdown.md
index 90db32085..a39a9da7e 100644
--- a/packages/sdk/docs/models/update-customer-breakdown.md
+++ b/packages/sdk/docs/models/update-customer-breakdown.md
@@ -6,7 +6,6 @@
import { UpdateCustomerBreakdown } from "@useautumn/sdk";
let value: UpdateCustomerBreakdown = {
- object: "balance_breakdown",
planId: "",
includedGrant: 2437.9,
prepaidGrant: 2339.29,
@@ -30,7 +29,6 @@ let value: UpdateCustomerBreakdown = {
| Field | Type | Required | Description |
| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- |
-| `object` | *"balance_breakdown"* | :heavy_check_mark: | N/A |
| `id` | *string* | :heavy_minus_sign: | N/A |
| `planId` | *string* | :heavy_check_mark: | N/A |
| `includedGrant` | *number* | :heavy_check_mark: | N/A |
diff --git a/packages/sdk/docs/sdks/billing/README.md b/packages/sdk/docs/sdks/billing/README.md
index 23e341bba..b4b6ad4f7 100644
--- a/packages/sdk/docs/sdks/billing/README.md
+++ b/packages/sdk/docs/sdks/billing/README.md
@@ -15,6 +15,8 @@ const response = await client.attach({ customerId: "cus_123", planId: "pro_plan"
@param customerId - The ID of the customer to attach the plan to.
@param entityId - The ID of the entity to attach the plan to. (optional)
@param featureQuantities - If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. (optional)
+@param version - The version of the plan to attach. (optional)
+@param customize - Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. (optional)
* [previewAttach](#previewattach) - Preview billing changes before attaching a plan.
* [update](#update) - Update an existing subscription.
* [previewUpdate](#previewupdate) - Preview billing changes before updating a subscription.
@@ -33,6 +35,8 @@ const response = await client.attach({ customerId: "cus_123", planId: "pro_plan"
@param customerId - The ID of the customer to attach the plan to.
@param entityId - The ID of the entity to attach the plan to. (optional)
@param featureQuantities - If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. (optional)
+@param version - The version of the plan to attach. (optional)
+@param customize - Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. (optional)
### Example Usage
diff --git a/packages/sdk/jsr.json b/packages/sdk/jsr.json
index 278b8c189..498da3784 100644
--- a/packages/sdk/jsr.json
+++ b/packages/sdk/jsr.json
@@ -2,7 +2,7 @@
{
"name": "@useautumn/sdk",
- "version": "0.8.25",
+ "version": "0.8.26",
"exports": {
".": "./src/index.ts",
"./models": "./src/models/index.ts",
diff --git a/packages/sdk/package.json b/packages/sdk/package.json
index 193fd5371..ded91f0b7 100644
--- a/packages/sdk/package.json
+++ b/packages/sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@useautumn/sdk",
- "version": "0.8.25",
+ "version": "0.8.26",
"author": "Speakeasy",
"main": "./dist/commonjs/index.js",
"module": "./dist/esm/index.js",
diff --git a/packages/sdk/src/funcs/billing-attach.ts b/packages/sdk/src/funcs/billing-attach.ts
index d8bca161b..2730fb8f3 100644
--- a/packages/sdk/src/funcs/billing-attach.ts
+++ b/packages/sdk/src/funcs/billing-attach.ts
@@ -37,6 +37,8 @@ import { Result } from "../types/fp.js";
* @param customerId - The ID of the customer to attach the plan to.
* @param entityId - The ID of the entity to attach the plan to. (optional)
* @param featureQuantities - If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. (optional)
+ * @param version - The version of the plan to attach. (optional)
+ * @param customize - Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. (optional)
*/
export function billingAttach(
client: AutumnCore,
diff --git a/packages/sdk/src/lib/config.ts b/packages/sdk/src/lib/config.ts
index 9446befa9..c80c88bd2 100644
--- a/packages/sdk/src/lib/config.ts
+++ b/packages/sdk/src/lib/config.ts
@@ -66,7 +66,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
export const SDK_METADATA = {
language: "typescript",
openapiDocVersion: "2.1.0",
- sdkVersion: "0.8.25",
+ sdkVersion: "0.8.26",
genVersion: "2.824.1",
- userAgent: "speakeasy-sdk/typescript 0.8.25 2.824.1 2.1.0 @useautumn/sdk",
+ userAgent: "speakeasy-sdk/typescript 0.8.26 2.824.1 2.1.0 @useautumn/sdk",
} as const;
diff --git a/packages/sdk/src/models/balances-check-op.ts b/packages/sdk/src/models/balances-check-op.ts
index 3ed86b0b4..202ad5a71 100644
--- a/packages/sdk/src/models/balances-check-op.ts
+++ b/packages/sdk/src/models/balances-check-op.ts
@@ -122,7 +122,6 @@ export type BalancesCheckPrice = {
};
export type BalancesCheckBreakdown = {
- object: "balance_breakdown";
id: string;
planId: string | null;
includedGrant: number;
@@ -141,7 +140,6 @@ export type BalancesCheckBalanceRollover = {
};
export type BalancesCheckBalance = {
- object: "balance";
featureId: string;
feature?: BalancesCheckFeature | undefined;
granted: number;
@@ -765,7 +763,6 @@ export const BalancesCheckBreakdown$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance_breakdown"),
id: z._default(types.string(), ""),
plan_id: types.nullable(types.string()),
included_grant: types.number(),
@@ -829,7 +826,6 @@ export const BalancesCheckBalance$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance"),
feature_id: types.string(),
feature: types.optional(z.lazy(() => BalancesCheckFeature$inboundSchema)),
granted: types.number(),
diff --git a/packages/sdk/src/models/balances-track-op.ts b/packages/sdk/src/models/balances-track-op.ts
index bf34bd603..c4a0072f6 100644
--- a/packages/sdk/src/models/balances-track-op.ts
+++ b/packages/sdk/src/models/balances-track-op.ts
@@ -126,7 +126,6 @@ export type BalancesTrackBalancePrice = {
};
export type BalancesTrackBalanceBreakdown = {
- object: "balance_breakdown";
id: string;
planId: string | null;
includedGrant: number;
@@ -145,7 +144,6 @@ export type BalancesTrackBalanceRollover = {
};
export type BalancesTrackBalance = {
- object: "balance";
featureId: string;
feature?: BalancesTrackBalanceFeature | undefined;
granted: number;
@@ -234,7 +232,6 @@ export type BalancesTrackPrice = {
};
export type BalancesTrackBreakdown = {
- object: "balance_breakdown";
id: string;
planId: string | null;
includedGrant: number;
@@ -253,7 +250,6 @@ export type BalancesTrackRollover = {
};
export type BalancesTrackBalances = {
- object: "balance";
featureId: string;
feature?: BalancesTrackFeature | undefined;
granted: number;
@@ -557,7 +553,6 @@ export const BalancesTrackBalanceBreakdown$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance_breakdown"),
id: z._default(types.string(), ""),
plan_id: types.nullable(types.string()),
included_grant: types.number(),
@@ -625,7 +620,6 @@ export const BalancesTrackBalance$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance"),
feature_id: types.string(),
feature: types.optional(
z.lazy(() => BalancesTrackBalanceFeature$inboundSchema),
@@ -884,7 +878,6 @@ export const BalancesTrackBreakdown$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance_breakdown"),
id: z._default(types.string(), ""),
plan_id: types.nullable(types.string()),
included_grant: types.number(),
@@ -948,7 +941,6 @@ export const BalancesTrackBalances$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance"),
feature_id: types.string(),
feature: types.optional(z.lazy(() => BalancesTrackFeature$inboundSchema)),
granted: types.number(),
diff --git a/packages/sdk/src/models/billing-attach-op.ts b/packages/sdk/src/models/billing-attach-op.ts
index 278602bb4..a80e00630 100644
--- a/packages/sdk/src/models/billing-attach-op.ts
+++ b/packages/sdk/src/models/billing-attach-op.ts
@@ -162,6 +162,9 @@ export type BillingAttachItem = {
rollover?: BillingAttachRollover | undefined;
};
+/**
+ * Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+ */
export type BillingAttachCustomize = {
price?: BillingAttachPrice | null | undefined;
items?: Array | undefined;
@@ -169,8 +172,8 @@ export type BillingAttachCustomize = {
export type BillingAttachInvoiceMode = {
enabled: boolean;
- enableProductImmediately?: boolean | undefined;
- finalizeInvoice?: boolean | undefined;
+ enablePlanImmediately?: boolean | undefined;
+ finalize?: boolean | undefined;
};
export type BillingAttachDiscount2 = {
@@ -223,8 +226,14 @@ export type BillingAttachRequest = {
* If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
*/
featureQuantities?: Array | null | undefined;
+ /**
+ * The version of the plan to attach.
+ */
version?: number | undefined;
freeTrial?: BillingAttachFreeTrial | null | undefined;
+ /**
+ * Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+ */
customize?: BillingAttachCustomize | undefined;
planId: string;
invoiceMode?: BillingAttachInvoiceMode | undefined;
@@ -652,8 +661,8 @@ export function billingAttachCustomizeToJSON(
/** @internal */
export type BillingAttachInvoiceMode$Outbound = {
enabled: boolean;
- enable_product_immediately: boolean;
- finalize_invoice: boolean;
+ enable_plan_immediately: boolean;
+ finalize: boolean;
};
/** @internal */
@@ -663,13 +672,12 @@ export const BillingAttachInvoiceMode$outboundSchema: z.ZodMiniType<
> = z.pipe(
z.object({
enabled: z.boolean(),
- enableProductImmediately: z._default(z.boolean(), false),
- finalizeInvoice: z._default(z.boolean(), true),
+ enablePlanImmediately: z._default(z.boolean(), false),
+ finalize: z._default(z.boolean(), true),
}),
z.transform((v) => {
return remap$(v, {
- enableProductImmediately: "enable_product_immediately",
- finalizeInvoice: "finalize_invoice",
+ enablePlanImmediately: "enable_plan_immediately",
});
}),
);
diff --git a/packages/sdk/src/models/billing-preview-attach-op.ts b/packages/sdk/src/models/billing-preview-attach-op.ts
index 27c9d844b..8cad4b5fe 100644
--- a/packages/sdk/src/models/billing-preview-attach-op.ts
+++ b/packages/sdk/src/models/billing-preview-attach-op.ts
@@ -163,6 +163,9 @@ export type BillingPreviewAttachItem = {
rollover?: BillingPreviewAttachRolloverRequest | undefined;
};
+/**
+ * Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+ */
export type BillingPreviewAttachCustomize = {
price?: BillingPreviewAttachPriceRequest | null | undefined;
items?: Array | undefined;
@@ -170,8 +173,8 @@ export type BillingPreviewAttachCustomize = {
export type BillingPreviewAttachInvoiceMode = {
enabled: boolean;
- enableProductImmediately?: boolean | undefined;
- finalizeInvoice?: boolean | undefined;
+ enablePlanImmediately?: boolean | undefined;
+ finalize?: boolean | undefined;
};
export type BillingPreviewAttachDiscountRequest2 = {
@@ -227,8 +230,14 @@ export type BillingPreviewAttachRequest = {
| Array
| null
| undefined;
+ /**
+ * The version of the plan to attach.
+ */
version?: number | undefined;
freeTrial?: BillingPreviewAttachFreeTrial | null | undefined;
+ /**
+ * Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+ */
customize?: BillingPreviewAttachCustomize | undefined;
planId: string;
invoiceMode?: BillingPreviewAttachInvoiceMode | undefined;
@@ -262,17 +271,12 @@ export type BillingPreviewAttachLineItem = {
description: string;
amount: number;
discounts?: Array | undefined;
- isBase?: boolean | undefined;
+ planId: string;
totalQuantity: number;
paidQuantity: number;
- planId: string;
deferredForTrial?: boolean | undefined;
effectivePeriod?: BillingPreviewAttachEffectivePeriod | undefined;
-};
-
-export type BillingPreviewAttachCredit = {
- amount: number;
- description: string;
+ isBase?: boolean | undefined;
};
export type BillingPreviewAttachNextCycleDiscount = {
@@ -292,12 +296,12 @@ export type BillingPreviewAttachNextCycleLineItem = {
description: string;
amount: number;
discounts?: Array | undefined;
- isBase?: boolean | undefined;
+ planId: string;
totalQuantity: number;
paidQuantity: number;
- planId: string;
deferredForTrial?: boolean | undefined;
effectivePeriod?: BillingPreviewAttachNextCycleEffectivePeriod | undefined;
+ isBase?: boolean | undefined;
};
export type BillingPreviewAttachNextCycle = {
@@ -380,7 +384,6 @@ export type IncomingPrice = {
};
export type IncomingBreakdown = {
- object: "balance_breakdown";
id: string;
planId: string | null;
includedGrant: number;
@@ -399,7 +402,6 @@ export type IncomingRollover = {
};
export type IncomingBalances = {
- object: "balance";
featureId: string;
feature?: IncomingFeature | undefined;
granted: number;
@@ -495,7 +497,6 @@ export type OutgoingPrice = {
};
export type OutgoingBreakdown = {
- object: "balance_breakdown";
id: string;
planId: string | null;
includedGrant: number;
@@ -514,7 +515,6 @@ export type OutgoingRollover = {
};
export type OutgoingBalances = {
- object: "balance";
featureId: string;
feature?: OutgoingFeature | undefined;
granted: number;
@@ -552,7 +552,6 @@ export type BillingPreviewAttachResponse = {
currency: string;
periodStart?: number | undefined;
periodEnd?: number | undefined;
- credit?: BillingPreviewAttachCredit | undefined;
nextCycle?: BillingPreviewAttachNextCycle | undefined;
incoming: Array;
outgoing: Array;
@@ -980,8 +979,8 @@ export function billingPreviewAttachCustomizeToJSON(
/** @internal */
export type BillingPreviewAttachInvoiceMode$Outbound = {
enabled: boolean;
- enable_product_immediately: boolean;
- finalize_invoice: boolean;
+ enable_plan_immediately: boolean;
+ finalize: boolean;
};
/** @internal */
@@ -991,13 +990,12 @@ export const BillingPreviewAttachInvoiceMode$outboundSchema: z.ZodMiniType<
> = z.pipe(
z.object({
enabled: z.boolean(),
- enableProductImmediately: z._default(z.boolean(), false),
- finalizeInvoice: z._default(z.boolean(), true),
+ enablePlanImmediately: z._default(z.boolean(), false),
+ finalize: z._default(z.boolean(), true),
}),
z.transform((v) => {
return remap$(v, {
- enableProductImmediately: "enable_product_immediately",
- finalizeInvoice: "finalize_invoice",
+ enablePlanImmediately: "enable_plan_immediately",
});
}),
);
@@ -1257,23 +1255,23 @@ export const BillingPreviewAttachLineItem$inboundSchema: z.ZodMiniType<
discounts: types.optional(
z.array(z.lazy(() => BillingPreviewAttachDiscountResponse$inboundSchema)),
),
- is_base: types.optional(types.boolean()),
+ plan_id: types.string(),
total_quantity: types.number(),
paid_quantity: types.number(),
- plan_id: types.string(),
deferred_for_trial: types.optional(types.boolean()),
effective_period: types.optional(
z.lazy(() => BillingPreviewAttachEffectivePeriod$inboundSchema),
),
+ is_base: types.optional(types.boolean()),
}),
z.transform((v) => {
return remap$(v, {
- "is_base": "isBase",
+ "plan_id": "planId",
"total_quantity": "totalQuantity",
"paid_quantity": "paidQuantity",
- "plan_id": "planId",
"deferred_for_trial": "deferredForTrial",
"effective_period": "effectivePeriod",
+ "is_base": "isBase",
});
}),
);
@@ -1288,25 +1286,6 @@ export function billingPreviewAttachLineItemFromJSON(
);
}
-/** @internal */
-export const BillingPreviewAttachCredit$inboundSchema: z.ZodMiniType<
- BillingPreviewAttachCredit,
- unknown
-> = z.object({
- amount: types.number(),
- description: types.string(),
-});
-
-export function billingPreviewAttachCreditFromJSON(
- jsonString: string,
-): SafeParseResult {
- return safeParse(
- jsonString,
- (x) => BillingPreviewAttachCredit$inboundSchema.parse(JSON.parse(x)),
- `Failed to parse 'BillingPreviewAttachCredit' from JSON`,
- );
-}
-
/** @internal */
export const BillingPreviewAttachNextCycleDiscount$inboundSchema: z.ZodMiniType<
BillingPreviewAttachNextCycleDiscount,
@@ -1367,23 +1346,23 @@ export const BillingPreviewAttachNextCycleLineItem$inboundSchema: z.ZodMiniType<
z.lazy(() => BillingPreviewAttachNextCycleDiscount$inboundSchema),
),
),
- is_base: types.optional(types.boolean()),
+ plan_id: types.string(),
total_quantity: types.number(),
paid_quantity: types.number(),
- plan_id: types.string(),
deferred_for_trial: types.optional(types.boolean()),
effective_period: types.optional(
z.lazy(() => BillingPreviewAttachNextCycleEffectivePeriod$inboundSchema),
),
+ is_base: types.optional(types.boolean()),
}),
z.transform((v) => {
return remap$(v, {
- "is_base": "isBase",
+ "plan_id": "planId",
"total_quantity": "totalQuantity",
"paid_quantity": "paidQuantity",
- "plan_id": "planId",
"deferred_for_trial": "deferredForTrial",
"effective_period": "effectivePeriod",
+ "is_base": "isBase",
});
}),
);
@@ -1650,7 +1629,6 @@ export const IncomingBreakdown$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance_breakdown"),
id: z._default(types.string(), ""),
plan_id: types.nullable(types.string()),
included_grant: types.number(),
@@ -1714,7 +1692,6 @@ export const IncomingBalances$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance"),
feature_id: types.string(),
feature: types.optional(z.lazy(() => IncomingFeature$inboundSchema)),
granted: types.number(),
@@ -2005,7 +1982,6 @@ export const OutgoingBreakdown$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance_breakdown"),
id: z._default(types.string(), ""),
plan_id: types.nullable(types.string()),
included_grant: types.number(),
@@ -2069,7 +2045,6 @@ export const OutgoingBalances$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance"),
feature_id: types.string(),
feature: types.optional(z.lazy(() => OutgoingFeature$inboundSchema)),
granted: types.number(),
@@ -2157,9 +2132,6 @@ export const BillingPreviewAttachResponse$inboundSchema: z.ZodMiniType<
currency: types.string(),
period_start: types.optional(types.number()),
period_end: types.optional(types.number()),
- credit: types.optional(
- z.lazy(() => BillingPreviewAttachCredit$inboundSchema),
- ),
next_cycle: types.optional(
z.lazy(() => BillingPreviewAttachNextCycle$inboundSchema),
),
diff --git a/packages/sdk/src/models/billing-preview-update-op.ts b/packages/sdk/src/models/billing-preview-update-op.ts
index ffc9948f6..6caf3a21e 100644
--- a/packages/sdk/src/models/billing-preview-update-op.ts
+++ b/packages/sdk/src/models/billing-preview-update-op.ts
@@ -161,6 +161,9 @@ export type BillingPreviewUpdateItem = {
rollover?: BillingPreviewUpdateRollover | undefined;
};
+/**
+ * Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+ */
export type BillingPreviewUpdateCustomize = {
price?: BillingPreviewUpdatePrice | null | undefined;
items?: Array | undefined;
@@ -168,8 +171,8 @@ export type BillingPreviewUpdateCustomize = {
export type BillingPreviewUpdateInvoiceMode = {
enabled: boolean;
- enableProductImmediately?: boolean | undefined;
- finalizeInvoice?: boolean | undefined;
+ enablePlanImmediately?: boolean | undefined;
+ finalize?: boolean | undefined;
};
export const BillingPreviewUpdateCancelAction = {
@@ -205,10 +208,16 @@ export type BillingPreviewUpdateRequest = {
| Array
| null
| undefined;
+ /**
+ * The version of the plan to attach.
+ */
version?: number | undefined;
freeTrial?: BillingPreviewUpdateFreeTrial | null | undefined;
+ /**
+ * Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+ */
customize?: BillingPreviewUpdateCustomize | undefined;
- planId?: string | null | undefined;
+ planId?: string | undefined;
invoiceMode?: BillingPreviewUpdateInvoiceMode | undefined;
cancelAction?: BillingPreviewUpdateCancelAction | undefined;
billingBehavior?: BillingPreviewUpdateBillingBehavior | undefined;
@@ -231,17 +240,12 @@ export type BillingPreviewUpdateLineItem = {
description: string;
amount: number;
discounts?: Array | undefined;
- isBase?: boolean | undefined;
+ planId: string;
totalQuantity: number;
paidQuantity: number;
- planId: string;
deferredForTrial?: boolean | undefined;
effectivePeriod?: BillingPreviewUpdateEffectivePeriod | undefined;
-};
-
-export type BillingPreviewUpdateCredit = {
- amount: number;
- description: string;
+ isBase?: boolean | undefined;
};
export type BillingPreviewUpdateNextCycleDiscount = {
@@ -261,12 +265,12 @@ export type BillingPreviewUpdateNextCycleLineItem = {
description: string;
amount: number;
discounts?: Array | undefined;
- isBase?: boolean | undefined;
+ planId: string;
totalQuantity: number;
paidQuantity: number;
- planId: string;
deferredForTrial?: boolean | undefined;
effectivePeriod?: BillingPreviewUpdateNextCycleEffectivePeriod | undefined;
+ isBase?: boolean | undefined;
};
export type BillingPreviewUpdateNextCycle = {
@@ -285,7 +289,6 @@ export type BillingPreviewUpdateResponse = {
currency: string;
periodStart?: number | undefined;
periodEnd?: number | undefined;
- credit?: BillingPreviewUpdateCredit | undefined;
nextCycle?: BillingPreviewUpdateNextCycle | undefined;
};
@@ -700,8 +703,8 @@ export function billingPreviewUpdateCustomizeToJSON(
/** @internal */
export type BillingPreviewUpdateInvoiceMode$Outbound = {
enabled: boolean;
- enable_product_immediately: boolean;
- finalize_invoice: boolean;
+ enable_plan_immediately: boolean;
+ finalize: boolean;
};
/** @internal */
@@ -711,13 +714,12 @@ export const BillingPreviewUpdateInvoiceMode$outboundSchema: z.ZodMiniType<
> = z.pipe(
z.object({
enabled: z.boolean(),
- enableProductImmediately: z._default(z.boolean(), false),
- finalizeInvoice: z._default(z.boolean(), true),
+ enablePlanImmediately: z._default(z.boolean(), false),
+ finalize: z._default(z.boolean(), true),
}),
z.transform((v) => {
return remap$(v, {
- enableProductImmediately: "enable_product_immediately",
- finalizeInvoice: "finalize_invoice",
+ enablePlanImmediately: "enable_plan_immediately",
});
}),
);
@@ -753,7 +755,7 @@ export type BillingPreviewUpdateRequest$Outbound = {
version?: number | undefined;
free_trial?: BillingPreviewUpdateFreeTrial$Outbound | null | undefined;
customize?: BillingPreviewUpdateCustomize$Outbound | undefined;
- plan_id?: string | null | undefined;
+ plan_id?: string | undefined;
invoice_mode?: BillingPreviewUpdateInvoiceMode$Outbound | undefined;
cancel_action?: string | undefined;
billing_behavior?: string | undefined;
@@ -777,7 +779,7 @@ export const BillingPreviewUpdateRequest$outboundSchema: z.ZodMiniType<
customize: z.optional(z.lazy(() =>
BillingPreviewUpdateCustomize$outboundSchema
)),
- planId: z.optional(z.nullable(z.string())),
+ planId: z.optional(z.string()),
invoiceMode: z.optional(z.lazy(() =>
BillingPreviewUpdateInvoiceMode$outboundSchema
)),
@@ -863,23 +865,23 @@ export const BillingPreviewUpdateLineItem$inboundSchema: z.ZodMiniType<
discounts: types.optional(
z.array(z.lazy(() => BillingPreviewUpdateDiscount$inboundSchema)),
),
- is_base: types.optional(types.boolean()),
+ plan_id: types.string(),
total_quantity: types.number(),
paid_quantity: types.number(),
- plan_id: types.string(),
deferred_for_trial: types.optional(types.boolean()),
effective_period: types.optional(
z.lazy(() => BillingPreviewUpdateEffectivePeriod$inboundSchema),
),
+ is_base: types.optional(types.boolean()),
}),
z.transform((v) => {
return remap$(v, {
- "is_base": "isBase",
+ "plan_id": "planId",
"total_quantity": "totalQuantity",
"paid_quantity": "paidQuantity",
- "plan_id": "planId",
"deferred_for_trial": "deferredForTrial",
"effective_period": "effectivePeriod",
+ "is_base": "isBase",
});
}),
);
@@ -894,25 +896,6 @@ export function billingPreviewUpdateLineItemFromJSON(
);
}
-/** @internal */
-export const BillingPreviewUpdateCredit$inboundSchema: z.ZodMiniType<
- BillingPreviewUpdateCredit,
- unknown
-> = z.object({
- amount: types.number(),
- description: types.string(),
-});
-
-export function billingPreviewUpdateCreditFromJSON(
- jsonString: string,
-): SafeParseResult {
- return safeParse(
- jsonString,
- (x) => BillingPreviewUpdateCredit$inboundSchema.parse(JSON.parse(x)),
- `Failed to parse 'BillingPreviewUpdateCredit' from JSON`,
- );
-}
-
/** @internal */
export const BillingPreviewUpdateNextCycleDiscount$inboundSchema: z.ZodMiniType<
BillingPreviewUpdateNextCycleDiscount,
@@ -973,23 +956,23 @@ export const BillingPreviewUpdateNextCycleLineItem$inboundSchema: z.ZodMiniType<
z.lazy(() => BillingPreviewUpdateNextCycleDiscount$inboundSchema),
),
),
- is_base: types.optional(types.boolean()),
+ plan_id: types.string(),
total_quantity: types.number(),
paid_quantity: types.number(),
- plan_id: types.string(),
deferred_for_trial: types.optional(types.boolean()),
effective_period: types.optional(
z.lazy(() => BillingPreviewUpdateNextCycleEffectivePeriod$inboundSchema),
),
+ is_base: types.optional(types.boolean()),
}),
z.transform((v) => {
return remap$(v, {
- "is_base": "isBase",
+ "plan_id": "planId",
"total_quantity": "totalQuantity",
"paid_quantity": "paidQuantity",
- "plan_id": "planId",
"deferred_for_trial": "deferredForTrial",
"effective_period": "effectivePeriod",
+ "is_base": "isBase",
});
}),
);
@@ -1049,9 +1032,6 @@ export const BillingPreviewUpdateResponse$inboundSchema: z.ZodMiniType<
currency: types.string(),
period_start: types.optional(types.number()),
period_end: types.optional(types.number()),
- credit: types.optional(
- z.lazy(() => BillingPreviewUpdateCredit$inboundSchema),
- ),
next_cycle: types.optional(
z.lazy(() => BillingPreviewUpdateNextCycle$inboundSchema),
),
diff --git a/packages/sdk/src/models/billing-update-op.ts b/packages/sdk/src/models/billing-update-op.ts
index 02674fc4e..28e62dae1 100644
--- a/packages/sdk/src/models/billing-update-op.ts
+++ b/packages/sdk/src/models/billing-update-op.ts
@@ -162,6 +162,9 @@ export type BillingUpdateItem = {
rollover?: BillingUpdateRollover | undefined;
};
+/**
+ * Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+ */
export type BillingUpdateCustomize = {
price?: BillingUpdatePrice | null | undefined;
items?: Array | undefined;
@@ -169,8 +172,8 @@ export type BillingUpdateCustomize = {
export type BillingUpdateInvoiceMode = {
enabled: boolean;
- enableProductImmediately?: boolean | undefined;
- finalizeInvoice?: boolean | undefined;
+ enablePlanImmediately?: boolean | undefined;
+ finalize?: boolean | undefined;
};
export const BillingUpdateCancelAction = {
@@ -203,10 +206,16 @@ export type BillingUpdateRequest = {
* If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan.
*/
featureQuantities?: Array | null | undefined;
+ /**
+ * The version of the plan to attach.
+ */
version?: number | undefined;
freeTrial?: BillingUpdateFreeTrial | null | undefined;
+ /**
+ * Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both.
+ */
customize?: BillingUpdateCustomize | undefined;
- planId?: string | null | undefined;
+ planId?: string | undefined;
invoiceMode?: BillingUpdateInvoiceMode | undefined;
cancelAction?: BillingUpdateCancelAction | undefined;
billingBehavior?: BillingUpdateBillingBehavior | undefined;
@@ -626,8 +635,8 @@ export function billingUpdateCustomizeToJSON(
/** @internal */
export type BillingUpdateInvoiceMode$Outbound = {
enabled: boolean;
- enable_product_immediately: boolean;
- finalize_invoice: boolean;
+ enable_plan_immediately: boolean;
+ finalize: boolean;
};
/** @internal */
@@ -637,13 +646,12 @@ export const BillingUpdateInvoiceMode$outboundSchema: z.ZodMiniType<
> = z.pipe(
z.object({
enabled: z.boolean(),
- enableProductImmediately: z._default(z.boolean(), false),
- finalizeInvoice: z._default(z.boolean(), true),
+ enablePlanImmediately: z._default(z.boolean(), false),
+ finalize: z._default(z.boolean(), true),
}),
z.transform((v) => {
return remap$(v, {
- enableProductImmediately: "enable_product_immediately",
- finalizeInvoice: "finalize_invoice",
+ enablePlanImmediately: "enable_plan_immediately",
});
}),
);
@@ -677,7 +685,7 @@ export type BillingUpdateRequest$Outbound = {
version?: number | undefined;
free_trial?: BillingUpdateFreeTrial$Outbound | null | undefined;
customize?: BillingUpdateCustomize$Outbound | undefined;
- plan_id?: string | null | undefined;
+ plan_id?: string | undefined;
invoice_mode?: BillingUpdateInvoiceMode$Outbound | undefined;
cancel_action?: string | undefined;
billing_behavior?: string | undefined;
@@ -701,7 +709,7 @@ export const BillingUpdateRequest$outboundSchema: z.ZodMiniType<
customize: z.optional(z.lazy(() =>
BillingUpdateCustomize$outboundSchema
)),
- planId: z.optional(z.nullable(z.string())),
+ planId: z.optional(z.string()),
invoiceMode: z.optional(
z.lazy(() => BillingUpdateInvoiceMode$outboundSchema),
),
diff --git a/packages/sdk/src/models/customer.ts b/packages/sdk/src/models/customer.ts
index efd6254df..85200c462 100644
--- a/packages/sdk/src/models/customer.ts
+++ b/packages/sdk/src/models/customer.ts
@@ -127,7 +127,6 @@ export type CustomerPrice = {
};
export type Breakdown = {
- object: "balance_breakdown";
id: string;
planId: string | null;
includedGrant: number;
@@ -146,7 +145,6 @@ export type CustomerRollover = {
};
export type Balances = {
- object: "balance";
featureId: string;
feature?: CustomerFeature | undefined;
granted: number;
@@ -668,7 +666,6 @@ export function customerPriceFromJSON(
export const Breakdown$inboundSchema: z.ZodMiniType = z
.pipe(
z.object({
- object: types.literal("balance_breakdown"),
id: z._default(types.string(), ""),
plan_id: types.nullable(types.string()),
included_grant: types.number(),
@@ -729,7 +726,6 @@ export function customerRolloverFromJSON(
/** @internal */
export const Balances$inboundSchema: z.ZodMiniType = z.pipe(
z.object({
- object: types.literal("balance"),
feature_id: types.string(),
feature: types.optional(z.lazy(() => CustomerFeature$inboundSchema)),
granted: types.number(),
diff --git a/packages/sdk/src/models/list-customers-op.ts b/packages/sdk/src/models/list-customers-op.ts
index 0499fcd8c..dae93235f 100644
--- a/packages/sdk/src/models/list-customers-op.ts
+++ b/packages/sdk/src/models/list-customers-op.ts
@@ -173,7 +173,6 @@ export type ListCustomersPrice = {
};
export type ListCustomersBreakdown = {
- object: "balance_breakdown";
id: string;
planId: string | null;
includedGrant: number;
@@ -192,7 +191,6 @@ export type ListCustomersRollover = {
};
export type ListCustomersBalances = {
- object: "balance";
featureId: string;
feature?: ListCustomersFeature | undefined;
granted: number;
@@ -631,7 +629,6 @@ export const ListCustomersBreakdown$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance_breakdown"),
id: z._default(types.string(), ""),
plan_id: types.nullable(types.string()),
included_grant: types.number(),
@@ -695,7 +692,6 @@ export const ListCustomersBalances$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance"),
feature_id: types.string(),
feature: types.optional(z.lazy(() => ListCustomersFeature$inboundSchema)),
granted: types.number(),
diff --git a/packages/sdk/src/models/update-customer-op.ts b/packages/sdk/src/models/update-customer-op.ts
index a9ad129a3..249d7b1e7 100644
--- a/packages/sdk/src/models/update-customer-op.ts
+++ b/packages/sdk/src/models/update-customer-op.ts
@@ -170,7 +170,6 @@ export type UpdateCustomerPrice = {
};
export type UpdateCustomerBreakdown = {
- object: "balance_breakdown";
id: string;
planId: string | null;
includedGrant: number;
@@ -189,7 +188,6 @@ export type UpdateCustomerRollover = {
};
export type UpdateCustomerBalances = {
- object: "balance";
featureId: string;
feature?: UpdateCustomerFeature | undefined;
granted: number;
@@ -602,7 +600,6 @@ export const UpdateCustomerBreakdown$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance_breakdown"),
id: z._default(types.string(), ""),
plan_id: types.nullable(types.string()),
included_grant: types.number(),
@@ -666,7 +663,6 @@ export const UpdateCustomerBalances$inboundSchema: z.ZodMiniType<
unknown
> = z.pipe(
z.object({
- object: types.literal("balance"),
feature_id: types.string(),
feature: types.optional(z.lazy(() => UpdateCustomerFeature$inboundSchema)),
granted: types.number(),
diff --git a/packages/sdk/src/sdk/billing.ts b/packages/sdk/src/sdk/billing.ts
index d58344cb0..5e3899481 100644
--- a/packages/sdk/src/sdk/billing.ts
+++ b/packages/sdk/src/sdk/billing.ts
@@ -24,6 +24,8 @@ export class Billing extends ClientSDK {
* @param customerId - The ID of the customer to attach the plan to.
* @param entityId - The ID of the entity to attach the plan to. (optional)
* @param featureQuantities - If this plan contains prepaid features, use this field to specify the quantity of each prepaid feature. This quantity includes the included amount and billing units defined when setting up the plan. (optional)
+ * @param version - The version of the plan to attach. (optional)
+ * @param customize - Customize the plan to attach. Can either override the price of the plan, the items in the plan, or both. (optional)
*/
async attach(
request: models.BillingAttachRequest,
diff --git a/server/src/internal/api/check/checkUtils.ts b/server/src/internal/api/check/checkUtils.ts
index 4ffea7e3e..d2910300e 100644
--- a/server/src/internal/api/check/checkUtils.ts
+++ b/server/src/internal/api/check/checkUtils.ts
@@ -1,4 +1,6 @@
import {
+ type ApiCustomerV5,
+ apiCustomerToFeatures,
BillingInterval,
type Feature,
type FreeTrial,
@@ -18,6 +20,7 @@ import { notNullish } from "@/utils/genUtils.js";
export const getOptions = ({
prodItems,
features,
+ apiCustomer,
anchor,
proration,
now,
@@ -25,7 +28,8 @@ export const getOptions = ({
cusProduct,
}: {
prodItems: ProductItem[];
- features: Feature[];
+ features?: Feature[];
+ apiCustomer?: ApiCustomerV5;
anchor?: number;
proration?: {
start: number;
@@ -36,6 +40,19 @@ export const getOptions = ({
cusProduct?: FullCusProduct;
}) => {
now = now || Date.now();
+ const resolvedFeatures =
+ features ??
+ (apiCustomer
+ ? (apiCustomerToFeatures({
+ apiCustomer,
+ }) as unknown as Feature[])
+ : []);
+
+ if (resolvedFeatures.length === 0) {
+ throw new Error(
+ "[getOptions] provide features or apiCustomer with balances.feature expanded",
+ );
+ }
return prodItems
.filter(
@@ -111,7 +128,7 @@ export const getOptions = ({
return {
feature_id: i.feature_id,
- feature_name: features.find((f) => f.id === i.feature_id)?.name,
+ feature_name: resolvedFeatures.find((f) => f.id === i.feature_id)?.name,
billing_units: i.billing_units,
included_usage: i.included_usage || 0,
...priceData,
diff --git a/server/src/internal/api/check/checkUtils/getCheckData.ts b/server/src/internal/api/check/checkUtils/getCheckData.ts
index 75cc2677a..ad963b3ee 100644
--- a/server/src/internal/api/check/checkUtils/getCheckData.ts
+++ b/server/src/internal/api/check/checkUtils/getCheckData.ts
@@ -4,6 +4,8 @@ import {
type CheckParams,
type Feature,
FeatureNotFoundError,
+ findFeatureById,
+ getFeatureToUseForCheck,
InternalError,
} from "@autumn/shared";
import type { AutumnContext } from "@/honoUtils/HonoEnv.js";
@@ -12,7 +14,6 @@ import { getOrCreateCachedFullCustomer } from "@/internal/customers/cusUtils/ful
import { getApiEntityBase } from "@/internal/entities/entityUtils/apiEntityUtils/getApiEntityBase.js";
import { getCreditSystemsFromFeature } from "@/internal/features/creditSystemUtils.js";
import type { CheckData } from "../checkTypes/CheckData.js";
-import { apiBalanceToAllowed } from "./apiBalanceToAllowed.js";
// Main functions
const getFeatureAndCreditSystems = ({
@@ -34,55 +35,6 @@ const getFeatureAndCreditSystems = ({
return { feature, creditSystems, allFeatures: features };
};
-const getFeatureToUse = ({
- creditSystems,
- feature,
- apiEntity,
- requiredBalance,
-}: {
- creditSystems: Feature[];
- feature: Feature;
- apiEntity: ApiCustomerV5 | ApiEntityV2;
- requiredBalance: number;
-}) => {
- // 1. If there's a credit system & cusEnts for that credit system -> return credit system
- // 2. If there's cusEnts for the feature -> return feature
- // 3. Otherwise, feaure to use is credit system if exists, otherwise return feature
-
- if (creditSystems.length === 0) return feature;
-
- // 1. Check if feature available
- const mainBalance = apiEntity?.balances?.[feature.id];
-
- if (
- mainBalance &&
- apiBalanceToAllowed({
- apiBalance: mainBalance,
- feature,
- requiredBalance,
- })
- ) {
- return feature;
- }
-
- for (const creditSystem of creditSystems) {
- const apiBalance = apiEntity?.balances?.[creditSystem.id];
- if (!apiBalance) continue;
-
- if (
- apiBalanceToAllowed({
- apiBalance,
- feature: creditSystem,
- requiredBalance,
- })
- ) {
- return creditSystem;
- }
- }
-
- return creditSystems[0];
-};
-
export const getCheckData = async ({
ctx,
body,
@@ -137,13 +89,19 @@ export const getCheckData = async ({
});
}
- const featureToUse = getFeatureToUse({
+ const featureToUseMin = getFeatureToUseForCheck({
creditSystems,
feature,
apiEntity,
requiredBalance,
});
+ const featureToUse = findFeatureById({
+ features: ctx.features,
+ featureId: featureToUseMin.id,
+ errorOnNotFound: true,
+ });
+
const apiBalance = apiEntity.balances?.[featureToUse.id];
return {
diff --git a/server/src/internal/api/check/checkUtils/getV2CheckResponse.ts b/server/src/internal/api/check/checkUtils/getV2CheckResponse.ts
index e64e48fbb..a775ace86 100644
--- a/server/src/internal/api/check/checkUtils/getV2CheckResponse.ts
+++ b/server/src/internal/api/check/checkUtils/getV2CheckResponse.ts
@@ -1,7 +1,10 @@
-import { CheckResponseV3Schema, FeatureType } from "@autumn/shared";
+import {
+ apiBalanceToAllowed,
+ CheckResponseV3Schema,
+ FeatureType,
+} from "@autumn/shared";
import { featureToCreditSystem } from "@/internal/features/creditSystemUtils.js";
import type { CheckData } from "../checkTypes/CheckData.js";
-import { apiBalanceToAllowed } from "./apiBalanceToAllowed.js";
export const getV2CheckResponse = async ({
checkData,
diff --git a/server/src/internal/balances/utils/handleThresholdReached.ts b/server/src/internal/balances/utils/handleThresholdReached.ts
index d82be0d49..2a13f47a8 100644
--- a/server/src/internal/balances/utils/handleThresholdReached.ts
+++ b/server/src/internal/balances/utils/handleThresholdReached.ts
@@ -3,6 +3,7 @@ import {
type ApiCustomerV5,
ApiVersion,
addToExpand,
+ apiBalanceToAllowed,
applyResponseVersionChanges,
CustomerExpand,
type CustomerLegacyData,
@@ -13,7 +14,6 @@ import {
} from "@autumn/shared";
import { sendSvixEvent } from "@/external/svix/svixHelpers.js";
import type { AutumnContext } from "@/honoUtils/HonoEnv.js";
-import { apiBalanceToAllowed } from "@/internal/api/check/checkUtils/apiBalanceToAllowed.js";
import { getApiCustomerBase } from "@/internal/customers/cusUtils/apiCusUtils/getApiCustomerBase.js";
const cleanApiCustomer = ({
diff --git a/server/src/routers/rpcRouter.ts b/server/src/routers/rpcRouter.ts
index e3c52251d..9a649c59f 100644
--- a/server/src/routers/rpcRouter.ts
+++ b/server/src/routers/rpcRouter.ts
@@ -1,4 +1,5 @@
import { Hono } from "hono";
+import { responseFilterMiddleware } from "@/honoMiddlewares/responseFilter/responseFilterMiddleware.js";
import { balancesRpcRouter } from "@/internal/balances/balancesRouter.js";
import { billingRpcRouter } from "@/internal/billing/billingRouter.js";
import { plansRpcRouter } from "@/internal/products/productRouter.js";
@@ -16,6 +17,7 @@ import { customerRpcRouter } from "../internal/customers/cusRouter";
export const rpcRouter = new Hono();
+rpcRouter.use("*", responseFilterMiddleware);
rpcRouter.use("*", secretKeyMiddleware);
rpcRouter.use("*", orgConfigMiddleware);
rpcRouter.use("*", apiVersionMiddleware);
diff --git a/shared/api/balances/check/checkParams.ts b/shared/api/balances/check/checkParams.ts
index 58797ca70..75d8b69b2 100644
--- a/shared/api/balances/check/checkParams.ts
+++ b/shared/api/balances/check/checkParams.ts
@@ -1,8 +1,8 @@
import { z } from "zod/v4";
-import { CustomerDataSchema } from "../../common/customerData.js";
-import { EntityDataSchema } from "../../common/entityData.js";
-import { queryStringArray } from "../../common/queryHelpers.js";
-import { CheckExpand } from "./enums/CheckExpand.js";
+import { CustomerDataSchema } from "../../common/customerData";
+import { EntityDataSchema } from "../../common/entityData";
+import { queryStringArray } from "../../common/queryHelpers";
+import { CheckExpand } from "./enums/CheckExpand";
const checkDescriptions = {
customer_id: "ID which you provided when creating the customer",
diff --git a/shared/api/balances/track/trackParams.ts b/shared/api/balances/track/trackParams.ts
index 2eb19a7ab..ac452208a 100644
--- a/shared/api/balances/track/trackParams.ts
+++ b/shared/api/balances/track/trackParams.ts
@@ -1,8 +1,8 @@
import { z } from "zod/v4";
-import { CustomerDataSchema } from "../../common/customerData.js";
-import { EntityDataSchema } from "../../common/entityData.js";
-import { queryStringArray } from "../../common/queryHelpers.js";
-import { CheckExpand } from "../check/enums/CheckExpand.js";
+import { CustomerDataSchema } from "../../common/customerData";
+import { EntityDataSchema } from "../../common/entityData";
+import { queryStringArray } from "../../common/queryHelpers";
+import { CheckExpand } from "../check/enums/CheckExpand";
const trackDescriptions = {
customer_id: "ID which you provided when creating the customer",
diff --git a/shared/api/billing/attachV2/attachParamsV0.ts b/shared/api/billing/attachV2/attachParamsV0.ts
index 22a269c9c..0cb6d2dc9 100644
--- a/shared/api/billing/attachV2/attachParamsV0.ts
+++ b/shared/api/billing/attachV2/attachParamsV0.ts
@@ -1,10 +1,10 @@
-import { RedirectModeSchema } from "@api/billing/common/redirectMode.js";
+import { RedirectModeSchema } from "@api/billing/common/redirectMode";
import { z } from "zod/v4";
-import { PlanTimingSchema } from "../../../models/billingModels/context/attachBillingContext.js";
-import { ProductItemSchema } from "../../../models/productV2Models/productItemModels/productItemModels.js";
-import { BillingBehaviorSchema } from "../common/billingBehavior.js";
-import { BillingParamsBaseV0Schema } from "../common/billingParamsBase/billingParamsBaseV0.js";
-import { AttachDiscountSchema } from "./attachDiscount.js";
+import { PlanTimingSchema } from "../../../models/billingModels/context/attachBillingContext";
+import { ProductItemSchema } from "../../../models/productV2Models/productItemModels/productItemModels";
+import { BillingBehaviorSchema } from "../common/billingBehavior";
+import { BillingParamsBaseV0Schema } from "../common/billingParamsBase/billingParamsBaseV0";
+import { AttachDiscountSchema } from "./attachDiscount";
export const ExtAttachParamsV0Schema = BillingParamsBaseV0Schema.extend({
// Product identification
diff --git a/shared/api/billing/attachV2/attachParamsV1.ts b/shared/api/billing/attachV2/attachParamsV1.ts
index 0d04e4f69..9ee6be65a 100644
--- a/shared/api/billing/attachV2/attachParamsV1.ts
+++ b/shared/api/billing/attachV2/attachParamsV1.ts
@@ -1,10 +1,10 @@
-import { BillingParamsBaseV1Schema } from "@api/billing/common/billingParamsBase/billingParamsBaseV1.js";
+import { BillingParamsBaseV1Schema } from "@api/billing/common/billingParamsBase/billingParamsBaseV1";
import { z } from "zod/v4";
-import { PlanTimingSchema } from "../../../models/billingModels/context/attachBillingContext.js";
-import { BillingBehaviorSchema } from "../common/billingBehavior.js";
-import { InvoiceModeParamsSchema } from "../common/invoiceModeParams.js";
-import { RedirectModeSchema } from "../common/redirectMode.js";
-import { AttachDiscountSchema } from "./attachDiscount.js";
+import { PlanTimingSchema } from "../../../models/billingModels/context/attachBillingContext";
+import { BillingBehaviorSchema } from "../common/billingBehavior";
+import { InvoiceModeParamsSchema } from "../common/invoiceModeParams";
+import { RedirectModeSchema } from "../common/redirectMode";
+import { AttachDiscountSchema } from "./attachDiscount";
export const AttachParamsV1Schema = BillingParamsBaseV1Schema.extend({
// Product identification
diff --git a/shared/api/billing/attachV2/requestChanges/V1.2_AttachParamsChange.ts b/shared/api/billing/attachV2/requestChanges/V1.2_AttachParamsChange.ts
index 7f69af64d..8660cb4e2 100644
--- a/shared/api/billing/attachV2/requestChanges/V1.2_AttachParamsChange.ts
+++ b/shared/api/billing/attachV2/requestChanges/V1.2_AttachParamsChange.ts
@@ -1,15 +1,15 @@
-import { billingParamsV0ToInvoiceModeParams } from "@api/billing/common/mappers/billingParamsV0ToInvoiceModeParams.js";
-import { freeTrialParamsV0ToV1 } from "@api/common/freeTrial/mappers/freeTrialParamsV0ToV1.js";
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import { billingParamsV0ToInvoiceModeParams } from "@api/billing/common/mappers/billingParamsV0ToInvoiceModeParams";
+import { freeTrialParamsV0ToV1 } from "@api/common/freeTrial/mappers/freeTrialParamsV0ToV1";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
defineVersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
-import { productItemsToCustomizePlanV1 } from "@utils/productV2Utils/productItemUtils/convertProductItem/productItemsToCustomizePlanV1.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
+import { productItemsToCustomizePlanV1 } from "@utils/productV2Utils/productItemUtils/convertProductItem/productItemsToCustomizePlanV1";
import type { z } from "zod/v4";
-import type { SharedContext } from "../../../../types/sharedContext.js";
-import { AttachParamsV0Schema } from "../attachParamsV0.js";
-import { AttachParamsV1Schema } from "../attachParamsV1.js";
+import type { SharedContext } from "../../../../types/sharedContext";
+import { AttachParamsV0Schema } from "../attachParamsV0";
+import { AttachParamsV1Schema } from "../attachParamsV1";
export const V1_2_AttachParamsChange = defineVersionChange({
name: "V1.2 Attach Params Change",
diff --git a/shared/api/billing/common/billingParamsBase/billingParamsBaseV0.ts b/shared/api/billing/common/billingParamsBase/billingParamsBaseV0.ts
index 7c3cd90ce..e81bbdf2b 100644
--- a/shared/api/billing/common/billingParamsBase/billingParamsBaseV0.ts
+++ b/shared/api/billing/common/billingParamsBase/billingParamsBaseV0.ts
@@ -1,10 +1,10 @@
-import { FeatureQuantityParamsV0Schema } from "@api/billing/common/featureQuantity/featureQuantityParamsV0.js";
-import { TransitionRulesSchema } from "@api/billing/common/transitionRules.js";
-import { FreeTrialParamsV0Schema } from "@api/common/freeTrial/freeTrialParamsV0.js";
-import { ProductItemSchema } from "@models/productV2Models/productItemModels/productItemModels.js";
+import { FeatureQuantityParamsV0Schema } from "@api/billing/common/featureQuantity/featureQuantityParamsV0";
+import { TransitionRulesSchema } from "@api/billing/common/transitionRules";
+import { FreeTrialParamsV0Schema } from "@api/common/freeTrial/freeTrialParamsV0";
+import { ProductItemSchema } from "@models/productV2Models/productItemModels/productItemModels";
import { z } from "zod/v4";
-import { CustomerDataSchema } from "../../../common/customerData.js";
-import { EntityDataSchema } from "../../../common/entityData.js";
+import { CustomerDataSchema } from "../../../common/customerData";
+import { EntityDataSchema } from "../../../common/entityData";
export const BillingParamsBaseV0Schema = z.object({
customer_id: z.string(),
diff --git a/shared/api/billing/common/billingParamsBase/billingParamsBaseV1.ts b/shared/api/billing/common/billingParamsBase/billingParamsBaseV1.ts
index 8a77bb3cd..4a7191bfd 100644
--- a/shared/api/billing/common/billingParamsBase/billingParamsBaseV1.ts
+++ b/shared/api/billing/common/billingParamsBase/billingParamsBaseV1.ts
@@ -1,10 +1,10 @@
-import { FeatureQuantityParamsV0Schema } from "@api/billing/common/featureQuantity/featureQuantityParamsV0.js";
-import { FreeTrialParamsV1Schema } from "@api/common/freeTrial/freeTrialParamsV1.js";
+import { FeatureQuantityParamsV0Schema } from "@api/billing/common/featureQuantity/featureQuantityParamsV0";
+import { FreeTrialParamsV1Schema } from "@api/common/freeTrial/freeTrialParamsV1";
import { z } from "zod/v4";
-import { CustomerDataSchema } from "../../../common/customerData.js";
-import { EntityDataSchema } from "../../../common/entityData.js";
-import { CustomizePlanV1Schema } from "../customizePlan/customizePlanV1.js";
-import { TransitionRulesSchema } from "../transitionRules.js";
+import { CustomerDataSchema } from "../../../common/customerData";
+import { EntityDataSchema } from "../../../common/entityData";
+import { CustomizePlanV1Schema } from "../customizePlan/customizePlanV1";
+import { TransitionRulesSchema } from "../transitionRules";
export const BillingParamsBaseV1Schema = z.object({
customer_id: z.string().meta({
diff --git a/shared/api/billing/common/billingPreviewResponse.ts b/shared/api/billing/common/billingPreviewResponse.ts
index 1d847e90c..a8f0129cb 100644
--- a/shared/api/billing/common/billingPreviewResponse.ts
+++ b/shared/api/billing/common/billingPreviewResponse.ts
@@ -1,4 +1,4 @@
-import { LineItemDiscountSchema } from "@models/billingModels/lineItem/lineItem.js";
+import { LineItemDiscountSchema } from "@models/billingModels/lineItem/lineItem";
import { z } from "zod/v4";
export const PreviewLineItemSchema = z.object({
diff --git a/shared/api/billing/common/index.ts b/shared/api/billing/common/index.ts
index 95ebada1f..5435e1dc3 100644
--- a/shared/api/billing/common/index.ts
+++ b/shared/api/billing/common/index.ts
@@ -1,15 +1,15 @@
-export * from "./attachPreviewResponse.js";
-export * from "./billingBehavior.js";
-export * from "./billingParamsBase/billingParamsBaseV0.js";
-export * from "./billingParamsBase/billingParamsBaseV1.js";
-export * from "./billingPreviewResponse.js";
-export * from "./billingResponse.js";
-export * from "./cancelAction.js";
-export * from "./customizePlan/customizePlanV0.js";
-export * from "./customizePlan/customizePlanV1.js";
-export * from "./customizePlan/mappers/customizePlanV1ToV0.js";
-export * from "./featureQuantity/featureQuantityParamsV0.js";
-export * from "./invoiceModeParams.js";
-export * from "./redirectMode.js";
-export * from "./refundBehavior.js";
-export * from "./transitionRules.js";
+export * from "./attachPreviewResponse";
+export * from "./billingBehavior";
+export * from "./billingParamsBase/billingParamsBaseV0";
+export * from "./billingParamsBase/billingParamsBaseV1";
+export * from "./billingPreviewResponse";
+export * from "./billingResponse";
+export * from "./cancelAction";
+export * from "./customizePlan/customizePlanV0";
+export * from "./customizePlan/customizePlanV1";
+export * from "./customizePlan/mappers/customizePlanV1ToV0";
+export * from "./featureQuantity/featureQuantityParamsV0";
+export * from "./invoiceModeParams";
+export * from "./redirectMode";
+export * from "./refundBehavior";
+export * from "./transitionRules";
diff --git a/shared/api/billing/common/mappers/billingParamsV0ToInvoiceModeParams.ts b/shared/api/billing/common/mappers/billingParamsV0ToInvoiceModeParams.ts
index 0e9fc0018..a048a12c0 100644
--- a/shared/api/billing/common/mappers/billingParamsV0ToInvoiceModeParams.ts
+++ b/shared/api/billing/common/mappers/billingParamsV0ToInvoiceModeParams.ts
@@ -1,4 +1,4 @@
-import type { InvoiceModeParams } from "../invoiceModeParams.js";
+import type { InvoiceModeParams } from "../invoiceModeParams";
/**
* Converts V0 billing params invoice fields to V1 InvoiceModeParams.
diff --git a/shared/api/billing/index.ts b/shared/api/billing/index.ts
index 5f3600069..4ff3505e8 100644
--- a/shared/api/billing/index.ts
+++ b/shared/api/billing/index.ts
@@ -1,20 +1,20 @@
// Attach
-export * from "./attach/prevVersions/attachBodyV0.js";
-export * from "./attach/prevVersions/attachResponseV1.js";
+export * from "./attach/prevVersions/attachBodyV0";
+export * from "./attach/prevVersions/attachResponseV1";
// Attach V2
-export * from "./attachV2/attachDiscount.js";
-export * from "./attachV2/attachParamsV0.js";
-export * from "./attachV2/attachParamsV1.js";
+export * from "./attachV2/attachDiscount";
+export * from "./attachV2/attachParamsV0";
+export * from "./attachV2/attachParamsV1";
// Checkout
-export * from "./checkout/prevVersions/checkoutParamsV0.js";
-export * from "./checkout/prevVersions/checkoutResponseV0.js";
+export * from "./checkout/prevVersions/checkoutParamsV0";
+export * from "./checkout/prevVersions/checkoutResponseV0";
// Common
-export * from "./common/index.js";
+export * from "./common/index";
// Update Subscription
-export * from "./updateSubscription/previewUpdateSubscriptionResponse.js";
-export * from "./updateSubscription/updateSubscriptionV0Params.js";
-export * from "./updateSubscription/updateSubscriptionV1Params.js";
+export * from "./updateSubscription/previewUpdateSubscriptionResponse";
+export * from "./updateSubscription/updateSubscriptionV0Params";
+export * from "./updateSubscription/updateSubscriptionV1Params";
diff --git a/shared/api/billing/updateSubscription/requestChanges/V1.2_UpdateSubscriptionParamsChange.ts b/shared/api/billing/updateSubscription/requestChanges/V1.2_UpdateSubscriptionParamsChange.ts
index 3c8b34543..9af48f626 100644
--- a/shared/api/billing/updateSubscription/requestChanges/V1.2_UpdateSubscriptionParamsChange.ts
+++ b/shared/api/billing/updateSubscription/requestChanges/V1.2_UpdateSubscriptionParamsChange.ts
@@ -1,15 +1,15 @@
-import { billingParamsV0ToInvoiceModeParams } from "@api/billing/common/mappers/billingParamsV0ToInvoiceModeParams.js";
-import { freeTrialParamsV0ToV1 } from "@api/common/freeTrial/mappers/freeTrialParamsV0ToV1.js";
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import { billingParamsV0ToInvoiceModeParams } from "@api/billing/common/mappers/billingParamsV0ToInvoiceModeParams";
+import { freeTrialParamsV0ToV1 } from "@api/common/freeTrial/mappers/freeTrialParamsV0ToV1";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
defineVersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
-import { productItemsToCustomizePlanV1 } from "@utils/productV2Utils/productItemUtils/convertProductItem/productItemsToCustomizePlanV1.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
+import { productItemsToCustomizePlanV1 } from "@utils/productV2Utils/productItemUtils/convertProductItem/productItemsToCustomizePlanV1";
import type { z } from "zod/v4";
-import type { SharedContext } from "../../../../types/sharedContext.js";
-import { UpdateSubscriptionV0ParamsSchema } from "../updateSubscriptionV0Params.js";
-import { UpdateSubscriptionV1ParamsSchema } from "../updateSubscriptionV1Params.js";
+import type { SharedContext } from "../../../../types/sharedContext";
+import { UpdateSubscriptionV0ParamsSchema } from "../updateSubscriptionV0Params";
+import { UpdateSubscriptionV1ParamsSchema } from "../updateSubscriptionV1Params";
export const V1_2_UpdateSubscriptionParamsChange = defineVersionChange({
name: "V1.2 Update Subscription Params Change",
diff --git a/shared/api/billing/updateSubscription/updateSubscriptionV1Params.ts b/shared/api/billing/updateSubscription/updateSubscriptionV1Params.ts
index c03bddfd7..b07d79e41 100644
--- a/shared/api/billing/updateSubscription/updateSubscriptionV1Params.ts
+++ b/shared/api/billing/updateSubscription/updateSubscriptionV1Params.ts
@@ -2,7 +2,7 @@ import { z } from "zod/v4";
import { BillingBehaviorSchema } from "../common/billingBehavior";
import { BillingParamsBaseV1Schema } from "../common/billingParamsBase/billingParamsBaseV1";
import { CancelActionSchema } from "../common/cancelAction";
-import { InvoiceModeParamsSchema } from "../common/invoiceModeParams.js";
+import { InvoiceModeParamsSchema } from "../common/invoiceModeParams";
export const UpdateSubscriptionV1ParamsSchema =
BillingParamsBaseV1Schema.extend({
diff --git a/shared/api/common/customerData.ts b/shared/api/common/customerData.ts
index ebc876c4f..558d351ad 100644
--- a/shared/api/common/customerData.ts
+++ b/shared/api/common/customerData.ts
@@ -1,5 +1,5 @@
import { z } from "zod/v4";
-import { ExternalProcessorsSchema } from "../../models/genModels/processorSchemas.js";
+import { ExternalProcessorsSchema } from "../../models/genModels/processorSchemas";
// for internal use only
export const CreateCustomerInternalOptionsSchema = z.object({
diff --git a/shared/api/common/freeTrial/freeTrialParamsV0.ts b/shared/api/common/freeTrial/freeTrialParamsV0.ts
index 5ccba662f..930f22741 100644
--- a/shared/api/common/freeTrial/freeTrialParamsV0.ts
+++ b/shared/api/common/freeTrial/freeTrialParamsV0.ts
@@ -1,4 +1,4 @@
-import { FreeTrialDuration } from "@models/productModels/freeTrialModels/freeTrialEnums.js";
+import { FreeTrialDuration } from "@models/productModels/freeTrialModels/freeTrialEnums";
import { z } from "zod/v4";
export const FreeTrialParamsV0Schema = z.object({
diff --git a/shared/api/common/freeTrial/freeTrialParamsV1.ts b/shared/api/common/freeTrial/freeTrialParamsV1.ts
index 7f80cb6f9..60022a4c5 100644
--- a/shared/api/common/freeTrial/freeTrialParamsV1.ts
+++ b/shared/api/common/freeTrial/freeTrialParamsV1.ts
@@ -1,4 +1,4 @@
-import { FreeTrialDuration } from "@models/productModels/freeTrialModels/freeTrialEnums.js";
+import { FreeTrialDuration } from "@models/productModels/freeTrialModels/freeTrialEnums";
import { z } from "zod/v4";
export const FreeTrialParamsV1Schema = z.object({
diff --git a/shared/api/common/index.ts b/shared/api/common/index.ts
index f0fd49b95..32f0917ad 100644
--- a/shared/api/common/index.ts
+++ b/shared/api/common/index.ts
@@ -1 +1 @@
-export * from "./customerId.js";
+export * from "./customerId";
diff --git a/shared/api/common/jsDocs.ts b/shared/api/common/jsDocs.ts
index 976327416..790e0bb08 100644
--- a/shared/api/common/jsDocs.ts
+++ b/shared/api/common/jsDocs.ts
@@ -2,17 +2,17 @@ import {
createJSDocDescription,
docLink,
example,
-} from "@api/utils/openApiHelpers.js";
-// import { TrackParamsSchema } from "../balances/trackModels.js";
-import { SetUsageParamsSchema } from "../balances/usageModels.js";
-// import { CheckParamsSchema } from "../core/checkModels.js";
+} from "@api/utils/openApiHelpers";
+// import { TrackParamsSchema } from "../balances/trackModels";
+import { SetUsageParamsSchema } from "../balances/usageModels";
+// import { CheckParamsSchema } from "../core/checkModels";
import {
BillingPortalParamsSchema,
CancelBodySchema,
QueryParamsSchema,
SetupPaymentParamsSchema,
-} from "../core/coreOpModels.js";
-import { ExtAttachBodyV0Schema, ExtCheckoutParamsV0Schema } from "../models.js";
+} from "../core/coreOpModels";
+import { ExtAttachBodyV0Schema, ExtCheckoutParamsV0Schema } from "../models";
/**
* Centralized JSDoc declarations for all core API methods.
* These are used by the OpenAPI spec generator and propagate to SDK documentation.
diff --git a/shared/api/customers/apiCustomer.ts b/shared/api/customers/apiCustomer.ts
index 9382093e9..73827faff 100644
--- a/shared/api/customers/apiCustomer.ts
+++ b/shared/api/customers/apiCustomer.ts
@@ -1,17 +1,17 @@
-import { ApiBaseEntitySchema } from "@api/entities/apiBaseEntity.js";
-import { ApiCusRewardsSchema } from "@api/others/apiDiscount.js";
-import { ApiInvoiceV1Schema } from "@api/others/apiInvoice/apiInvoiceV1.js";
+import { ApiBaseEntitySchema } from "@api/entities/apiBaseEntity";
+import { ApiCusRewardsSchema } from "@api/others/apiDiscount";
+import { ApiInvoiceV1Schema } from "@api/others/apiInvoice/apiInvoiceV1";
import { z } from "zod/v4";
-import { BaseApiCustomerSchema } from "./baseApiCustomer.js";
-import { ApiCusReferralSchema } from "./components/apiCusReferral.js";
-import { ApiTrialsUsedV1Schema } from "./components/apiTrialsUsed/apiTrialsUsedV1.js";
-import { ApiBalanceSchema } from "./cusFeatures/apiBalance.js";
-import { ApiSubscriptionSchema } from "./cusPlans/apiSubscription.js";
+import { BaseApiCustomerSchema } from "./baseApiCustomer";
+import { ApiCusReferralSchema } from "./components/apiCusReferral";
+import { ApiTrialsUsedV1Schema } from "./components/apiTrialsUsed/apiTrialsUsedV1";
+import { ApiBalanceSchema } from "./cusFeatures/apiBalance";
+import { ApiSubscriptionSchema } from "./cusPlans/apiSubscription";
export {
type BaseApiCustomer,
BaseApiCustomerSchema,
-} from "./baseApiCustomer.js";
+} from "./baseApiCustomer";
export const ApiCusExpandSchema = z.object({
invoices: z.array(ApiInvoiceV1Schema).optional(),
diff --git a/shared/api/customers/apiCustomerV5.ts b/shared/api/customers/apiCustomerV5.ts
index 79d476b28..f966d8cec 100644
--- a/shared/api/customers/apiCustomerV5.ts
+++ b/shared/api/customers/apiCustomerV5.ts
@@ -1,11 +1,11 @@
import { z } from "zod/v4";
-import { ApiCusExpandSchema } from "./apiCustomer.js";
-import { BaseApiCustomerSchema } from "./baseApiCustomer.js";
-import { ApiBalanceV1Schema } from "./cusFeatures/apiBalanceV1.js";
+import { ApiCusExpandSchema } from "./apiCustomer";
+import { BaseApiCustomerSchema } from "./baseApiCustomer";
+import { ApiBalanceV1Schema } from "./cusFeatures/apiBalanceV1";
import {
ApiPurchaseV0Schema,
ApiSubscriptionV1Schema,
-} from "./cusPlans/apiSubscriptionV1.js";
+} from "./cusPlans/apiSubscriptionV1";
export const API_CUSTOMER_V5_EXAMPLE = {
id: "cus_123",
diff --git a/shared/api/customers/baseApiCustomer.ts b/shared/api/customers/baseApiCustomer.ts
index 947590400..b34cf2128 100644
--- a/shared/api/customers/baseApiCustomer.ts
+++ b/shared/api/customers/baseApiCustomer.ts
@@ -1,4 +1,4 @@
-import { AppEnv } from "@models/genModels/genEnums.js";
+import { AppEnv } from "@models/genModels/genEnums";
import { z } from "zod/v4";
export const BaseApiCustomerSchema = z.object({
diff --git a/shared/api/customers/changes/V0.1_CustomerChange.ts b/shared/api/customers/changes/V0.1_CustomerChange.ts
index ca7d79330..587509ad7 100644
--- a/shared/api/customers/changes/V0.1_CustomerChange.ts
+++ b/shared/api/customers/changes/V0.1_CustomerChange.ts
@@ -1,15 +1,15 @@
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
defineVersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
import type { z } from "zod/v4";
import {
type ApiCusFeatureV0,
ApiCusFeatureV0Schema,
-} from "../cusFeatures/previousVersions/apiCusFeatureV0.js";
-import { ApiCustomerV0Schema } from "../previousVersions/apiCustomerV0.js";
-import { ApiCustomerV1Schema } from "../previousVersions/apiCustomerV1.js";
+} from "../cusFeatures/previousVersions/apiCusFeatureV0";
+import { ApiCustomerV0Schema } from "../previousVersions/apiCustomerV0";
+import { ApiCustomerV1Schema } from "../previousVersions/apiCustomerV1";
/**
* V0_1_CustomerChange: Transforms customer TO V0_1 format
diff --git a/shared/api/customers/changes/V0.2_CustomerChange.ts b/shared/api/customers/changes/V0.2_CustomerChange.ts
index f85429ea8..a3fb946c1 100644
--- a/shared/api/customers/changes/V0.2_CustomerChange.ts
+++ b/shared/api/customers/changes/V0.2_CustomerChange.ts
@@ -1,21 +1,21 @@
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
defineVersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
import type { z } from "zod/v4";
import {
type ApiCusFeatureV1,
ApiCusFeatureV1Schema,
-} from "../cusFeatures/previousVersions/apiCusFeatureV1.js";
-import type { ApiCusFeatureV2 } from "../cusFeatures/previousVersions/apiCusFeatureV2.js";
-import { transformCusProductV2ToV1 } from "../cusPlans/changes/V0.2_CusProductChange.js";
+} from "../cusFeatures/previousVersions/apiCusFeatureV1";
+import type { ApiCusFeatureV2 } from "../cusFeatures/previousVersions/apiCusFeatureV2";
+import { transformCusProductV2ToV1 } from "../cusPlans/changes/V0.2_CusProductChange";
import {
type CustomerLegacyData,
CustomerLegacyDataSchema,
-} from "../customerLegacyData.js";
-import { ApiCustomerV1Schema } from "../previousVersions/apiCustomerV1.js";
-import { ApiCustomerV2Schema } from "../previousVersions/apiCustomerV2.js";
+} from "../customerLegacyData";
+import { ApiCustomerV1Schema } from "../previousVersions/apiCustomerV1";
+import { ApiCustomerV2Schema } from "../previousVersions/apiCustomerV2";
/**
* V0_2_CustomerChange: Transforms customer response TO V0_2 format
diff --git a/shared/api/customers/changes/V0.2_InvoicesAlwaysExpanded.ts b/shared/api/customers/changes/V0.2_InvoicesAlwaysExpanded.ts
index 3869e74e7..bf68e35ad 100644
--- a/shared/api/customers/changes/V0.2_InvoicesAlwaysExpanded.ts
+++ b/shared/api/customers/changes/V0.2_InvoicesAlwaysExpanded.ts
@@ -1,8 +1,8 @@
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
VersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
import { z } from "zod/v4";
/**
diff --git a/shared/api/customers/changes/V1.1_FeaturesArrayToObject.ts b/shared/api/customers/changes/V1.1_FeaturesArrayToObject.ts
index c02756ab0..e4f4266cb 100644
--- a/shared/api/customers/changes/V1.1_FeaturesArrayToObject.ts
+++ b/shared/api/customers/changes/V1.1_FeaturesArrayToObject.ts
@@ -1,17 +1,17 @@
-import { ApiFeatureType } from "@api/features/prevVersions/apiFeatureV0.js";
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import { ApiFeatureType } from "@api/features/prevVersions/apiFeatureV0";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
defineVersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
-import type { EntInterval } from "@models/productModels/intervals/entitlementInterval.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
+import type { EntInterval } from "@models/productModels/intervals/entitlementInterval";
import { z } from "zod/v4";
import {
type ApiCusFeatureV2,
ApiCusFeatureV2Schema,
-} from "../cusFeatures/previousVersions/apiCusFeatureV2.js";
-import type { ApiCusFeatureV3BreakdownSchema } from "../cusFeatures/previousVersions/apiCusFeatureV3.js";
-import { ApiCustomerV3Schema } from "../previousVersions/apiCustomerV3.js";
+} from "../cusFeatures/previousVersions/apiCusFeatureV2";
+import type { ApiCusFeatureV3BreakdownSchema } from "../cusFeatures/previousVersions/apiCusFeatureV3";
+import { ApiCustomerV3Schema } from "../previousVersions/apiCustomerV3";
/**
* V1_2: Features changed from array to object AND merged multi-interval features
diff --git a/shared/api/customers/changes/V1.2_CustomerChange.ts b/shared/api/customers/changes/V1.2_CustomerChange.ts
index 972ccd583..fb7650978 100644
--- a/shared/api/customers/changes/V1.2_CustomerChange.ts
+++ b/shared/api/customers/changes/V1.2_CustomerChange.ts
@@ -1,21 +1,21 @@
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
defineVersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
import type { z } from "zod/v4";
-import type { ApiInvoiceV1 } from "../../others/apiInvoice/apiInvoiceV1.js";
-import { transformInvoiceToV0 } from "../../others/apiInvoice/changes/V1.2_InvoiceChange.js";
-import { ApiCustomerSchema } from "../apiCustomer.js";
-import type { ApiTrialsUsedV1 } from "../components/apiTrialsUsed/apiTrialsUsedV1.js";
-import { transformTrialsUsedToV0 } from "../components/apiTrialsUsed/changes/V1.2_TrialsUsedChange.js";
-import { transformBalanceToCusFeatureV3 } from "../cusFeatures/changes/V1.2_CusFeatureChange.js";
-import type { ApiCusFeatureV3 } from "../cusFeatures/previousVersions/apiCusFeatureV3.js";
-import type { ApiSubscription } from "../cusPlans/apiSubscription.js";
-import { transformSubscriptionToCusProductV3 } from "../cusPlans/changes/V1.2_CusPlanChange.js";
-import type { ApiCusProductV3 } from "../cusPlans/previousVersions/apiCusProductV3.js";
-import { CustomerLegacyDataSchema } from "../customerLegacyData.js";
-import { ApiCustomerV3Schema } from "../previousVersions/apiCustomerV3.js";
+import type { ApiInvoiceV1 } from "../../others/apiInvoice/apiInvoiceV1";
+import { transformInvoiceToV0 } from "../../others/apiInvoice/changes/V1.2_InvoiceChange";
+import { ApiCustomerSchema } from "../apiCustomer";
+import type { ApiTrialsUsedV1 } from "../components/apiTrialsUsed/apiTrialsUsedV1";
+import { transformTrialsUsedToV0 } from "../components/apiTrialsUsed/changes/V1.2_TrialsUsedChange";
+import { transformBalanceToCusFeatureV3 } from "../cusFeatures/changes/V1.2_CusFeatureChange";
+import type { ApiCusFeatureV3 } from "../cusFeatures/previousVersions/apiCusFeatureV3";
+import type { ApiSubscription } from "../cusPlans/apiSubscription";
+import { transformSubscriptionToCusProductV3 } from "../cusPlans/changes/V1.2_CusPlanChange";
+import type { ApiCusProductV3 } from "../cusPlans/previousVersions/apiCusProductV3";
+import { CustomerLegacyDataSchema } from "../customerLegacyData";
+import { ApiCustomerV3Schema } from "../previousVersions/apiCustomerV3";
/**
* V1_2_CustomerChange: Transforms customer response TO V1_2 format
*
diff --git a/shared/api/customers/changes/V2.0_CustomerChange.ts b/shared/api/customers/changes/V2.0_CustomerChange.ts
index 1243abfe0..3316eff4e 100644
--- a/shared/api/customers/changes/V2.0_CustomerChange.ts
+++ b/shared/api/customers/changes/V2.0_CustomerChange.ts
@@ -1,17 +1,17 @@
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
defineVersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
import type { z } from "zod/v4";
-import type { SharedContext } from "../../../types/sharedContext.js";
-import { ApiCustomerSchema } from "../apiCustomer.js";
-import { ApiCustomerV5Schema } from "../apiCustomerV5.js";
-import type { ApiBalance } from "../cusFeatures/apiBalance.js";
-import { balanceV1ToV0 } from "../cusFeatures/mappers/balanceV1ToV0.js";
-import type { ApiSubscription } from "../cusPlans/apiSubscription.js";
-import { apiPurchaseV0ToSubscriptionV0 } from "../cusPlans/mappers/apiPurchaseV0ToSubscriptionV0.js";
-import { apiSubscriptionV1ToV0 } from "../cusPlans/mappers/apiSubscriptionV1ToV0.js";
+import type { SharedContext } from "../../../types/sharedContext";
+import { ApiCustomerSchema } from "../apiCustomer";
+import { ApiCustomerV5Schema } from "../apiCustomerV5";
+import type { ApiBalance } from "../cusFeatures/apiBalance";
+import { balanceV1ToV0 } from "../cusFeatures/mappers/balanceV1ToV0";
+import type { ApiSubscription } from "../cusPlans/apiSubscription";
+import { apiPurchaseV0ToSubscriptionV0 } from "../cusPlans/mappers/apiPurchaseV0ToSubscriptionV0";
+import { apiSubscriptionV1ToV0 } from "../cusPlans/mappers/apiSubscriptionV1ToV0";
export const V2_0_CustomerChange = defineVersionChange({
name: "V2_0 Customer Change",
diff --git a/shared/api/customers/components/apiCusUpcomingInvoice.ts b/shared/api/customers/components/apiCusUpcomingInvoice.ts
index f59105548..e7383e9ba 100644
--- a/shared/api/customers/components/apiCusUpcomingInvoice.ts
+++ b/shared/api/customers/components/apiCusUpcomingInvoice.ts
@@ -1,4 +1,4 @@
-import { ApiDiscountSchema } from "@api/others/apiDiscount.js";
+import { ApiDiscountSchema } from "@api/others/apiDiscount";
import { z } from "zod/v4";
export const ApiCusUpcomingInvoiceSchema = z.object({
diff --git a/shared/api/customers/components/apiTrialsUsed/changes/V1.2_TrialsUsedChange.ts b/shared/api/customers/components/apiTrialsUsed/changes/V1.2_TrialsUsedChange.ts
index f97de7194..9bf7fbfc4 100644
--- a/shared/api/customers/components/apiTrialsUsed/changes/V1.2_TrialsUsedChange.ts
+++ b/shared/api/customers/components/apiTrialsUsed/changes/V1.2_TrialsUsedChange.ts
@@ -1,8 +1,8 @@
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
-import { defineVersionChange } from "@api/versionUtils/versionChangeUtils/VersionChange.js";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
+import { defineVersionChange } from "@api/versionUtils/versionChangeUtils/VersionChange";
import type { z } from "zod/v4";
-import { ApiTrialsUsedV1Schema } from "../apiTrialsUsedV1.js";
-import { ApiTrialsUsedV0Schema } from "../prevVersions/apiTrialsUsedV0.js";
+import { ApiTrialsUsedV1Schema } from "../apiTrialsUsedV1";
+import { ApiTrialsUsedV0Schema } from "../prevVersions/apiTrialsUsedV0";
/**
* Transform trials_used from V2.0 format to V1.2 format
diff --git a/shared/api/customers/components/index.ts b/shared/api/customers/components/index.ts
index 697883ddc..9a941674b 100644
--- a/shared/api/customers/components/index.ts
+++ b/shared/api/customers/components/index.ts
@@ -1,5 +1,5 @@
-export * from "./apiCusReferral.js";
-export * from "./apiCusUpcomingInvoice.js";
-export * from "./apiTrialsUsed/apiTrialsUsedV1.js";
-export * from "./apiTrialsUsed/prevVersions/apiTrialsUsedV0.js";
-export * from "./customerExpand/customerExpand.js";
+export * from "./apiCusReferral";
+export * from "./apiCusUpcomingInvoice";
+export * from "./apiTrialsUsed/apiTrialsUsedV1";
+export * from "./apiTrialsUsed/prevVersions/apiTrialsUsedV0";
+export * from "./customerExpand/customerExpand";
diff --git a/shared/api/customers/crud/createCustomerParams.ts b/shared/api/customers/crud/createCustomerParams.ts
index 134f52bd9..5a39374bd 100644
--- a/shared/api/customers/crud/createCustomerParams.ts
+++ b/shared/api/customers/crud/createCustomerParams.ts
@@ -1,9 +1,9 @@
import {
CreateCustomerInternalOptionsSchema,
CustomerDataSchema,
-} from "@api/common/customerData.js";
-import { CustomerIdSchema } from "@api/common/customerId.js";
-import { EntityDataSchema } from "@api/common/entityData.js";
+} from "@api/common/customerData";
+import { CustomerIdSchema } from "@api/common/customerId";
+import { EntityDataSchema } from "@api/common/entityData";
import { queryStringArray } from "@api/common/queryHelpers";
import {
CustomerExpandArraySchema,
diff --git a/shared/api/customers/crud/deleteCustomerParams.ts b/shared/api/customers/crud/deleteCustomerParams.ts
index 722d25b00..a0226c2af 100644
--- a/shared/api/customers/crud/deleteCustomerParams.ts
+++ b/shared/api/customers/crud/deleteCustomerParams.ts
@@ -1,4 +1,4 @@
-import { CustomerIdSchema } from "@api/common/customerId.js";
+import { CustomerIdSchema } from "@api/common/customerId";
import { z } from "zod/v4";
export const DeleteCustomerParamsSchema = z.object({
diff --git a/shared/api/customers/crud/index.ts b/shared/api/customers/crud/index.ts
index fe9559aaa..25223729c 100644
--- a/shared/api/customers/crud/index.ts
+++ b/shared/api/customers/crud/index.ts
@@ -1,4 +1,4 @@
-export * from "./createCustomerParams.js";
-export * from "./deleteCustomerParams.js";
-export * from "./listCustomersParamsV2.js";
-export * from "./updateCustomerParams.js";
+export * from "./createCustomerParams";
+export * from "./deleteCustomerParams";
+export * from "./listCustomersParamsV2";
+export * from "./updateCustomerParams";
diff --git a/shared/api/customers/crud/updateCustomerParams.ts b/shared/api/customers/crud/updateCustomerParams.ts
index c1d4f8ceb..60ca23558 100644
--- a/shared/api/customers/crud/updateCustomerParams.ts
+++ b/shared/api/customers/crud/updateCustomerParams.ts
@@ -1,5 +1,5 @@
-import { CustomerDataSchema } from "@api/common/customerData.js";
-import { CustomerIdSchema } from "@api/common/customerId.js";
+import { CustomerDataSchema } from "@api/common/customerData";
+import { CustomerIdSchema } from "@api/common/customerId";
import { z } from "zod/v4";
export const UpdateCustomerParamsV0Schema = z
diff --git a/shared/api/customers/cusFeatures/apiBalance.ts b/shared/api/customers/cusFeatures/apiBalance.ts
index 88afb7289..9ee4fd389 100644
--- a/shared/api/customers/cusFeatures/apiBalance.ts
+++ b/shared/api/customers/cusFeatures/apiBalance.ts
@@ -1,6 +1,6 @@
-import { ResetInterval } from "@models/productModels/intervals/resetInterval.js";
+import { ResetInterval } from "@models/productModels/intervals/resetInterval";
import { z } from "zod/v4";
-import { ApiFeatureV1Schema } from "../../features/apiFeatureV1.js";
+import { ApiFeatureV1Schema } from "../../features/apiFeatureV1";
export const ApiBalanceResetSchema = z.object({
interval: z.enum(ResetInterval).or(z.literal("multiple")),
diff --git a/shared/api/customers/cusFeatures/apiBalanceV1.ts b/shared/api/customers/cusFeatures/apiBalanceV1.ts
index 31dbed5e6..6fdea9653 100644
--- a/shared/api/customers/cusFeatures/apiBalanceV1.ts
+++ b/shared/api/customers/cusFeatures/apiBalanceV1.ts
@@ -1,11 +1,8 @@
-import { BillingMethod } from "@api/products/components/billingMethod.js";
-import { UsageTierSchema } from "@models/productModels/priceModels/priceConfig/usagePriceConfig.js";
+import { BillingMethod } from "@api/products/components/billingMethod";
+import { UsageTierSchema } from "@models/productModels/priceModels/priceConfig/usagePriceConfig";
import { z } from "zod/v4";
-import { ApiFeatureV1Schema } from "../../features/apiFeatureV1.js";
-import {
- ApiBalanceResetSchema,
- ApiBalanceRolloverSchema,
-} from "./apiBalance.js";
+import { ApiFeatureV1Schema } from "../../features/apiFeatureV1";
+import { ApiBalanceResetSchema, ApiBalanceRolloverSchema } from "./apiBalance";
export const ApiBalanceBreakdownPriceSchema = z.object({
amount: z.number().optional(),
@@ -16,7 +13,9 @@ export const ApiBalanceBreakdownPriceSchema = z.object({
});
export const ApiBalanceBreakdownV1Schema = z.object({
- object: z.literal("balance_breakdown"),
+ object: z.literal("balance_breakdown").meta({
+ internal: true,
+ }),
id: z.string().default(""),
plan_id: z.string().nullable(),
@@ -40,7 +39,9 @@ export const ApiBalanceBreakdownV1Schema = z.object({
});
export const ApiBalanceV1Schema = z.object({
- object: z.literal("balance"),
+ object: z.literal("balance").meta({
+ internal: true,
+ }),
feature_id: z.string(),
feature: ApiFeatureV1Schema.optional(),
diff --git a/shared/api/customers/cusFeatures/changes/V1.2_CusFeatureChange.ts b/shared/api/customers/cusFeatures/changes/V1.2_CusFeatureChange.ts
index 12be7487d..5fe3fd5da 100644
--- a/shared/api/customers/cusFeatures/changes/V1.2_CusFeatureChange.ts
+++ b/shared/api/customers/cusFeatures/changes/V1.2_CusFeatureChange.ts
@@ -1,20 +1,20 @@
-import { ApiFeatureType } from "@api/features/prevVersions/apiFeatureV0.js";
-import type { EntInterval } from "@models/productModels/intervals/entitlementInterval.js";
-import { resetIntvToEntIntv } from "@utils/productV2Utils/productItemUtils/convertProductItem/planItemIntervals.js";
-import { Decimal } from "decimal.js";
+import { ApiFeatureType } from "@api/features/prevVersions/apiFeatureV0";
+import type { EntInterval } from "@models/productModels/intervals/entitlementInterval";
+import { resetIntvToEntIntv } from "@utils/productV2Utils/productItemUtils/convertProductItem/planItemIntervals";
+import { Decimal } from "decimal";
import type { z } from "zod/v4";
-import { FeatureType } from "../../../../models/featureModels/featureEnums.js";
-import { sumValues } from "../../../../utils/utils.js";
-import type { ApiFeatureV1 } from "../../../features/apiFeatureV1.js";
+import { FeatureType } from "../../../../models/featureModels/featureEnums";
+import { sumValues } from "../../../../utils/utils";
+import type { ApiFeatureV1 } from "../../../features/apiFeatureV1";
import type {
ApiBalance,
ApiBalanceBreakdown,
ApiBalanceSchema,
-} from "../apiBalance.js";
+} from "../apiBalance";
import type {
ApiCusFeatureV3Breakdown,
ApiCusFeatureV3Schema,
-} from "../previousVersions/apiCusFeatureV3.js";
+} from "../previousVersions/apiCusFeatureV3";
// overage_allowed: z.boolean().nullish().meta({
// description: "Whether overage usage beyond the limit is allowed",
diff --git a/shared/api/customers/cusFeatures/index.ts b/shared/api/customers/cusFeatures/index.ts
index f6aef23e4..07a2ef623 100644
--- a/shared/api/customers/cusFeatures/index.ts
+++ b/shared/api/customers/cusFeatures/index.ts
@@ -1,8 +1,9 @@
-export * from "./apiBalance.js";
-export * from "./apiBalanceV1.js";
-export * from "./previousVersions/apiCusFeatureV0.js";
-export * from "./previousVersions/apiCusFeatureV1.js";
-export * from "./previousVersions/apiCusFeatureV2.js";
-export * from "./previousVersions/apiCusFeatureV3.js";
-
-export * from "./utils/convert/apiBalanceV1ToAvailableOverage.js";
+export * from "./apiBalance";
+export * from "./apiBalanceV1";
+export * from "./previousVersions/apiCusFeatureV0";
+export * from "./previousVersions/apiCusFeatureV1";
+export * from "./previousVersions/apiCusFeatureV2";
+export * from "./previousVersions/apiCusFeatureV3";
+export * from "./utils/check/index";
+export * from "./utils/convert/apiBalanceToAllowed";
+export * from "./utils/convert/apiBalanceV1ToAvailableOverage";
diff --git a/shared/api/customers/cusFeatures/mappers/balanceV1ToV0.ts b/shared/api/customers/cusFeatures/mappers/balanceV1ToV0.ts
index 02821899b..2bf61ac96 100644
--- a/shared/api/customers/cusFeatures/mappers/balanceV1ToV0.ts
+++ b/shared/api/customers/cusFeatures/mappers/balanceV1ToV0.ts
@@ -1,9 +1,9 @@
-import { deduplicateArray } from "@utils/utils.js";
-import { Decimal } from "decimal.js";
-import type { ApiBalance, ApiBalanceBreakdown } from "../apiBalance.js";
-import type { ApiBalanceBreakdownV1, ApiBalanceV1 } from "../apiBalanceV1.js";
-import { apiBalanceV1ToPrepaidQuantity } from "../utils/convert/apiBalanceV1ToPrepaidQuantity.js";
-import { apiBalanceV1ToPurchasedBalance } from "../utils/convert/apiBalanceV1ToPurchasedBalance.js";
+import { deduplicateArray } from "@utils/utils";
+import { Decimal } from "decimal";
+import type { ApiBalance, ApiBalanceBreakdown } from "../apiBalance";
+import type { ApiBalanceBreakdownV1, ApiBalanceV1 } from "../apiBalanceV1";
+import { apiBalanceV1ToPrepaidQuantity } from "../utils/convert/apiBalanceV1ToPrepaidQuantity";
+import { apiBalanceV1ToPurchasedBalance } from "../utils/convert/apiBalanceV1ToPurchasedBalance";
export function balanceBreakdownV1ToV0({
input,
diff --git a/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV0.ts b/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV0.ts
index 8e74b4201..543eba1bd 100644
--- a/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV0.ts
+++ b/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV0.ts
@@ -1,4 +1,4 @@
-import { EntInterval } from "@models/productModels/intervals/entitlementInterval.js";
+import { EntInterval } from "@models/productModels/intervals/entitlementInterval";
import { z } from "zod/v4";
/**
diff --git a/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV1.ts b/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV1.ts
index 5ecd3e39f..97e7d8294 100644
--- a/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV1.ts
+++ b/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV1.ts
@@ -1,5 +1,5 @@
import { z } from "zod/v4";
-import { ApiCusFeatureV0Schema } from "./apiCusFeatureV0.js";
+import { ApiCusFeatureV0Schema } from "./apiCusFeatureV0";
export const ApiCusFeatureV1Schema = ApiCusFeatureV0Schema.extend({
next_reset_at: z.number().nullish(),
diff --git a/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV2.ts b/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV2.ts
index 70528e96a..845b4f301 100644
--- a/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV2.ts
+++ b/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV2.ts
@@ -1,6 +1,6 @@
-import { EntInterval } from "@models/productModels/intervals/entitlementInterval.js";
+import { EntInterval } from "@models/productModels/intervals/entitlementInterval";
import { z } from "zod/v4";
-import { ApiCusFeatureV3RolloverSchema } from "./apiCusFeatureV3.js";
+import { ApiCusFeatureV3RolloverSchema } from "./apiCusFeatureV3";
// Version 2 of cus feature response
export const ApiCusFeatureV2Schema = z.object({
diff --git a/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV3.ts b/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV3.ts
index 95a6aa9ed..f6a6c0060 100644
--- a/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV3.ts
+++ b/shared/api/customers/cusFeatures/previousVersions/apiCusFeatureV3.ts
@@ -1,5 +1,5 @@
-import { ApiFeatureType } from "@api/features/prevVersions/apiFeatureV0.js";
-import { EntInterval } from "@models/productModels/intervals/entitlementInterval.js";
+import { ApiFeatureType } from "@api/features/prevVersions/apiFeatureV0";
+import { EntInterval } from "@models/productModels/intervals/entitlementInterval";
import { z } from "zod/v4";
// Descriptions
diff --git a/shared/api/customers/cusFeatures/utils/check/getFeatureToUseForCheck.ts b/shared/api/customers/cusFeatures/utils/check/getFeatureToUseForCheck.ts
new file mode 100644
index 000000000..90fd69020
--- /dev/null
+++ b/shared/api/customers/cusFeatures/utils/check/getFeatureToUseForCheck.ts
@@ -0,0 +1,60 @@
+import {
+ type ApiBalanceInput,
+ apiBalanceToAllowed,
+ type FeatureInput,
+} from "../convert/apiBalanceToAllowed";
+
+type CheckFeatureInput = FeatureInput & {
+ id: string;
+};
+
+type CheckEntityInput = {
+ balances?: Record;
+};
+
+export const getFeatureToUseForCheck = ({
+ creditSystems,
+ feature,
+ apiEntity,
+ requiredBalance,
+}: {
+ creditSystems: CheckFeatureInput[];
+ feature: CheckFeatureInput;
+ apiEntity: CheckEntityInput;
+ requiredBalance: number;
+}) => {
+ // 1. If there's a credit system & cusEnts for that credit system -> return credit system
+ // 2. If there's cusEnts for the feature -> return feature
+ // 3. Otherwise, feature to use is credit system if exists, otherwise return feature
+ if (creditSystems.length === 0) return feature;
+
+ const mainBalance = apiEntity?.balances?.[feature.id];
+
+ if (
+ mainBalance &&
+ apiBalanceToAllowed({
+ apiBalance: mainBalance,
+ feature,
+ requiredBalance,
+ })
+ ) {
+ return feature;
+ }
+
+ for (const creditSystem of creditSystems) {
+ const apiBalance = apiEntity?.balances?.[creditSystem.id];
+ if (!apiBalance) continue;
+
+ if (
+ apiBalanceToAllowed({
+ apiBalance,
+ feature: creditSystem,
+ requiredBalance,
+ })
+ ) {
+ return creditSystem;
+ }
+ }
+
+ return creditSystems[0];
+};
diff --git a/shared/api/customers/cusFeatures/utils/check/index.ts b/shared/api/customers/cusFeatures/utils/check/index.ts
new file mode 100644
index 000000000..a731c25f4
--- /dev/null
+++ b/shared/api/customers/cusFeatures/utils/check/index.ts
@@ -0,0 +1 @@
+export * from "./getFeatureToUseForCheck";
diff --git a/server/src/internal/api/check/checkUtils/apiBalanceToAllowed.ts b/shared/api/customers/cusFeatures/utils/convert/apiBalanceToAllowed.ts
similarity index 55%
rename from server/src/internal/api/check/checkUtils/apiBalanceToAllowed.ts
rename to shared/api/customers/cusFeatures/utils/convert/apiBalanceToAllowed.ts
index 278088e9b..1e2074ed6 100644
--- a/server/src/internal/api/check/checkUtils/apiBalanceToAllowed.ts
+++ b/shared/api/customers/cusFeatures/utils/convert/apiBalanceToAllowed.ts
@@ -1,19 +1,36 @@
-import {
- type ApiBalanceV1,
- apiBalanceV1ToAvailableOverage,
- type Feature,
- FeatureType,
- notNullish,
-} from "@autumn/shared";
import { Decimal } from "decimal.js";
+import { apiBalanceV1ToAvailableOverage } from "./apiBalanceV1ToAvailableOverage";
+
+export type ApiBalanceBreakdownInput = {
+ usage: number;
+ included_grant: number;
+ prepaid_grant: number;
+ price?: {
+ billing_method?: string;
+ max_purchase: number | null;
+ } | null;
+ overage?: number;
+};
+
+export type ApiBalanceInput = {
+ unlimited: boolean;
+ overage_allowed: boolean;
+ remaining: number;
+ max_purchase: number | null;
+ breakdown?: ApiBalanceBreakdownInput[];
+};
+
+export type FeatureInput = {
+ type?: string;
+};
export const apiBalanceToAllowed = ({
apiBalance,
feature,
requiredBalance,
}: {
- apiBalance: ApiBalanceV1;
- feature: Feature;
+ apiBalance: ApiBalanceInput;
+ feature: FeatureInput;
requiredBalance: number;
}) => {
if (!apiBalance) {
@@ -21,7 +38,7 @@ export const apiBalanceToAllowed = ({
}
// 1. Boolean
- if (feature.type === FeatureType.Boolean) {
+ if (feature.type === "boolean") {
return true;
}
@@ -40,7 +57,7 @@ export const apiBalanceToAllowed = ({
// 1. Available overage
const availableOverage = apiBalanceV1ToAvailableOverage({ apiBalance });
- if (notNullish(availableOverage)) {
+ if (availableOverage !== null && availableOverage !== undefined) {
return new Decimal(availableOverage)
.add(apiBalance.remaining)
.gte(requiredBalance);
diff --git a/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToAvailableOverage.ts b/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToAvailableOverage.ts
index b1e0a1987..34e5514e6 100644
--- a/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToAvailableOverage.ts
+++ b/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToAvailableOverage.ts
@@ -1,18 +1,19 @@
-import { apiBalanceV1ToOverage } from "@api/customers/cusFeatures/utils/convert/apiBalanceV1ToOverage.js";
-import { BillingMethod } from "@api/products/components/billingMethod.js";
-import { sumValues } from "@utils/utils.js";
import { Decimal } from "decimal.js";
import type {
- ApiBalanceBreakdownV1,
- ApiBalanceV1,
-} from "../../apiBalanceV1.js";
+ ApiBalanceBreakdownInput,
+ ApiBalanceInput,
+} from "./apiBalanceToAllowed";
+import { apiBalanceV1ToOverage } from "./apiBalanceV1ToOverage";
+
+const sumValues = (values: number[]) =>
+ values.reduce((total, value) => total + value, 0);
export const apiBalanceBreakdownV1ToMaxOverage = ({
apiBalanceBreakdown,
}: {
- apiBalanceBreakdown: ApiBalanceBreakdownV1;
+ apiBalanceBreakdown: ApiBalanceBreakdownInput;
}): number | undefined => {
- if (apiBalanceBreakdown.price?.billing_method === BillingMethod.UsageBased) {
+ if (apiBalanceBreakdown.price?.billing_method === "usage_based") {
return apiBalanceBreakdown.price?.max_purchase ?? undefined;
}
@@ -22,7 +23,7 @@ export const apiBalanceBreakdownV1ToMaxOverage = ({
export const apiBalanceV1ToMaxOverage = ({
apiBalance,
}: {
- apiBalance: ApiBalanceV1;
+ apiBalance: ApiBalanceInput;
}): number | undefined => {
const breakdownItems = apiBalance.breakdown ?? [];
@@ -42,7 +43,7 @@ export const apiBalanceV1ToMaxOverage = ({
export const apiBalanceV1ToAvailableOverage = ({
apiBalance,
}: {
- apiBalance: ApiBalanceV1;
+ apiBalance: ApiBalanceInput;
}): number | undefined => {
const maxOverage = apiBalanceV1ToMaxOverage({ apiBalance });
const overage = apiBalanceV1ToOverage({ apiBalance });
diff --git a/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToOverage.ts b/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToOverage.ts
index 710ba99dd..0f47936fc 100644
--- a/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToOverage.ts
+++ b/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToOverage.ts
@@ -1,13 +1,15 @@
-import { sumValues } from "@utils/utils.js";
import type {
- ApiBalanceBreakdownV1,
- ApiBalanceV1,
-} from "../../apiBalanceV1.js";
+ ApiBalanceBreakdownInput,
+ ApiBalanceInput,
+} from "./apiBalanceToAllowed";
+
+const sumValues = (values: number[]) =>
+ values.reduce((total, value) => total + value, 0);
export const apiBalanceBreakdownV1ToOverage = ({
apiBalanceBreakdown,
}: {
- apiBalanceBreakdown: ApiBalanceBreakdownV1;
+ apiBalanceBreakdown: ApiBalanceBreakdownInput;
}) => {
// const overage = Math.max(
// 0,
@@ -23,7 +25,7 @@ export const apiBalanceBreakdownV1ToOverage = ({
export const apiBalanceV1ToOverage = ({
apiBalance,
}: {
- apiBalance: ApiBalanceV1;
+ apiBalance: ApiBalanceInput;
}) => {
const breakdownItems = apiBalance.breakdown ?? [];
diff --git a/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToPrepaidQuantity.ts b/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToPrepaidQuantity.ts
index 340e5266a..33710fe3b 100644
--- a/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToPrepaidQuantity.ts
+++ b/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToPrepaidQuantity.ts
@@ -1,5 +1,5 @@
-import { sumValues } from "@utils/utils.js";
-import type { ApiBalanceV1 } from "../../apiBalanceV1.js";
+import { sumValues } from "@utils/utils";
+import type { ApiBalanceV1 } from "../../apiBalanceV1";
export const apiBalanceV1ToPrepaidQuantity = ({
apiBalance,
diff --git a/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToPurchasedBalance.ts b/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToPurchasedBalance.ts
index c4ff85e4d..1ac459cff 100644
--- a/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToPurchasedBalance.ts
+++ b/shared/api/customers/cusFeatures/utils/convert/apiBalanceV1ToPurchasedBalance.ts
@@ -2,12 +2,12 @@ import { Decimal } from "decimal.js";
import type {
ApiBalanceBreakdownV1,
ApiBalanceV1,
-} from "../../apiBalanceV1.js";
+} from "../../apiBalanceV1";
import {
apiBalanceBreakdownV1ToOverage,
apiBalanceV1ToOverage,
-} from "./apiBalanceV1ToOverage.js";
-import { apiBalanceV1ToPrepaidQuantity } from "./apiBalanceV1ToPrepaidQuantity.js";
+} from "./apiBalanceV1ToOverage";
+import { apiBalanceV1ToPrepaidQuantity } from "./apiBalanceV1ToPrepaidQuantity";
export const apiBalanceBreakdownV1ToPurchasedBalance = ({
apiBalanceBreakdown,
diff --git a/shared/api/customers/cusFeatures/utils/convert/balancesToCheckFeature.ts b/shared/api/customers/cusFeatures/utils/convert/balancesToCheckFeature.ts
new file mode 100644
index 000000000..9f0f341f0
--- /dev/null
+++ b/shared/api/customers/cusFeatures/utils/convert/balancesToCheckFeature.ts
@@ -0,0 +1,13 @@
+import type { ApiBalanceInput } from "@api/customers/cusFeatures/utils/convert/apiBalanceToAllowed";
+
+export const balancesToCheckFeature = ({
+ balances,
+}: {
+ balances: Record;
+}) => {
+ return balances.map((balance) => {
+ return {
+ featureId: balance.featureId,
+ };
+ });
+};
diff --git a/shared/api/customers/cusPlans/apiSubscriptionV1.ts b/shared/api/customers/cusPlans/apiSubscriptionV1.ts
index 0300ab74a..92a83fdb5 100644
--- a/shared/api/customers/cusPlans/apiSubscriptionV1.ts
+++ b/shared/api/customers/cusPlans/apiSubscriptionV1.ts
@@ -1,4 +1,4 @@
-import { ApiPlanV1Schema } from "@api/products/apiPlanV1.js";
+import { ApiPlanV1Schema } from "@api/products/apiPlanV1";
import { z } from "zod/v4";
export const ApiSubscriptionV1Schema = z.object({
diff --git a/shared/api/customers/cusPlans/changes/V0.2_CusProductChange.ts b/shared/api/customers/cusPlans/changes/V0.2_CusProductChange.ts
index 4ff40a706..a6b4c7a23 100644
--- a/shared/api/customers/cusPlans/changes/V0.2_CusProductChange.ts
+++ b/shared/api/customers/cusPlans/changes/V0.2_CusProductChange.ts
@@ -1,14 +1,14 @@
-import type { ApiProductItemV0Schema } from "@api/products/items/previousVersions/apiProductItemV0.js";
-import { TierInfinite } from "@models/productV2Models/productItemModels/productItemModels.js";
+import type { ApiProductItemV0Schema } from "@api/products/items/previousVersions/apiProductItemV0";
+import { TierInfinite } from "@models/productV2Models/productItemModels/productItemModels";
import {
isFeatureItem,
isPriceItem,
-} from "@utils/productV2Utils/productItemUtils/getItemType.js";
-import { notNullish } from "@utils/utils.js";
+} from "@utils/productV2Utils/productItemUtils/getItemType";
+import { notNullish } from "@utils/utils";
import type { z } from "zod/v4";
-import type { CusProductLegacyData } from "../cusProductLegacyData.js";
-import type { ApiCusProductV1Schema } from "../previousVersions/apiCusProductV1.js";
-import type { ApiCusProductV2Schema } from "../previousVersions/apiCusProductV2.js";
+import type { CusProductLegacyData } from "../cusProductLegacyData";
+import type { ApiCusProductV1Schema } from "../previousVersions/apiCusProductV1";
+import type { ApiCusProductV2Schema } from "../previousVersions/apiCusProductV2";
/**
* Transform product from V2 format to V1 format
diff --git a/shared/api/customers/cusPlans/changes/V1.2_CusPlanChange.ts b/shared/api/customers/cusPlans/changes/V1.2_CusPlanChange.ts
index 2b2199a40..f40cd8cc6 100644
--- a/shared/api/customers/cusPlans/changes/V1.2_CusPlanChange.ts
+++ b/shared/api/customers/cusPlans/changes/V1.2_CusPlanChange.ts
@@ -1,20 +1,20 @@
-import { type ApiProductItem } from "@api/models.js";
-import { planV0ToProductItems } from "@api/products/mappers/planV0ToProductItems.js";
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import { type ApiProductItem } from "@api/models";
+import { planV0ToProductItems } from "@api/products/mappers/planV0ToProductItems";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
defineVersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
-import { CusProductStatus } from "@models/cusProductModels/cusProductEnums.js";
-import { getProductItemResponse } from "@utils/productV2Utils/productItemUtils/getProductItemRes.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
+import { CusProductStatus } from "@models/cusProductModels/cusProductEnums";
+import { getProductItemResponse } from "@utils/productV2Utils/productItemUtils/getProductItemRes";
import type { z } from "zod/v4";
-import type { SharedContext } from "../../../../types/sharedContext.js";
+import type { SharedContext } from "../../../../types/sharedContext";
import {
type ApiSubscription,
ApiSubscriptionSchema,
-} from "../apiSubscription.js";
-import { CusProductLegacyDataSchema } from "../cusProductLegacyData.js";
-import { ApiCusProductV3Schema } from "../previousVersions/apiCusProductV3.js";
+} from "../apiSubscription";
+import { CusProductLegacyDataSchema } from "../cusProductLegacyData";
+import { ApiCusProductV3Schema } from "../previousVersions/apiCusProductV3";
/**
* Transform plan from V2.0 format to V1.2 product format
diff --git a/shared/api/customers/cusPlans/changes/V2.0_ApiSubscriptionChange.ts b/shared/api/customers/cusPlans/changes/V2.0_ApiSubscriptionChange.ts
index c96c18677..bfc269261 100644
--- a/shared/api/customers/cusPlans/changes/V2.0_ApiSubscriptionChange.ts
+++ b/shared/api/customers/cusPlans/changes/V2.0_ApiSubscriptionChange.ts
@@ -1,6 +1,6 @@
-import { planV1ToV0 } from "@api/products/mappers/planV1ToV0.js";
-import type { ApiSubscription } from "../apiSubscription.js";
-import type { ApiSubscriptionV1 } from "../apiSubscriptionV1.js";
+import { planV1ToV0 } from "@api/products/mappers/planV1ToV0";
+import type { ApiSubscription } from "../apiSubscription";
+import type { ApiSubscriptionV1 } from "../apiSubscriptionV1";
export function transformApiSubscriptionV1ToV0({
input,
diff --git a/shared/api/customers/cusPlans/cusProductLegacyData.ts b/shared/api/customers/cusPlans/cusProductLegacyData.ts
index dee676ea4..b23f140c5 100644
--- a/shared/api/customers/cusPlans/cusProductLegacyData.ts
+++ b/shared/api/customers/cusPlans/cusProductLegacyData.ts
@@ -1,6 +1,6 @@
-import { FeatureOptionsSchema } from "@models/cusProductModels/cusProductModels.js";
+import { FeatureOptionsSchema } from "@models/cusProductModels/cusProductModels";
import { z } from "zod/v4";
-import { FeatureSchema } from "../../../models/featureModels/featureModels.js";
+import { FeatureSchema } from "../../../models/featureModels/featureModels";
// export const CusProductLegacyDataWithoutFeaturesSchema = z.object({
// subscription_id: z.string().optional(),
diff --git a/shared/api/customers/cusPlans/index.ts b/shared/api/customers/cusPlans/index.ts
index 09885013b..8095d27ee 100644
--- a/shared/api/customers/cusPlans/index.ts
+++ b/shared/api/customers/cusPlans/index.ts
@@ -1,14 +1,14 @@
-import { apiSubscriptionV1ToPurchaseV0 } from "@api/customers/cusPlans/mappers/apiSubscriptionV1ToPurchaseV0.js";
+import { apiSubscriptionV1ToPurchaseV0 } from "@api/customers/cusPlans/mappers/apiSubscriptionV1ToPurchaseV0";
-export * from "./apiSubscription.js";
-export * from "./apiSubscriptionV1.js";
-export * from "./cusProductLegacyData.js";
-export * from "./mappers/apiSubscriptionV1ToPurchaseV0.js";
-export * from "./mappers/apiSubscriptionV1ToV0.js";
-export * from "./previousVersions/apiCusProductV0.js";
-export * from "./previousVersions/apiCusProductV1.js";
-export * from "./previousVersions/apiCusProductV2.js";
-export * from "./previousVersions/apiCusProductV3.js";
+export * from "./apiSubscription";
+export * from "./apiSubscriptionV1";
+export * from "./cusProductLegacyData";
+export * from "./mappers/apiSubscriptionV1ToPurchaseV0";
+export * from "./mappers/apiSubscriptionV1ToV0";
+export * from "./previousVersions/apiCusProductV0";
+export * from "./previousVersions/apiCusProductV1";
+export * from "./previousVersions/apiCusProductV2";
+export * from "./previousVersions/apiCusProductV3";
export const apiSubscription = {
map: {
diff --git a/shared/api/customers/cusPlans/mappers/apiPurchaseV0ToSubscriptionV0.ts b/shared/api/customers/cusPlans/mappers/apiPurchaseV0ToSubscriptionV0.ts
index dee9ae625..9395ab0ba 100644
--- a/shared/api/customers/cusPlans/mappers/apiPurchaseV0ToSubscriptionV0.ts
+++ b/shared/api/customers/cusPlans/mappers/apiPurchaseV0ToSubscriptionV0.ts
@@ -1,7 +1,7 @@
-import { planV1ToV0 } from "@api/products/mappers/planV1ToV0.js";
-import type { SharedContext } from "../../../../types/sharedContext.js";
-import type { ApiSubscription } from "../apiSubscription.js";
-import type { ApiPurchaseV0 } from "../apiSubscriptionV1.js";
+import { planV1ToV0 } from "@api/products/mappers/planV1ToV0";
+import type { SharedContext } from "../../../../types/sharedContext";
+import type { ApiSubscription } from "../apiSubscription";
+import type { ApiPurchaseV0 } from "../apiSubscriptionV1";
/**
* Converts an ApiPurchaseV0 to an ApiSubscription (V0) for backwards compatibility.
diff --git a/shared/api/customers/cusPlans/mappers/apiSubscriptionV1ToPurchaseV0.ts b/shared/api/customers/cusPlans/mappers/apiSubscriptionV1ToPurchaseV0.ts
index 6d474d1b6..113aa618f 100644
--- a/shared/api/customers/cusPlans/mappers/apiSubscriptionV1ToPurchaseV0.ts
+++ b/shared/api/customers/cusPlans/mappers/apiSubscriptionV1ToPurchaseV0.ts
@@ -1,4 +1,4 @@
-import type { ApiPurchaseV0, ApiSubscriptionV1 } from "../apiSubscriptionV1.js";
+import type { ApiPurchaseV0, ApiSubscriptionV1 } from "../apiSubscriptionV1";
export function apiSubscriptionV1ToPurchaseV0({
apiSubscriptionV1,
diff --git a/shared/api/customers/cusPlans/mappers/apiSubscriptionV1ToV0.ts b/shared/api/customers/cusPlans/mappers/apiSubscriptionV1ToV0.ts
index 98df68d2a..28fbf1ab8 100644
--- a/shared/api/customers/cusPlans/mappers/apiSubscriptionV1ToV0.ts
+++ b/shared/api/customers/cusPlans/mappers/apiSubscriptionV1ToV0.ts
@@ -1,7 +1,7 @@
-import { planV1ToV0 } from "@api/products/mappers/planV1ToV0.js";
-import type { SharedContext } from "../../../../types/sharedContext.js";
-import type { ApiSubscription } from "../apiSubscription.js";
-import type { ApiSubscriptionV1 } from "../apiSubscriptionV1.js";
+import { planV1ToV0 } from "@api/products/mappers/planV1ToV0";
+import type { SharedContext } from "../../../../types/sharedContext";
+import type { ApiSubscription } from "../apiSubscription";
+import type { ApiSubscriptionV1 } from "../apiSubscriptionV1";
export function apiSubscriptionV1ToV0({
ctx,
diff --git a/shared/api/customers/cusPlans/previousVersions/apiCusProductV1.ts b/shared/api/customers/cusPlans/previousVersions/apiCusProductV1.ts
index 17242e969..aaf613d2d 100644
--- a/shared/api/customers/cusPlans/previousVersions/apiCusProductV1.ts
+++ b/shared/api/customers/cusPlans/previousVersions/apiCusProductV1.ts
@@ -1,5 +1,5 @@
import { z } from "zod/v4";
-import { ApiCusProductV0Schema } from "./apiCusProductV0.js";
+import { ApiCusProductV0Schema } from "./apiCusProductV0";
/**
* ApiCusProductV1Schema - Customer Product schema for API V1.0 (pre V0_2)
diff --git a/shared/api/customers/cusPlans/previousVersions/apiCusProductV2.ts b/shared/api/customers/cusPlans/previousVersions/apiCusProductV2.ts
index 2b861c4f4..1e2d7e87c 100644
--- a/shared/api/customers/cusPlans/previousVersions/apiCusProductV2.ts
+++ b/shared/api/customers/cusPlans/previousVersions/apiCusProductV2.ts
@@ -1,4 +1,4 @@
-import { ApiProductItemV0Schema } from "@api/products/items/previousVersions/apiProductItemV0.js";
+import { ApiProductItemV0Schema } from "@api/products/items/previousVersions/apiProductItemV0";
import { z } from "zod/v4";
/**
diff --git a/shared/api/customers/cusPlans/previousVersions/apiCusProductV3.ts b/shared/api/customers/cusPlans/previousVersions/apiCusProductV3.ts
index 5cc6c808c..9e1e39365 100644
--- a/shared/api/customers/cusPlans/previousVersions/apiCusProductV3.ts
+++ b/shared/api/customers/cusPlans/previousVersions/apiCusProductV3.ts
@@ -1,4 +1,4 @@
-import { ApiProductItemV0Schema } from "@api/products/items/previousVersions/apiProductItemV0.js";
+import { ApiProductItemV0Schema } from "@api/products/items/previousVersions/apiProductItemV0";
import { z } from "zod/v4";
export const ApiCusProductV3Schema = z.object({
diff --git a/shared/api/customers/customerLegacyData.ts b/shared/api/customers/customerLegacyData.ts
index 89ef0067d..b5f5ff76c 100644
--- a/shared/api/customers/customerLegacyData.ts
+++ b/shared/api/customers/customerLegacyData.ts
@@ -1,5 +1,5 @@
import { z } from "zod/v4";
-import { CusProductLegacyDataSchema } from "./cusPlans/cusProductLegacyData.js";
+import { CusProductLegacyDataSchema } from "./cusPlans/cusProductLegacyData";
export const CustomerLegacyDataSchema = z.object({
cusProductLegacyData: z.record(z.string(), CusProductLegacyDataSchema),
diff --git a/shared/api/customers/customerOpModels.ts b/shared/api/customers/customerOpModels.ts
index f80ad4316..547da0e60 100644
--- a/shared/api/customers/customerOpModels.ts
+++ b/shared/api/customers/customerOpModels.ts
@@ -1,6 +1,6 @@
import { z } from "zod/v4";
-import { queryStringArray } from "../common/queryHelpers.js";
-import { CustomerExpandEnum } from "./components/customerExpand/customerExpand.js";
+import { queryStringArray } from "../common/queryHelpers";
+import { CustomerExpandEnum } from "./components/customerExpand/customerExpand";
export const GetCustomerQuerySchema = z.object({
expand: queryStringArray(CustomerExpandEnum).optional(),
diff --git a/shared/api/customers/index.ts b/shared/api/customers/index.ts
index 84452333b..5434ffcc2 100644
--- a/shared/api/customers/index.ts
+++ b/shared/api/customers/index.ts
@@ -1,16 +1,18 @@
// Main customer schemas
-export * from "./apiCustomer.js";
-export * from "./apiCustomerV5.js";
-export * from "./baseApiCustomer.js";
+export * from "./apiCustomer";
+export * from "./apiCustomerV5";
+export * from "./baseApiCustomer";
// Submodules
-export * from "./components/index.js";
-export * from "./crud/createCustomerParams.js";
-export * from "./crud/index.js";
-export * from "./cusFeatures/index.js";
-export * from "./cusPlans/index.js";
-export * from "./customerLegacyData.js";
-export * from "./customerOpModels.js";
-export * from "./previousVersions/index.js";
+export * from "./components/index";
+export * from "./crud/createCustomerParams";
+export * from "./crud/index";
+export * from "./cusFeatures/index";
+export * from "./cusPlans/index";
+export * from "./customerLegacyData";
+export * from "./customerOpModels";
+export * from "./previousVersions/index";
// NOTE: changes/ and requestChanges/ are NOT exported here to avoid circular imports
// Import them directly where needed (e.g., versionChangeRegistry.ts)
+
+export * from "./utils/index";
diff --git a/shared/api/customers/previousVersions/apiCustomerV0.ts b/shared/api/customers/previousVersions/apiCustomerV0.ts
index 0e275bb66..7b48569bb 100644
--- a/shared/api/customers/previousVersions/apiCustomerV0.ts
+++ b/shared/api/customers/previousVersions/apiCustomerV0.ts
@@ -1,9 +1,9 @@
-import { ApiCusFeatureV0Schema } from "@api/customers/cusFeatures/previousVersions/apiCusFeatureV0.js";
-import { ApiCusProductV0Schema } from "@api/customers/cusPlans/previousVersions/apiCusProductV0.js";
-import { ApiInvoiceV0Schema } from "@api/others/apiInvoice/prevVersions/apiInvoiceV0.js";
-import { AppEnv } from "@models/genModels/genEnums.js";
+import { ApiCusFeatureV0Schema } from "@api/customers/cusFeatures/previousVersions/apiCusFeatureV0";
+import { ApiCusProductV0Schema } from "@api/customers/cusPlans/previousVersions/apiCusProductV0";
+import { ApiInvoiceV0Schema } from "@api/others/apiInvoice/prevVersions/apiInvoiceV0";
+import { AppEnv } from "@models/genModels/genEnums";
import { z } from "zod/v4";
-import { ApiTrialsUsedV0Schema } from "../components/apiTrialsUsed/prevVersions/apiTrialsUsedV0.js";
+import { ApiTrialsUsedV0Schema } from "../components/apiTrialsUsed/prevVersions/apiTrialsUsedV0";
/**
* ApiCustomerV0Schema - Customer response format for API V0_1
diff --git a/shared/api/customers/previousVersions/apiCustomerV1.ts b/shared/api/customers/previousVersions/apiCustomerV1.ts
index ab35393f9..1bdb8f67d 100644
--- a/shared/api/customers/previousVersions/apiCustomerV1.ts
+++ b/shared/api/customers/previousVersions/apiCustomerV1.ts
@@ -1,9 +1,9 @@
-import { ApiCusFeatureV1Schema } from "@api/customers/cusFeatures/previousVersions/apiCusFeatureV1.js";
-import { ApiInvoiceV0Schema } from "@api/others/apiInvoice/prevVersions/apiInvoiceV0.js";
-import { AppEnv } from "@models/genModels/genEnums.js";
+import { ApiCusFeatureV1Schema } from "@api/customers/cusFeatures/previousVersions/apiCusFeatureV1";
+import { ApiInvoiceV0Schema } from "@api/others/apiInvoice/prevVersions/apiInvoiceV0";
+import { AppEnv } from "@models/genModels/genEnums";
import { z } from "zod/v4";
-import { ApiTrialsUsedV0Schema } from "../components/apiTrialsUsed/prevVersions/apiTrialsUsedV0.js";
-import { ApiCusProductV1Schema } from "../cusPlans/previousVersions/apiCusProductV1.js";
+import { ApiTrialsUsedV0Schema } from "../components/apiTrialsUsed/prevVersions/apiTrialsUsedV0";
+import { ApiCusProductV1Schema } from "../cusPlans/previousVersions/apiCusProductV1";
/**
* ApiCustomerV1Schema - Customer response format for API V0_2/V1_0/V1_1 (pre V1_2)
diff --git a/shared/api/customers/previousVersions/apiCustomerV2.ts b/shared/api/customers/previousVersions/apiCustomerV2.ts
index c1733fc8f..a6b7851cf 100644
--- a/shared/api/customers/previousVersions/apiCustomerV2.ts
+++ b/shared/api/customers/previousVersions/apiCustomerV2.ts
@@ -1,14 +1,14 @@
-import { ApiCusReferralSchema } from "@api/customers/components/apiCusReferral.js";
-import { ApiCusUpcomingInvoiceSchema } from "@api/customers/components/apiCusUpcomingInvoice.js";
-import { ApiTrialsUsedV0Schema } from "@api/customers/components/apiTrialsUsed/prevVersions/apiTrialsUsedV0.js";
-import { ApiCusFeatureV2Schema } from "@api/customers/cusFeatures/previousVersions/apiCusFeatureV2.js";
-import { ApiCusProductV2Schema } from "@api/customers/cusPlans/previousVersions/apiCusProductV2.js";
-import { ApiBaseEntitySchema } from "@api/entities/apiBaseEntity.js";
-import { ApiInvoiceV0Schema } from "@api/others/apiInvoice/prevVersions/apiInvoiceV0.js";
-import { AppEnv } from "@models/genModels/genEnums.js";
+import { ApiCusReferralSchema } from "@api/customers/components/apiCusReferral";
+import { ApiCusUpcomingInvoiceSchema } from "@api/customers/components/apiCusUpcomingInvoice";
+import { ApiTrialsUsedV0Schema } from "@api/customers/components/apiTrialsUsed/prevVersions/apiTrialsUsedV0";
+import { ApiCusFeatureV2Schema } from "@api/customers/cusFeatures/previousVersions/apiCusFeatureV2";
+import { ApiCusProductV2Schema } from "@api/customers/cusPlans/previousVersions/apiCusProductV2";
+import { ApiBaseEntitySchema } from "@api/entities/apiBaseEntity";
+import { ApiInvoiceV0Schema } from "@api/others/apiInvoice/prevVersions/apiInvoiceV0";
+import { AppEnv } from "@models/genModels/genEnums";
import { z } from "zod/v4";
-import { ApiCusRewardsSchema } from "../../others/apiDiscount.js";
+import { ApiCusRewardsSchema } from "../../others/apiDiscount";
/**
* ApiCustomerV2Schema - Customer response format for API V1.1+ (merged format)
diff --git a/shared/api/customers/previousVersions/apiCustomerV3.ts b/shared/api/customers/previousVersions/apiCustomerV3.ts
index fcd20e5f3..1b143eac1 100644
--- a/shared/api/customers/previousVersions/apiCustomerV3.ts
+++ b/shared/api/customers/previousVersions/apiCustomerV3.ts
@@ -1,13 +1,13 @@
-import { ApiCusReferralSchema } from "@api/customers/components/apiCusReferral.js";
-import { ApiCusUpcomingInvoiceSchema } from "@api/customers/components/apiCusUpcomingInvoice.js";
-import { ApiBaseEntitySchema } from "@api/entities/apiEntity.js";
-import { ApiCusRewardsSchema } from "@api/others/apiDiscount.js";
-import { AppEnv } from "@models/genModels/genEnums.js";
+import { ApiCusReferralSchema } from "@api/customers/components/apiCusReferral";
+import { ApiCusUpcomingInvoiceSchema } from "@api/customers/components/apiCusUpcomingInvoice";
+import { ApiBaseEntitySchema } from "@api/entities/apiEntity";
+import { ApiCusRewardsSchema } from "@api/others/apiDiscount";
+import { AppEnv } from "@models/genModels/genEnums";
import { z } from "zod/v4";
-import { ApiInvoiceV0Schema } from "../../others/apiInvoice/prevVersions/apiInvoiceV0.js";
-import { ApiTrialsUsedV0Schema } from "../components/apiTrialsUsed/prevVersions/apiTrialsUsedV0.js";
-import { ApiCusFeatureV3Schema } from "../cusFeatures/previousVersions/apiCusFeatureV3.js";
-import { ApiCusProductV3Schema } from "../cusPlans/previousVersions/apiCusProductV3.js";
+import { ApiInvoiceV0Schema } from "../../others/apiInvoice/prevVersions/apiInvoiceV0";
+import { ApiTrialsUsedV0Schema } from "../components/apiTrialsUsed/prevVersions/apiTrialsUsedV0";
+import { ApiCusFeatureV3Schema } from "../cusFeatures/previousVersions/apiCusFeatureV3";
+import { ApiCusProductV3Schema } from "../cusPlans/previousVersions/apiCusProductV3";
export const API_CUSTOMER_V3_EXAMPLE = {
id: "customer_123",
diff --git a/shared/api/customers/previousVersions/index.ts b/shared/api/customers/previousVersions/index.ts
index 73dece1cd..be3a2b61b 100644
--- a/shared/api/customers/previousVersions/index.ts
+++ b/shared/api/customers/previousVersions/index.ts
@@ -1,4 +1,4 @@
-export * from "./apiCustomerV0.js";
-export * from "./apiCustomerV1.js";
-export * from "./apiCustomerV2.js";
-export * from "./apiCustomerV3.js";
+export * from "./apiCustomerV0";
+export * from "./apiCustomerV1";
+export * from "./apiCustomerV2";
+export * from "./apiCustomerV3";
diff --git a/shared/api/customers/requestChanges/V1.2_CustomerQueryChange.ts b/shared/api/customers/requestChanges/V1.2_CustomerQueryChange.ts
index 45e01ffdd..29bed6426 100644
--- a/shared/api/customers/requestChanges/V1.2_CustomerQueryChange.ts
+++ b/shared/api/customers/requestChanges/V1.2_CustomerQueryChange.ts
@@ -1,12 +1,12 @@
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
defineVersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
import type { z } from "zod/v4";
-import type { SharedContext } from "../../../types/sharedContext.js";
-import { CustomerExpand } from "../components/customerExpand/customerExpand.js";
-import { GetCustomerQuerySchema } from "../customerOpModels.js";
+import type { SharedContext } from "../../../types/sharedContext";
+import { CustomerExpand } from "../components/customerExpand/customerExpand";
+import { GetCustomerQuerySchema } from "../customerOpModels";
/**
* V1_2_CustomerQueryChange: Transforms customer query TO latest format
diff --git a/shared/api/customers/utils/apiCustomerToFeatures.ts b/shared/api/customers/utils/apiCustomerToFeatures.ts
new file mode 100644
index 000000000..d6f82ecad
--- /dev/null
+++ b/shared/api/customers/utils/apiCustomerToFeatures.ts
@@ -0,0 +1,41 @@
+type ApiCustomerFeatureInput = {
+ id: string;
+ name?: string;
+ type?: string;
+ credit_schema?: Array<{
+ metered_feature_id: string;
+ credit_cost: number;
+ }>;
+ creditSchema?: Array<{
+ meteredFeatureId: string;
+ creditCost: number;
+ }>;
+};
+
+type ApiCustomerBalanceInput = {
+ feature?: ApiCustomerFeatureInput;
+};
+
+export type ApiCustomerWithBalancesInput = {
+ balances: Record;
+};
+
+export const apiCustomerToFeatures = ({
+ apiCustomer,
+}: {
+ apiCustomer: ApiCustomerWithBalancesInput;
+}) => {
+ const balances = Object.values(apiCustomer.balances);
+ if (balances.length === 0) return [];
+
+ const firstBalance = balances[0];
+ if (!firstBalance.feature) {
+ throw new Error(
+ "[customerToFeatures] please expand `balances.feature` to get features for the customer",
+ );
+ }
+
+ return Object.values(apiCustomer.balances).map((balance) => {
+ return balance.feature;
+ }) as ApiCustomerFeatureInput[]; // safe to cast because we checked for feature in the first balance
+};
diff --git a/shared/api/customers/utils/index.ts b/shared/api/customers/utils/index.ts
new file mode 100644
index 000000000..a3220b1fe
--- /dev/null
+++ b/shared/api/customers/utils/index.ts
@@ -0,0 +1 @@
+export * from "./apiCustomerToFeatures";
diff --git a/shared/api/entities/changes/V2.0_EntityChange.ts b/shared/api/entities/changes/V2.0_EntityChange.ts
index 34281dfa8..c31295aff 100644
--- a/shared/api/entities/changes/V2.0_EntityChange.ts
+++ b/shared/api/entities/changes/V2.0_EntityChange.ts
@@ -1,17 +1,17 @@
-import type { ApiBalance } from "@api/customers/cusFeatures/apiBalance.js";
-import { balanceV1ToV0 } from "@api/customers/cusFeatures/mappers/balanceV1ToV0.js";
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import type { ApiBalance } from "@api/customers/cusFeatures/apiBalance";
+import { balanceV1ToV0 } from "@api/customers/cusFeatures/mappers/balanceV1ToV0";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
defineVersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
import type { z } from "zod/v4";
-import type { SharedContext } from "../../../types/sharedContext.js";
-import type { ApiSubscription } from "../../customers/cusPlans/apiSubscription.js";
-import { apiPurchaseV0ToSubscriptionV0 } from "../../customers/cusPlans/mappers/apiPurchaseV0ToSubscriptionV0.js";
-import { apiSubscriptionV1ToV0 } from "../../customers/cusPlans/mappers/apiSubscriptionV1ToV0.js";
-import { ApiEntityV1Schema } from "../apiEntity.js";
-import { ApiEntityV2Schema } from "../apiEntityV2.js";
+import type { SharedContext } from "../../../types/sharedContext";
+import type { ApiSubscription } from "../../customers/cusPlans/apiSubscription";
+import { apiPurchaseV0ToSubscriptionV0 } from "../../customers/cusPlans/mappers/apiPurchaseV0ToSubscriptionV0";
+import { apiSubscriptionV1ToV0 } from "../../customers/cusPlans/mappers/apiSubscriptionV1ToV0";
+import { ApiEntityV1Schema } from "../apiEntity";
+import { ApiEntityV2Schema } from "../apiEntityV2";
/**
* V2.0_EntityChange: Transforms entity response TO V1 format from V2 format
@@ -60,7 +60,9 @@ export const V2_0_EntityChange = defineVersionChange({
// Convert purchases to subscriptions and add to active subscriptions
const purchasesAsSubscriptions: ApiSubscription[] = (
input.purchases ?? []
- ).map((purchase) => apiPurchaseV0ToSubscriptionV0({ ctx, input: purchase }));
+ ).map((purchase) =>
+ apiPurchaseV0ToSubscriptionV0({ ctx, input: purchase }),
+ );
const balancesV0: Record = {};
if (input.balances) {
diff --git a/shared/api/entities/requestChanges/V1.2_EntityQueryChange.ts b/shared/api/entities/requestChanges/V1.2_EntityQueryChange.ts
index 68d33d2b8..d991e76c9 100644
--- a/shared/api/entities/requestChanges/V1.2_EntityQueryChange.ts
+++ b/shared/api/entities/requestChanges/V1.2_EntityQueryChange.ts
@@ -1,15 +1,15 @@
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
defineVersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
import type { z } from "zod/v4";
-import type { SharedContext } from "../../../types/sharedContext.js";
-import { CustomerExpand } from "../../customers/components/customerExpand/customerExpand.js";
+import type { SharedContext } from "../../../types/sharedContext";
+import { CustomerExpand } from "../../customers/components/customerExpand/customerExpand";
import {
type GetEntityQuery,
GetEntityQuerySchema,
-} from "../entityOpModels.js";
+} from "../entityOpModels";
/**
* V1_2_EntityQueryChange: Transforms entity query TO latest format
diff --git a/shared/api/features/apiFeatureV1.ts b/shared/api/features/apiFeatureV1.ts
index 08a06fd3f..a7d5ca258 100644
--- a/shared/api/features/apiFeatureV1.ts
+++ b/shared/api/features/apiFeatureV1.ts
@@ -1,5 +1,5 @@
import { z } from "zod/v4";
-import { FeatureType } from "../../models/featureModels/featureEnums.js";
+import { FeatureType } from "../../models/featureModels/featureEnums";
export const ApiFeatureV1Schema = z.object({
id: z.string(),
diff --git a/shared/api/features/utils/findCreditSystemsByFeatureId.ts b/shared/api/features/utils/findCreditSystemsByFeatureId.ts
new file mode 100644
index 000000000..b53a89ecf
--- /dev/null
+++ b/shared/api/features/utils/findCreditSystemsByFeatureId.ts
@@ -0,0 +1,15 @@
+import type { ApiFeatureV1 } from "@api/features/apiFeatureV1";
+
+export const findCreditSystemsByFeatureId = ({
+ featureId,
+ creditSystems,
+}: {
+ featureId: string;
+ creditSystems: ApiFeatureV1[];
+}) => {
+ return creditSystems.filter((creditSystem) =>
+ creditSystem.credit_schema?.some(
+ (schema) => schema.metered_feature_id === featureId,
+ ),
+ );
+};
diff --git a/shared/api/others/apiDiscount.ts b/shared/api/others/apiDiscount.ts
index 67515c52d..d1691b832 100644
--- a/shared/api/others/apiDiscount.ts
+++ b/shared/api/others/apiDiscount.ts
@@ -1,7 +1,7 @@
import {
CouponDurationType,
RewardType,
-} from "@models/rewardModels/rewardModels/rewardEnums.js";
+} from "@models/rewardModels/rewardModels/rewardEnums";
import { z } from "zod/v4";
export const ApiDiscountSchema = z.object({
diff --git a/shared/api/products/changes/V2.0_PlanChanges.ts b/shared/api/products/changes/V2.0_PlanChanges.ts
index 8899a94c6..6ea1c4995 100644
--- a/shared/api/products/changes/V2.0_PlanChanges.ts
+++ b/shared/api/products/changes/V2.0_PlanChanges.ts
@@ -1,16 +1,16 @@
-import { type ApiPlanV1, ApiPlanV1Schema } from "@api/products/apiPlanV1.js";
-import { planV1ToV0 } from "@api/products/mappers/planV1ToV0.js";
-import { ApiVersion } from "@api/versionUtils/ApiVersion.js";
+import { type ApiPlanV1, ApiPlanV1Schema } from "@api/products/apiPlanV1";
+import { planV1ToV0 } from "@api/products/mappers/planV1ToV0";
+import { ApiVersion } from "@api/versionUtils/ApiVersion";
import {
AffectedResource,
defineVersionChange,
-} from "@api/versionUtils/versionChangeUtils/VersionChange.js";
-import type { SharedContext } from "../../../types/sharedContext.js";
-import { PlanLegacyDataSchema } from "../planLegacyData.js";
+} from "@api/versionUtils/versionChangeUtils/VersionChange";
+import type { SharedContext } from "../../../types/sharedContext";
+import { PlanLegacyDataSchema } from "../planLegacyData";
import {
type ApiPlan,
ApiPlanV0Schema,
-} from "../previousVersions/apiPlanV0.js";
+} from "../previousVersions/apiPlanV0";
export const V2_0_PlanChanges = defineVersionChange({
newVersion: ApiVersion.V2_1,
diff --git a/shared/api/products/crud/index.ts b/shared/api/products/crud/index.ts
index 2d138edff..cc4d3e01c 100644
--- a/shared/api/products/crud/index.ts
+++ b/shared/api/products/crud/index.ts
@@ -1,3 +1,3 @@
-export * from "./createPlanParamsV0.js";
-export * from "./listPlanParams.js";
-export * from "./updatePlanParamsV0.js";
+export * from "./createPlanParamsV0";
+export * from "./listPlanParams";
+export * from "./updatePlanParamsV0";
diff --git a/shared/api/products/index.ts b/shared/api/products/index.ts
index c4d040528..f401654b7 100644
--- a/shared/api/products/index.ts
+++ b/shared/api/products/index.ts
@@ -1,20 +1,20 @@
-import { planParamsV1ToProductV2 } from "@api/products/crud/mappers/planParamsV1ToProductV2.js";
-import { planV0ToProductItems } from "@api/products/mappers/planV0ToProductItems.js";
+import { planParamsV1ToProductV2 } from "@api/products/crud/mappers/planParamsV1ToProductV2";
+import { planV0ToProductItems } from "@api/products/mappers/planV0ToProductItems";
-export * from "./apiFreeTrial.js";
-export * from "./apiPlanV1.js";
-export * from "./components/apiFreeTrialV2.js";
-export * from "./components/billingMethod.js";
-export * from "./components/display.js";
-export * from "./components/planExpand.js";
-export * from "./crud/index.js";
-export * from "./items/index.js";
-export * from "./mappers/index.js";
-export * from "./planLegacyData.js";
-export * from "./previousVersions/apiPlanV0.js";
-export * from "./previousVersions/apiProduct.js";
-export * from "./productOpModels.js";
-export * from "./productsOpenApi.js";
+export * from "./apiFreeTrial";
+export * from "./apiPlanV1";
+export * from "./components/apiFreeTrialV2";
+export * from "./components/billingMethod";
+export * from "./components/display";
+export * from "./components/planExpand";
+export * from "./crud/index";
+export * from "./items/index";
+export * from "./mappers/index";
+export * from "./planLegacyData";
+export * from "./previousVersions/apiPlanV0";
+export * from "./previousVersions/apiProduct";
+export * from "./productOpModels";
+export * from "./productsOpenApi";
// Note: V1.2_ProductChanges.js is NOT exported here to avoid circular deps
// It's only imported directly by versionChangeRegistry.ts
diff --git a/shared/api/products/items/apiPlanItemV1.ts b/shared/api/products/items/apiPlanItemV1.ts
index 420c97958..2e2100bad 100644
--- a/shared/api/products/items/apiPlanItemV1.ts
+++ b/shared/api/products/items/apiPlanItemV1.ts
@@ -1,14 +1,14 @@
-import { ApiFeatureV0Schema } from "@api/features/prevVersions/apiFeatureV0.js";
-import { BillingMethod } from "@api/products/components/billingMethod.js";
-import { DisplaySchema } from "@api/products/components/display.js";
-import { RolloverExpiryDurationType } from "@models/productModels/durationTypes/rolloverExpiryDurationType.js";
-import { BillingInterval } from "@models/productModels/intervals/billingInterval.js";
-import { ResetInterval } from "@models/productModels/intervals/resetInterval.js";
-import { UsageTierSchema } from "@models/productModels/priceModels/priceConfig/usagePriceConfig.js";
+import { ApiFeatureV0Schema } from "@api/features/prevVersions/apiFeatureV0";
+import { BillingMethod } from "@api/products/components/billingMethod";
+import { DisplaySchema } from "@api/products/components/display";
+import { RolloverExpiryDurationType } from "@models/productModels/durationTypes/rolloverExpiryDurationType";
+import { BillingInterval } from "@models/productModels/intervals/billingInterval";
+import { ResetInterval } from "@models/productModels/intervals/resetInterval";
+import { UsageTierSchema } from "@models/productModels/priceModels/priceConfig/usagePriceConfig";
import {
OnDecrease,
OnIncrease,
-} from "@models/productV2Models/productItemModels/productItemEnums.js";
+} from "@models/productV2Models/productItemModels/productItemEnums";
import { z } from "zod/v4";
export const ApiPlanItemV1Schema = z
diff --git a/shared/api/products/items/crud/createPlanItemParamsV1.ts b/shared/api/products/items/crud/createPlanItemParamsV1.ts
index 5b0eb9c91..d1ad332f2 100644
--- a/shared/api/products/items/crud/createPlanItemParamsV1.ts
+++ b/shared/api/products/items/crud/createPlanItemParamsV1.ts
@@ -1,12 +1,12 @@
-import { BillingMethod } from "@api/products/components/billingMethod.js";
-import { RolloverExpiryDurationType } from "@models/productModels/durationTypes/rolloverExpiryDurationType.js";
-import { BillingInterval } from "@models/productModels/intervals/billingInterval.js";
-import { ResetInterval } from "@models/productModels/intervals/resetInterval.js";
-import { UsageTierSchema } from "@models/productModels/priceModels/priceConfig/usagePriceConfig.js";
+import { BillingMethod } from "@api/products/components/billingMethod";
+import { RolloverExpiryDurationType } from "@models/productModels/durationTypes/rolloverExpiryDurationType";
+import { BillingInterval } from "@models/productModels/intervals/billingInterval";
+import { ResetInterval } from "@models/productModels/intervals/resetInterval";
+import { UsageTierSchema } from "@models/productModels/priceModels/priceConfig/usagePriceConfig";
import {
OnDecrease,
OnIncrease,
-} from "@models/productV2Models/productItemModels/productItemEnums.js";
+} from "@models/productV2Models/productItemModels/productItemEnums";
import { z } from "zod/v4";
export const CreatePlanItemParamsV1Schema = z
diff --git a/shared/api/products/items/index.ts b/shared/api/products/items/index.ts
index d293b5d86..19a05e0d0 100644
--- a/shared/api/products/items/index.ts
+++ b/shared/api/products/items/index.ts
@@ -1,11 +1,11 @@
-import { planItemV0ToProductItem } from "@api/products/items/mappers/planItemV0ToProductItem.js";
+import { planItemV0ToProductItem } from "@api/products/items/mappers/planItemV0ToProductItem";
-export * from "./apiPlanItemV1.js";
-export * from "./crud/createPlanItemParamsV1.js";
-export * from "./mappers/planItemV0ToProductItem.js";
-export * from "./mappers/planItemV1ToV0.js";
-export * from "./previousVersions/apiPlanItemV0.js";
-export * from "./previousVersions/apiProductItemV0.js";
+export * from "./apiPlanItemV1";
+export * from "./crud/createPlanItemParamsV1";
+export * from "./mappers/planItemV0ToProductItem";
+export * from "./mappers/planItemV1ToV0";
+export * from "./previousVersions/apiPlanItemV0";
+export * from "./previousVersions/apiProductItemV0";
export const apiPlanItem = {
map: {
diff --git a/shared/api/products/items/mappers/planItemV0ToProductItem.ts b/shared/api/products/items/mappers/planItemV0ToProductItem.ts
index 16defaf20..1fb7b92e1 100644
--- a/shared/api/products/items/mappers/planItemV0ToProductItem.ts
+++ b/shared/api/products/items/mappers/planItemV0ToProductItem.ts
@@ -1,31 +1,31 @@
-import type { ApiPlanItemV0 } from "@api/products/items/previousVersions/apiPlanItemV0.js";
-import type { ProrationConfig } from "@models/productModels/priceModels/priceModels.js";
-import { Infinite } from "@models/productModels/productEnums.js";
+import type { ApiPlanItemV0 } from "@api/products/items/previousVersions/apiPlanItemV0";
+import type { ProrationConfig } from "@models/productModels/priceModels/priceModels";
+import { Infinite } from "@models/productModels/productEnums";
import {
OnDecrease,
OnIncrease,
-} from "@models/productV2Models/productItemModels/productItemEnums.js";
+} from "@models/productV2Models/productItemModels/productItemEnums";
import {
type ProductItem,
type ProductItemConfig,
ProductItemSchema,
ProductItemType,
type RolloverConfig,
-} from "@models/productV2Models/productItemModels/productItemModels.js";
-import { dbToApiFeatureV1 } from "@utils/featureUtils/apiFeatureToDbFeature.js";
-import { featureToItemFeatureType } from "@utils/featureUtils/convertFeatureUtils.js";
-import { featureUtils } from "@utils/featureUtils/index.js";
-import { resetIntvToItemIntv } from "@utils/productV2Utils/productItemUtils/convertProductItem/planItemIntervals.js";
-import { billingToItemInterval } from "@utils/productV2Utils/productItemUtils/itemIntervalUtils.js";
-import type { SharedContext } from "../../../../types/sharedContext.js";
+} from "@models/productV2Models/productItemModels/productItemModels";
+import { dbToApiFeatureV1 } from "@utils/featureUtils/apiFeatureToDbFeature";
+import { featureToItemFeatureType } from "@utils/featureUtils/convertFeatureUtils";
+import { featureUtils } from "@utils/featureUtils/index";
+import { resetIntvToItemIntv } from "@utils/productV2Utils/productItemUtils/convertProductItem/planItemIntervals";
+import { billingToItemInterval } from "@utils/productV2Utils/productItemUtils/itemIntervalUtils";
+import type { SharedContext } from "../../../../types/sharedContext";
import {
type ApiFeatureV0,
type CreateBalanceParamsV0,
FeatureNotFoundError,
-} from "../../../models.js";
-import { ApiVersion } from "../../../versionUtils/ApiVersion.js";
-import { ApiVersionClass } from "../../../versionUtils/ApiVersionClass.js";
-import { hasPrice, hasResetInterval } from "../utils/classifyPlanItemV0.js";
+} from "../../../models";
+import { ApiVersion } from "../../../versionUtils/ApiVersion";
+import { ApiVersionClass } from "../../../versionUtils/ApiVersionClass";
+import { hasPrice, hasResetInterval } from "../utils/classifyPlanItemV0";
const planItemV0ToProductItemInterval = ({
planItemV0,
diff --git a/shared/api/products/items/mappers/planItemV1ToV0.ts b/shared/api/products/items/mappers/planItemV1ToV0.ts
index b5196561e..eaf5cb61d 100644
--- a/shared/api/products/items/mappers/planItemV1ToV0.ts
+++ b/shared/api/products/items/mappers/planItemV1ToV0.ts
@@ -1,8 +1,8 @@
-import type { CreatePlanItemParamsV1 } from "@api/models.js";
-import { billingMethodToUsageModel } from "@api/products/components/mappers/billingMethodTousageModel.js";
-import type { ApiPlanItemV0 } from "@api/products/items/previousVersions/apiPlanItemV0.js";
-import { featureUtils } from "@utils/featureUtils/index.js";
-import type { SharedContext } from "../../../../types/sharedContext.js";
+import type { CreatePlanItemParamsV1 } from "@api/models";
+import { billingMethodToUsageModel } from "@api/products/components/mappers/billingMethodTousageModel";
+import type { ApiPlanItemV0 } from "@api/products/items/previousVersions/apiPlanItemV0";
+import { featureUtils } from "@utils/featureUtils/index";
+import type { SharedContext } from "../../../../types/sharedContext";
import type { ApiPlanItemV1 } from "../apiPlanItemV1";
/** Transform ApiPlanItemV1 to ApiPlanItemV0 */
diff --git a/shared/api/products/items/previousVersions/apiPlanItemV0.ts b/shared/api/products/items/previousVersions/apiPlanItemV0.ts
index 446b89106..1aab747c6 100644
--- a/shared/api/products/items/previousVersions/apiPlanItemV0.ts
+++ b/shared/api/products/items/previousVersions/apiPlanItemV0.ts
@@ -1,14 +1,14 @@
-import { ApiFeatureV0Schema } from "@api/features/prevVersions/apiFeatureV0.js";
-import { DisplaySchema } from "@api/products/components/display.js";
-import { RolloverExpiryDurationType } from "@models/productModels/durationTypes/rolloverExpiryDurationType.js";
-import { BillingInterval } from "@models/productModels/intervals/billingInterval.js";
-import { ResetInterval } from "@models/productModels/intervals/resetInterval.js";
-import { UsageTierSchema } from "@models/productModels/priceModels/priceConfig/usagePriceConfig.js";
+import { ApiFeatureV0Schema } from "@api/features/prevVersions/apiFeatureV0";
+import { DisplaySchema } from "@api/products/components/display";
+import { RolloverExpiryDurationType } from "@models/productModels/durationTypes/rolloverExpiryDurationType";
+import { BillingInterval } from "@models/productModels/intervals/billingInterval";
+import { ResetInterval } from "@models/productModels/intervals/resetInterval";
+import { UsageTierSchema } from "@models/productModels/priceModels/priceConfig/usagePriceConfig";
import {
OnDecrease,
OnIncrease,
-} from "@models/productV2Models/productItemModels/productItemEnums.js";
-import { UsageModel } from "@models/productV2Models/productItemModels/productItemModels.js";
+} from "@models/productV2Models/productItemModels/productItemEnums";
+import { UsageModel } from "@models/productV2Models/productItemModels/productItemModels";
import { z } from "zod/v4";
export const ApiPlanItemV0Schema = z
diff --git a/shared/api/products/mappers/index.ts b/shared/api/products/mappers/index.ts
index c794893d5..e6bd88acd 100644
--- a/shared/api/products/mappers/index.ts
+++ b/shared/api/products/mappers/index.ts
@@ -1 +1 @@
-export * from "./planV1ToV0.js";
+export * from "./planV1ToV0";
diff --git a/shared/api/products/mappers/planV1ToV0.ts b/shared/api/products/mappers/planV1ToV0.ts
index a9d8100f1..cd8784868 100644
--- a/shared/api/products/mappers/planV1ToV0.ts
+++ b/shared/api/products/mappers/planV1ToV0.ts
@@ -1,6 +1,6 @@
-import type { ApiPlanV1 } from "@api/products/apiPlanV1.js";
-import { planItemV1ToV0 } from "@api/products/items/mappers/planItemV1ToV0.js";
-import type { ApiPlan } from "@api/products/previousVersions/apiPlanV0.js";
+import type { ApiPlanV1 } from "@api/products/apiPlanV1";
+import { planItemV1ToV0 } from "@api/products/items/mappers/planItemV1ToV0";
+import type { ApiPlan } from "@api/products/previousVersions/apiPlanV0";
import type { SharedContext } from "../../../types/sharedContext";
/**
diff --git a/shared/api/versionUtils/versionChangeUtils/versionChangeRegistry.ts b/shared/api/versionUtils/versionChangeUtils/versionChangeRegistry.ts
index 1af759cde..5607d65db 100644
--- a/shared/api/versionUtils/versionChangeUtils/versionChangeRegistry.ts
+++ b/shared/api/versionUtils/versionChangeUtils/versionChangeRegistry.ts
@@ -1,45 +1,45 @@
// Import customer feature changes
-import { V0_1_CustomerChange } from "@api/customers/changes/V0.1_CustomerChange.js";
+import { V0_1_CustomerChange } from "@api/customers/changes/V0.1_CustomerChange";
// Import customer changes
-import { V0_2_CustomerChange } from "@api/customers/changes/V0.2_CustomerChange.js";
-import { V0_2_InvoicesAlwaysExpanded } from "@api/customers/changes/V0.2_InvoicesAlwaysExpanded.js";
-import { V1_1_FeaturesArrayToObject } from "@api/customers/changes/V1.1_FeaturesArrayToObject.js";
+import { V0_2_CustomerChange } from "@api/customers/changes/V0.2_CustomerChange";
+import { V0_2_InvoicesAlwaysExpanded } from "@api/customers/changes/V0.2_InvoicesAlwaysExpanded";
+import { V1_1_FeaturesArrayToObject } from "@api/customers/changes/V1.1_FeaturesArrayToObject";
// Import trials used changes
-import { V1_2_TrialsUsedChange } from "@api/customers/components/apiTrialsUsed/changes/V1.2_TrialsUsedChange.js";
+import { V1_2_TrialsUsedChange } from "@api/customers/components/apiTrialsUsed/changes/V1.2_TrialsUsedChange";
// Import customer product changes
-import { V1_2_CustomerChange } from "@api/customers/changes/V1.2_CustomerChange.js";
-import { V1_2_CustomerQueryChange } from "@api/customers/requestChanges/V1.2_CustomerQueryChange.js";
+import { V1_2_CustomerChange } from "@api/customers/changes/V1.2_CustomerChange";
+import { V1_2_CustomerQueryChange } from "@api/customers/requestChanges/V1.2_CustomerQueryChange";
// Import entity changes
-import { V1_2_EntityChange } from "@api/entities/changes/V1.2_EntityChange.js";
-import { V2_0_EntityChange } from "@api/entities/changes/V2.0_EntityChange.js";
-import { V1_2_EntityQueryChange } from "@api/entities/requestChanges/V1.2_EntityQueryChange.js";
+import { V1_2_EntityChange } from "@api/entities/changes/V1.2_EntityChange";
+import { V2_0_EntityChange } from "@api/entities/changes/V2.0_EntityChange";
+import { V1_2_EntityQueryChange } from "@api/entities/requestChanges/V1.2_EntityQueryChange";
// Import feature changes
-import { V1_2_FeatureChange } from "@api/features/changes/V1.2_FeatureChange.js";
-import { V1_2_CreateFeatureChange } from "@api/features/changes/V1.2_FeatureParamsChange.js";
+import { V1_2_FeatureChange } from "@api/features/changes/V1.2_FeatureChange";
+import { V1_2_CreateFeatureChange } from "@api/features/changes/V1.2_FeatureParamsChange";
// Import invoice changes
-import { V1_2_InvoiceChange } from "@api/others/apiInvoice/changes/V1.2_InvoiceChange.js";
+import { V1_2_InvoiceChange } from "@api/others/apiInvoice/changes/V1.2_InvoiceChange";
// Import product changes
-import { V2_0_CustomerChange } from "@api/customers/changes/V2.0_CustomerChange.js";
-import { V1_2_ProductChanges } from "@api/products/changes/V1.2_ProductChanges.js";
-import { V2_0_PlanChanges } from "@api/products/changes/V2.0_PlanChanges.js";
-import { V0_2_CheckChange } from "../../balances/check/changes/V0.2_CheckChange.js";
-import { V1_2_CheckChange } from "../../balances/check/changes/V1.2_CheckChange.js";
-import { V1_2_CheckQueryChange } from "../../balances/check/changes/V1.2_CheckQueryChange.js";
-import { V2_0_CheckChange } from "../../balances/check/changes/V2.0_CheckChange.js";
-import { V1_2_TrackChange } from "../../balances/track/changes/V1.2_TrackChange.js";
-import { V2_0_TrackChange } from "../../balances/track/changes/V2.0_TrackChange.js";
-import { V1_2_TrackParamsChange } from "../../balances/track/requestChanges/V1.2_TrackParamsChange.js";
+import { V2_0_CustomerChange } from "@api/customers/changes/V2.0_CustomerChange";
+import { V1_2_ProductChanges } from "@api/products/changes/V1.2_ProductChanges";
+import { V2_0_PlanChanges } from "@api/products/changes/V2.0_PlanChanges";
+import { V0_2_CheckChange } from "../../balances/check/changes/V0.2_CheckChange";
+import { V1_2_CheckChange } from "../../balances/check/changes/V1.2_CheckChange";
+import { V1_2_CheckQueryChange } from "../../balances/check/changes/V1.2_CheckQueryChange";
+import { V2_0_CheckChange } from "../../balances/check/changes/V2.0_CheckChange";
+import { V1_2_TrackChange } from "../../balances/track/changes/V1.2_TrackChange";
+import { V2_0_TrackChange } from "../../balances/track/changes/V2.0_TrackChange";
+import { V1_2_TrackParamsChange } from "../../balances/track/requestChanges/V1.2_TrackParamsChange";
// Import attach changes
-import { V0_2_AttachChange } from "../../billing/attach/changes/V0.2_AttachChange.js";
-import { V1_2_AttachParamsChange } from "../../billing/attachV2/requestChanges/V1.2_AttachParamsChange.js";
-import { V1_2_UpdateSubscriptionParamsChange } from "../../billing/updateSubscription/requestChanges/V1.2_UpdateSubscriptionParamsChange.js";
-import { ApiVersion } from "../ApiVersion.js";
-import type { VersionChangeConstructor } from "./VersionChange.js";
-import { VersionChangeRegistryClass } from "./VersionChangeRegistryClass.js";
+import { V0_2_AttachChange } from "../../billing/attach/changes/V0.2_AttachChange";
+import { V1_2_AttachParamsChange } from "../../billing/attachV2/requestChanges/V1.2_AttachParamsChange";
+import { V1_2_UpdateSubscriptionParamsChange } from "../../billing/updateSubscription/requestChanges/V1.2_UpdateSubscriptionParamsChange";
+import { ApiVersion } from "../ApiVersion";
+import type { VersionChangeConstructor } from "./VersionChange";
+import { VersionChangeRegistryClass } from "./VersionChangeRegistryClass";
export const V2_1_CHANGES: VersionChangeConstructor[] = [
V2_0_PlanChanges, // Transforms Plan TO V2.0 format from V2.1 format
diff --git a/shared/index.ts b/shared/index.ts
index 9707e5ae1..9a878d27f 100644
--- a/shared/index.ts
+++ b/shared/index.ts
@@ -1,205 +1,205 @@
// Schemas
-import * as schemas from "./db/schema.js";
+import * as schemas from "./db/schema";
export { schemas };
-export * from "./api/apiUtils.js";
+export * from "./api/apiUtils";
// Billing common schemas
-export * from "./api/billing/common/attachPreviewResponse.js";
-export * from "./api/billing/common/billingBehavior.js";
-export * from "./api/billing/common/billingPreviewResponse.js";
-export * from "./api/billing/common/billingResponse.js";
-export * from "./api/billing/common/cancelAction.js";
+export * from "./api/billing/common/attachPreviewResponse";
+export * from "./api/billing/common/billingBehavior";
+export * from "./api/billing/common/billingPreviewResponse";
+export * from "./api/billing/common/billingResponse";
+export * from "./api/billing/common/cancelAction";
// Cursor pagination utilities
-export * from "./api/common/cursorPaginationSchemas.js";
-export * from "./api/customers/components/customerExpand/customerExpand.js";
+export * from "./api/common/cursorPaginationSchemas";
+export * from "./api/customers/components/customerExpand/customerExpand";
// API MODELS
-export * from "./api/models.js";
+export * from "./api/models";
// API VERSIONING SYSTEM
-export * from "./api/versionUtils/versionUtils.js";
+export * from "./api/versionUtils/versionUtils";
// Auth Models
-export * from "./db/auth-schema.js";
-export * from "./enums/APIVersion.js";
-export * from "./enums/AttachErrCode.js";
-export * from "./enums/ErrCode.js";
-export * from "./enums/LoggerAction.js";
+export * from "./db/auth-schema";
+export * from "./enums/APIVersion";
+export * from "./enums/AttachErrCode";
+export * from "./enums/ErrCode";
+export * from "./enums/LoggerAction";
// ENUMS
-export * from "./enums/SuccessCode.js";
-export * from "./enums/WebhookEventType.js";
+export * from "./enums/SuccessCode";
+export * from "./enums/WebhookEventType";
// Internal API (checkout app, dashboard)
-export * from "./internal/index.js";
+export * from "./internal/index";
// ANALYTICS MODELS
-export * from "./models/analyticsModels/actionEnums.js";
-export * from "./models/analyticsModels/actionTable.js";
+export * from "./models/analyticsModels/actionEnums";
+export * from "./models/analyticsModels/actionTable";
// Attach Models
-export * from "./models/attachModels/attachEnums/AttachBranch.js";
-export * from "./models/attachModels/attachEnums/AttachConfig.js";
-export * from "./models/attachModels/attachEnums/AttachFunction.js";
-export * from "./models/attachModels/attachPreviewModels.js";
-export * from "./models/authModels/membership.js";
-export * from "./models/chatResultModels/chatResultFeature.js";
-export * from "./models/chatResultModels/chatResultFeature.js";
+export * from "./models/attachModels/attachEnums/AttachBranch";
+export * from "./models/attachModels/attachEnums/AttachConfig";
+export * from "./models/attachModels/attachEnums/AttachFunction";
+export * from "./models/attachModels/attachPreviewModels";
+export * from "./models/authModels/membership";
+export * from "./models/chatResultModels/chatResultFeature";
+export * from "./models/chatResultModels/chatResultFeature";
// 4. Chat Result Models
-export * from "./models/chatResultModels/chatResultTable.js";
-export * from "./models/checkModels/checkPreviewModels.js";
+export * from "./models/chatResultModels/chatResultTable";
+export * from "./models/checkModels/checkPreviewModels";
// 8. Customer Models
-export * from "./models/cusModels/cusModels.js";
+export * from "./models/cusModels/cusModels";
// Processor Models
-export * from "./models/processorModels/processorModels.js";
+export * from "./models/processorModels/processorModels";
// Cus response
-export * from "./models/cusModels/cusTable.js";
-export * from "./models/cusModels/entityModels/entityExpand.js";
-export * from "./models/cusModels/entityModels/entityModels.js";
-export * from "./models/cusModels/entityModels/entityTable.js";
-export * from "./models/cusModels/fullCusModel.js";
-export * from "./models/cusModels/invoiceModels/invoiceModels.js";
-export * from "./models/cusModels/invoiceModels/invoiceTable.js";
-export * from "./models/cusProductModels/cusEntModels/cusEntModels.js";
-export * from "./models/cusProductModels/cusEntModels/cusEntTable.js";
-export * from "./models/cusProductModels/cusEntModels/cusEntWithProduct.js";
-export * from "./models/cusProductModels/cusEntModels/replaceableSchema.js";
-export * from "./models/cusProductModels/cusEntModels/replaceableTable.js";
-export * from "./models/cusProductModels/cusEntModels/resetCusEnt.js";
-export * from "./models/cusProductModels/cusEntModels/rolloverModels/rolloverTable.js";
-export * from "./models/cusProductModels/cusPriceModels/cusPriceModels.js";
-export * from "./models/cusProductModels/cusPriceModels/cusPriceTable.js";
-export * from "./models/cusProductModels/cusProductEnums.js";
+export * from "./models/cusModels/cusTable";
+export * from "./models/cusModels/entityModels/entityExpand";
+export * from "./models/cusModels/entityModels/entityModels";
+export * from "./models/cusModels/entityModels/entityTable";
+export * from "./models/cusModels/fullCusModel";
+export * from "./models/cusModels/invoiceModels/invoiceModels";
+export * from "./models/cusModels/invoiceModels/invoiceTable";
+export * from "./models/cusProductModels/cusEntModels/cusEntModels";
+export * from "./models/cusProductModels/cusEntModels/cusEntTable";
+export * from "./models/cusProductModels/cusEntModels/cusEntWithProduct";
+export * from "./models/cusProductModels/cusEntModels/replaceableSchema";
+export * from "./models/cusProductModels/cusEntModels/replaceableTable";
+export * from "./models/cusProductModels/cusEntModels/resetCusEnt";
+export * from "./models/cusProductModels/cusEntModels/rolloverModels/rolloverTable";
+export * from "./models/cusProductModels/cusPriceModels/cusPriceModels";
+export * from "./models/cusProductModels/cusPriceModels/cusPriceTable";
+export * from "./models/cusProductModels/cusProductEnums";
// 7. Cus Product Models
-export * from "./models/cusProductModels/cusProductModels.js";
-export * from "./models/cusProductModels/cusProductTable.js";
-export * from "./models/devModels/apiKeyModels.js";
-export * from "./models/devModels/apiKeyTable.js";
+export * from "./models/cusProductModels/cusProductModels";
+export * from "./models/cusProductModels/cusProductTable";
+export * from "./models/devModels/apiKeyModels";
+export * from "./models/devModels/apiKeyTable";
// 5. Others: events, apiKeys
-export * from "./models/eventModels/eventModels.js";
-export * from "./models/eventModels/eventTable.js";
-export * from "./models/eventModels/eventTypes.js";
-export * from "./models/featureModels/featureConfig/creditConfig.js";
-export * from "./models/featureModels/featureConfig/meteredConfig.js";
-export * from "./models/featureModels/featureEnums.js";
-export * from "./models/featureModels/featureModels.js";
+export * from "./models/eventModels/eventModels";
+export * from "./models/eventModels/eventTable";
+export * from "./models/eventModels/eventTypes";
+export * from "./models/featureModels/featureConfig/creditConfig";
+export * from "./models/featureModels/featureConfig/meteredConfig";
+export * from "./models/featureModels/featureEnums";
+export * from "./models/featureModels/featureModels";
-// export * from "./models/featureModels/featureResModels.js";
+// export * from "./models/featureModels/featureResModels";
-export * from "./api/products/items/previousVersions/apiPlanItemV0.js";
+export * from "./api/products/items/previousVersions/apiPlanItemV0";
// Attach Function Response
-export * from "./models/attachModels/attachFunctionResponse.js";
+export * from "./models/attachModels/attachFunctionResponse";
// Billing Models (all from single index)
-export * from "./models/billingModels/index.js";
+export * from "./models/billingModels/index";
// Checkout Models
-export * from "./models/checkouts/index.js";
-export * from "./models/cusProductModels/cusPriceModels/customerPriceWithCustomerProduct.js";
+export * from "./models/checkouts/index";
+export * from "./models/cusProductModels/cusPriceModels/customerPriceWithCustomerProduct";
// 2. Feature Models
-export * from "./models/featureModels/featureTable.js";
+export * from "./models/featureModels/featureTable";
// Gen Models
-export * from "./models/genModels/genEnums.js";
-export * from "./models/genModels/processorSchemas.js";
-export * from "./models/migrationModels/migrationErrorTable.js";
-export * from "./models/migrationModels/migrationJobTable.js";
-export * from "./models/migrationModels/migrationModels.js";
-export * from "./models/orgModels/frontendOrg.js";
+export * from "./models/genModels/genEnums";
+export * from "./models/genModels/processorSchemas";
+export * from "./models/migrationModels/migrationErrorTable";
+export * from "./models/migrationModels/migrationJobTable";
+export * from "./models/migrationModels/migrationModels";
+export * from "./models/orgModels/frontendOrg";
// 1. Org Models
-export * from "./models/orgModels/frontendOrg.js";
-export * from "./models/orgModels/orgConfig.js";
-export * from "./models/orgModels/orgConfig.js";
-export * from "./models/orgModels/orgTable.js";
-export * from "./models/otherModels/metadataTable.js";
+export * from "./models/orgModels/frontendOrg";
+export * from "./models/orgModels/orgConfig";
+export * from "./models/orgModels/orgConfig";
+export * from "./models/orgModels/orgTable";
+export * from "./models/otherModels/metadataTable";
// Duration Types
-export * from "./models/productModels/durationTypes/rolloverExpiryDurationType.js";
-export * from "./models/productModels/entModels/entModels.js";
+export * from "./models/productModels/durationTypes/rolloverExpiryDurationType";
+export * from "./models/productModels/entModels/entModels";
// 3. Entitlement Models
-export * from "./models/productModels/entModels/entTable.js";
+export * from "./models/productModels/entModels/entTable";
// 4. Free Trial Models
-export * from "./models/productModels/freeTrialModels/freeTrialEnums.js";
-export * from "./models/productModels/freeTrialModels/freeTrialModels.js";
-export * from "./models/productModels/freeTrialModels/freeTrialTable.js";
+export * from "./models/productModels/freeTrialModels/freeTrialEnums";
+export * from "./models/productModels/freeTrialModels/freeTrialModels";
+export * from "./models/productModels/freeTrialModels/freeTrialTable";
// Interval Models
-export * from "./models/productModels/intervals/billingInterval.js";
+export * from "./models/productModels/intervals/billingInterval";
// Intervals
-export * from "./models/productModels/intervals/billingInterval.js";
-export * from "./models/productModels/intervals/entitlementInterval.js";
-export * from "./models/productModels/intervals/entitlementInterval.js";
-export * from "./models/productModels/intervals/productItemInterval.js";
-export * from "./models/productModels/intervals/productItemInterval.js";
-export * from "./models/productModels/intervals/resetInterval.js";
-export * from "./models/productModels/intervals/resetInterval.js";
-export * from "./models/productModels/priceModels/priceConfig/fixedPriceConfig.js";
+export * from "./models/productModels/intervals/billingInterval";
+export * from "./models/productModels/intervals/entitlementInterval";
+export * from "./models/productModels/intervals/entitlementInterval";
+export * from "./models/productModels/intervals/productItemInterval";
+export * from "./models/productModels/intervals/productItemInterval";
+export * from "./models/productModels/intervals/resetInterval";
+export * from "./models/productModels/intervals/resetInterval";
+export * from "./models/productModels/priceModels/priceConfig/fixedPriceConfig";
// Price Models
-export * from "./models/productModels/priceModels/priceConfig/fixedPriceConfig.js";
-export * from "./models/productModels/priceModels/priceConfig/usagePriceConfig.js";
-export * from "./models/productModels/priceModels/priceConfig/usagePriceConfig.js";
+export * from "./models/productModels/priceModels/priceConfig/fixedPriceConfig";
+export * from "./models/productModels/priceModels/priceConfig/usagePriceConfig";
+export * from "./models/productModels/priceModels/priceConfig/usagePriceConfig";
// 4. Price Models
-export * from "./models/productModels/priceModels/priceEnums.js";
-export * from "./models/productModels/priceModels/priceEnums.js";
-export * from "./models/productModels/priceModels/priceModels.js";
-export * from "./models/productModels/priceModels/priceModels.js";
-export * from "./models/productModels/priceModels/priceTable.js";
-export * from "./models/productModels/priceModels/priceTable.js";
+export * from "./models/productModels/priceModels/priceEnums";
+export * from "./models/productModels/priceModels/priceEnums";
+export * from "./models/productModels/priceModels/priceModels";
+export * from "./models/productModels/priceModels/priceModels";
+export * from "./models/productModels/priceModels/priceTable";
+export * from "./models/productModels/priceModels/priceTable";
// 5. Product Models
-export * from "./models/productModels/productEnums.js";
-export * from "./models/productModels/productModels.js";
-export * from "./models/productModels/productRelations.js";
-export * from "./models/productModels/productTable.js";
-export * from "./models/productV2Models/productItemModels/featureItem.js";
-export * from "./models/productV2Models/productItemModels/featurePriceItem.js";
-export * from "./models/productV2Models/productItemModels/priceItem.js";
-export * from "./models/productV2Models/productItemModels/productItemEnums.js";
-export * from "./models/productV2Models/productItemModels/productItemModels.js";
+export * from "./models/productModels/productEnums";
+export * from "./models/productModels/productModels";
+export * from "./models/productModels/productRelations";
+export * from "./models/productModels/productTable";
+export * from "./models/productV2Models/productItemModels/featureItem";
+export * from "./models/productV2Models/productItemModels/featurePriceItem";
+export * from "./models/productV2Models/productItemModels/priceItem";
+export * from "./models/productV2Models/productItemModels/productItemEnums";
+export * from "./models/productV2Models/productItemModels/productItemModels";
// 6. Product V2 Models
-export * from "./models/productV2Models/productV2Models.js";
+export * from "./models/productV2Models/productV2Models";
// 7. Product V3 Models
-export * from "./models/productV3Models/productV3Response.js";
-export * from "./models/rewardModels/referralModels/referralCodeTable.js";
-export * from "./models/rewardModels/referralModels/referralModels.js";
-export * from "./models/rewardModels/referralModels/rewardRedemptionTable.js";
-export * from "./models/rewardModels/rewardModels/rewardEnums.js";
+export * from "./models/productV3Models/productV3Response";
+export * from "./models/rewardModels/referralModels/referralCodeTable";
+export * from "./models/rewardModels/referralModels/referralModels";
+export * from "./models/rewardModels/referralModels/rewardRedemptionTable";
+export * from "./models/rewardModels/rewardModels/rewardEnums";
// Reward Models
-export * from "./models/rewardModels/rewardModels/rewardModels.js";
-export * from "./models/rewardModels/rewardModels/rewardResponseModels.js";
-export * from "./models/rewardModels/rewardModels/rewardTable.js";
-export * from "./models/rewardModels/rewardProgramModels/rewardProgramEnums.js";
-export * from "./models/rewardModels/rewardProgramModels/rewardProgramModels.js";
-export * from "./models/rewardModels/rewardProgramModels/rewardProgramTable.js";
-export * from "./models/subModels/subModels.js";
-export * from "./models/subModels/subTable.js";
+export * from "./models/rewardModels/rewardModels/rewardModels";
+export * from "./models/rewardModels/rewardModels/rewardResponseModels";
+export * from "./models/rewardModels/rewardModels/rewardTable";
+export * from "./models/rewardModels/rewardProgramModels/rewardProgramEnums";
+export * from "./models/rewardModels/rewardProgramModels/rewardProgramModels";
+export * from "./models/rewardModels/rewardProgramModels/rewardProgramTable";
+export * from "./models/subModels/subModels";
+export * from "./models/subModels/subTable";
export * from "./types";
// Agent Types (for pricing agent AI)
-export * from "./utils/agentTypes.js";
-export * from "./utils/billingUtils/index.js";
+export * from "./utils/agentTypes";
+export * from "./utils/billingUtils/index";
// Checkout Utils
-export * from "./utils/checkoutUtils/index.js";
-export * from "./utils/common/formatUtils/formatAmount.js";
-export * from "./utils/common/index.js";
-export * from "./utils/cusEntUtils/balanceUtils/cusEntsToUsage.js";
-export * from "./utils/cusEntUtils/balanceUtils/cusEntToMinBalance.js";
-export * from "./utils/cusEntUtils/balanceUtils/cusEntToUsageAllowed.js";
+export * from "./utils/checkoutUtils/index";
+export * from "./utils/common/formatUtils/formatAmount";
+export * from "./utils/common/index";
+export * from "./utils/cusEntUtils/balanceUtils/cusEntsToUsage";
+export * from "./utils/cusEntUtils/balanceUtils/cusEntToMinBalance";
+export * from "./utils/cusEntUtils/balanceUtils/cusEntToUsageAllowed";
export * from "./utils/cusEntUtils/index";
// Utils
-export * from "./utils/displayUtils.js";
-export * from "./utils/index.js";
-export * from "./utils/intervalUtils.js";
-export * from "./utils/planFeatureUtils/planToDbFreeTrial.js";
-export * from "./utils/productDisplayUtils/sortProductItems.js";
-export * from "./utils/productDisplayUtils.js";
-export * from "./utils/productUtils/convertProductUtils.js";
-export * from "./utils/productUtils/priceToInvoiceAmount.js";
-export * from "./utils/productUtils/productUtils.js";
-export * from "./utils/productV2Utils/compareProductUtils/buildEditsForItem.js";
-export * from "./utils/productV2Utils/compareProductUtils/compareItemUtils.js";
-export * from "./utils/productV2Utils/compareProductUtils/compareProductUtils.js";
-export * from "./utils/productV2Utils/compareProductUtils/generateItemChanges.js";
-export * from "./utils/productV2Utils/compareProductUtils/generatePrepaidChanges.js";
-export * from "./utils/productV2Utils/compareProductUtils/generateTrialChanges.js";
-export * from "./utils/productV2Utils/compareProductUtils/generateVersionChanges.js";
-export * from "./utils/productV2Utils/compareProductUtils/itemEditTypes.js";
-export * from "./utils/productV2Utils/productItemUtils/convertItemUtils.js";
-export * from "./utils/productV2Utils/productItemUtils/convertProductItem/planItemIntervals.js";
-export * from "./utils/productV2Utils/productItemUtils/convertProductItem/productItemToPlanItemV1.js";
-export * from "./utils/productV2Utils/productItemUtils/getProductItemRes.js";
-export * from "./utils/productV2Utils/productItemUtils/itemIntervalUtils.js";
-export * from "./utils/productV3Utils/productItemUtils/productV3ItemUtils.js";
-export * from "./utils/rewardUtils/rewardFilterUtils.js";
+export * from "./utils/displayUtils";
+export * from "./utils/index";
+export * from "./utils/intervalUtils";
+export * from "./utils/planFeatureUtils/planToDbFreeTrial";
+export * from "./utils/productDisplayUtils/sortProductItems";
+export * from "./utils/productDisplayUtils";
+export * from "./utils/productUtils/convertProductUtils";
+export * from "./utils/productUtils/priceToInvoiceAmount";
+export * from "./utils/productUtils/productUtils";
+export * from "./utils/productV2Utils/compareProductUtils/buildEditsForItem";
+export * from "./utils/productV2Utils/compareProductUtils/compareItemUtils";
+export * from "./utils/productV2Utils/compareProductUtils/compareProductUtils";
+export * from "./utils/productV2Utils/compareProductUtils/generateItemChanges";
+export * from "./utils/productV2Utils/compareProductUtils/generatePrepaidChanges";
+export * from "./utils/productV2Utils/compareProductUtils/generateTrialChanges";
+export * from "./utils/productV2Utils/compareProductUtils/generateVersionChanges";
+export * from "./utils/productV2Utils/compareProductUtils/itemEditTypes";
+export * from "./utils/productV2Utils/productItemUtils/convertItemUtils";
+export * from "./utils/productV2Utils/productItemUtils/convertProductItem/planItemIntervals";
+export * from "./utils/productV2Utils/productItemUtils/convertProductItem/productItemToPlanItemV1";
+export * from "./utils/productV2Utils/productItemUtils/getProductItemRes";
+export * from "./utils/productV2Utils/productItemUtils/itemIntervalUtils";
+export * from "./utils/productV3Utils/productItemUtils/productV3ItemUtils";
+export * from "./utils/rewardUtils/rewardFilterUtils";
export * from "./utils/rewardUtils/rewardMigrationUtils";
-export * from "./utils/scopeDefinitions.js";
+export * from "./utils/scopeDefinitions";
diff --git a/shared/internal/checkout/checkoutResponses.ts b/shared/internal/checkout/checkoutResponses.ts
index 10df316e0..d961eacc9 100644
--- a/shared/internal/checkout/checkoutResponses.ts
+++ b/shared/internal/checkout/checkoutResponses.ts
@@ -1,8 +1,8 @@
-import { ApiBalanceV1Schema } from "@api/customers/cusFeatures/apiBalanceV1.js";
-import { ApiPlanV1Schema } from "@api/products/apiPlanV1.js";
-import { FeatureOptionsSchema } from "@models/cusProductModels/cusProductModels.js";
+import { ApiBalanceV1Schema } from "@api/customers/cusFeatures/apiBalanceV1";
+import { ApiPlanV1Schema } from "@api/products/apiPlanV1";
+import { FeatureOptionsSchema } from "@models/cusProductModels/cusProductModels";
import { z } from "zod/v4";
-import { BillingPreviewResponseSchema } from "../../api/billing/common/billingPreviewResponse.js";
+import { BillingPreviewResponseSchema } from "../../api/billing/common/billingPreviewResponse";
/**
* Org branding for checkout display
diff --git a/shared/internal/checkout/index.ts b/shared/internal/checkout/index.ts
index ed35f00e7..1cfdb24ec 100644
--- a/shared/internal/checkout/index.ts
+++ b/shared/internal/checkout/index.ts
@@ -1 +1 @@
-export * from "./checkoutResponses.js";
+export * from "./checkoutResponses";
diff --git a/shared/internal/contracts/checkout.ts b/shared/internal/contracts/checkout.ts
index 6373c1593..5305abb3f 100644
--- a/shared/internal/contracts/checkout.ts
+++ b/shared/internal/contracts/checkout.ts
@@ -1,10 +1,10 @@
-import { FeatureOptionsSchema } from "@models/cusProductModels/cusProductModels.js";
+import { FeatureOptionsSchema } from "@models/cusProductModels/cusProductModels";
import { oc } from "@orpc/contract";
import { z } from "zod/v4";
import {
ConfirmCheckoutResponseSchema,
GetCheckoutResponseSchema,
-} from "../checkout/checkoutResponses.js";
+} from "../checkout/checkoutResponses";
export const getCheckoutContract = oc
.route({
diff --git a/shared/internal/contracts/index.ts b/shared/internal/contracts/index.ts
index 6a5e463e0..9b85de09c 100644
--- a/shared/internal/contracts/index.ts
+++ b/shared/internal/contracts/index.ts
@@ -1 +1 @@
-export * from "./checkout.js";
+export * from "./checkout";
diff --git a/shared/internal/index.ts b/shared/internal/index.ts
index 9d9228327..6aa87fdcd 100644
--- a/shared/internal/index.ts
+++ b/shared/internal/index.ts
@@ -1,2 +1,2 @@
-export * from "./checkout/index.js";
-export * from "./contracts/index.js";
+export * from "./checkout/index";
+export * from "./contracts/index";
diff --git a/shared/models/checkouts/checkoutRelations.ts b/shared/models/checkouts/checkoutRelations.ts
index 42df1a5ca..beb912b2c 100644
--- a/shared/models/checkouts/checkoutRelations.ts
+++ b/shared/models/checkouts/checkoutRelations.ts
@@ -1,7 +1,7 @@
import { relations } from "drizzle-orm";
-import { customers } from "../cusModels/cusTable.js";
-import { organizations } from "../orgModels/orgTable.js";
-import { checkouts } from "./checkoutTable.js";
+import { customers } from "../cusModels/cusTable";
+import { organizations } from "../orgModels/orgTable";
+import { checkouts } from "./checkoutTable";
export const checkoutsRelations = relations(checkouts, ({ one }) => ({
org: one(organizations, {
diff --git a/shared/models/checkouts/checkoutTable.ts b/shared/models/checkouts/checkoutTable.ts
index 1a51d4b29..8917818af 100644
--- a/shared/models/checkouts/checkoutTable.ts
+++ b/shared/models/checkouts/checkoutTable.ts
@@ -1,5 +1,5 @@
-import type { AttachParamsV1 } from "@api/billing/attachV2/attachParamsV1.js";
-import type { UpdateSubscriptionV1Params } from "@api/billing/updateSubscription/updateSubscriptionV1Params.js";
+import type { AttachParamsV1 } from "@api/billing/attachV2/attachParamsV1";
+import type { UpdateSubscriptionV1Params } from "@api/billing/updateSubscription/updateSubscriptionV1Params";
import type { InferInsertModel, InferSelectModel } from "drizzle-orm";
import { integer, jsonb, numeric, pgTable, text } from "drizzle-orm/pg-core";
import { sqlNow } from "../../db/utils";
diff --git a/shared/models/checkouts/index.ts b/shared/models/checkouts/index.ts
index 65aa333a7..2433a1f07 100644
--- a/shared/models/checkouts/index.ts
+++ b/shared/models/checkouts/index.ts
@@ -1 +1 @@
-export * from "./checkoutTable.js";
+export * from "./checkoutTable";
diff --git a/shared/models/featureModels/featureConfig/creditConfig.ts b/shared/models/featureModels/featureConfig/creditConfig.ts
index 5cb7fded9..c75cc8265 100644
--- a/shared/models/featureModels/featureConfig/creditConfig.ts
+++ b/shared/models/featureModels/featureConfig/creditConfig.ts
@@ -1,5 +1,5 @@
import { z } from "zod/v4";
-import { FeatureUsageType } from "../featureEnums.js";
+import { FeatureUsageType } from "../featureEnums";
export const CreditSchemaItemSchema = z.object({
metered_feature_id: z.string(),
diff --git a/shared/models/featureModels/featureConfig/meteredConfig.ts b/shared/models/featureModels/featureConfig/meteredConfig.ts
index 1e8af5a15..a1ba2f527 100644
--- a/shared/models/featureModels/featureConfig/meteredConfig.ts
+++ b/shared/models/featureModels/featureConfig/meteredConfig.ts
@@ -1,5 +1,5 @@
import { z } from "zod/v4";
-import { FeatureUsageType } from "../featureEnums.js";
+import { FeatureUsageType } from "../featureEnums";
export interface Expression {
property: string;
diff --git a/shared/models/featureModels/featureModels.ts b/shared/models/featureModels/featureModels.ts
index fb89cba7d..87fd02e7b 100644
--- a/shared/models/featureModels/featureModels.ts
+++ b/shared/models/featureModels/featureModels.ts
@@ -1,6 +1,6 @@
import { z } from "zod/v4";
-import { AppEnv } from "../genModels/genEnums.js";
-import { FeatureType } from "./featureEnums.js";
+import { AppEnv } from "../genModels/genEnums";
+import { FeatureType } from "./featureEnums";
export const FeatureSchema = z.object({
internal_id: z.string(),
diff --git a/shared/models/featureModels/featureRelations.ts b/shared/models/featureModels/featureRelations.ts
index 16f741530..ed059f7e5 100644
--- a/shared/models/featureModels/featureRelations.ts
+++ b/shared/models/featureModels/featureRelations.ts
@@ -1,6 +1,6 @@
import { relations } from "drizzle-orm";
-import { organizations } from "../orgModels/orgTable.js";
-import { features } from "./featureTable.js";
+import { organizations } from "../orgModels/orgTable";
+import { features } from "./featureTable";
export const featureRelations = relations(features, ({ one }) => ({
org: one(organizations, {
diff --git a/shared/models/featureModels/featureTable.ts b/shared/models/featureModels/featureTable.ts
index d9f019a9c..fe9b07871 100644
--- a/shared/models/featureModels/featureTable.ts
+++ b/shared/models/featureModels/featureTable.ts
@@ -8,10 +8,10 @@ import {
text,
unique,
} from "drizzle-orm/pg-core";
-import { collatePgColumn } from "../../db/utils.js";
-import { organizations } from "../orgModels/orgTable.js";
-import type { CreditSystemConfig } from "./featureConfig/creditConfig.js";
-import type { MeteredConfig } from "./featureConfig/meteredConfig.js";
+import { collatePgColumn } from "../../db/utils";
+import { organizations } from "../orgModels/orgTable";
+import type { CreditSystemConfig } from "./featureConfig/creditConfig";
+import type { MeteredConfig } from "./featureConfig/meteredConfig";
type FeatureDisplay = {
singular: string;
diff --git a/shared/models/orgModels/frontendOrg.ts b/shared/models/orgModels/frontendOrg.ts
index 9b002077e..686966e37 100644
--- a/shared/models/orgModels/frontendOrg.ts
+++ b/shared/models/orgModels/frontendOrg.ts
@@ -1,4 +1,4 @@
-import { VercelMarketplaceMode } from "@models/genModels/processorSchemas.js";
+import { VercelMarketplaceMode } from "@models/genModels/processorSchemas";
import { z } from "zod/v4";
export const FrontendOrgSchema = z.object({
diff --git a/shared/models/productModels/entModels/entModels.ts b/shared/models/productModels/entModels/entModels.ts
index c9e297fab..b2b5f5b66 100644
--- a/shared/models/productModels/entModels/entModels.ts
+++ b/shared/models/productModels/entModels/entModels.ts
@@ -1,7 +1,7 @@
import { z } from "zod/v4";
-import { FeatureSchema } from "../../featureModels/featureModels.js";
-import { RolloverConfigSchema } from "../../productV2Models/productItemModels/productItemModels.js";
-import { EntInterval } from "../intervals/entitlementInterval.js";
+import { FeatureSchema } from "../../featureModels/featureModels";
+import { RolloverConfigSchema } from "../../productV2Models/productItemModels/productItemModels";
+import { EntInterval } from "../intervals/entitlementInterval";
export enum AllowanceType {
Fixed = "fixed",
diff --git a/shared/models/productModels/entModels/entRelations.ts b/shared/models/productModels/entModels/entRelations.ts
index 87387887a..d7e51b31c 100644
--- a/shared/models/productModels/entModels/entRelations.ts
+++ b/shared/models/productModels/entModels/entRelations.ts
@@ -1,8 +1,8 @@
import { relations } from "drizzle-orm";
-import { features } from "../../featureModels/featureTable.js";
-import { products } from "../productTable.js";
-import { entitlements } from "./entTable.js";
+import { features } from "../../featureModels/featureTable";
+import { products } from "../productTable";
+import { entitlements } from "./entTable";
export const entitlementsRelations = relations(entitlements, ({ one }) => ({
feature: one(features, {
diff --git a/shared/models/productModels/entModels/entTable.ts b/shared/models/productModels/entModels/entTable.ts
index 8cbf46ad8..9e28f840d 100644
--- a/shared/models/productModels/entModels/entTable.ts
+++ b/shared/models/productModels/entModels/entTable.ts
@@ -9,9 +9,9 @@ import {
text,
unique,
} from "drizzle-orm/pg-core";
-import type { RolloverConfig } from "../../../index.js";
-import { features } from "../../featureModels/featureTable.js";
-import { products } from "../productTable.js";
+import type { RolloverConfig } from "../../../index";
+import { features } from "../../featureModels/featureTable";
+import { products } from "../productTable";
export const entitlements = pgTable(
"entitlements",
diff --git a/shared/models/productModels/freeTrialModels/freeTrialModels.ts b/shared/models/productModels/freeTrialModels/freeTrialModels.ts
index ec50431a9..5eaad585b 100644
--- a/shared/models/productModels/freeTrialModels/freeTrialModels.ts
+++ b/shared/models/productModels/freeTrialModels/freeTrialModels.ts
@@ -1,5 +1,5 @@
import { z } from "zod/v4";
-import { FreeTrialDuration } from "./freeTrialEnums.js";
+import { FreeTrialDuration } from "./freeTrialEnums";
export const FreeTrialSchema = z.object({
id: z.string(),
diff --git a/shared/models/productModels/freeTrialModels/freeTrialRelations.ts b/shared/models/productModels/freeTrialModels/freeTrialRelations.ts
index 542a3841a..a22340855 100644
--- a/shared/models/productModels/freeTrialModels/freeTrialRelations.ts
+++ b/shared/models/productModels/freeTrialModels/freeTrialRelations.ts
@@ -1,6 +1,6 @@
import { relations } from "drizzle-orm";
-import { products } from "../productTable.js";
-import { freeTrials } from "./freeTrialTable.js";
+import { products } from "../productTable";
+import { freeTrials } from "./freeTrialTable";
export const freeTrialRelations = relations(freeTrials, ({ one }) => ({
product: one(products, {
diff --git a/shared/models/productModels/freeTrialModels/freeTrialTable.ts b/shared/models/productModels/freeTrialModels/freeTrialTable.ts
index 2fbb5eab0..d110b81e2 100644
--- a/shared/models/productModels/freeTrialModels/freeTrialTable.ts
+++ b/shared/models/productModels/freeTrialModels/freeTrialTable.ts
@@ -5,7 +5,7 @@ import {
pgTable,
text,
} from "drizzle-orm/pg-core";
-import { products } from "../productTable.js";
+import { products } from "../productTable";
export const freeTrials = pgTable(
"free_trials",
diff --git a/shared/models/productModels/priceModels/priceConfig/fixedPriceConfig.ts b/shared/models/productModels/priceModels/priceConfig/fixedPriceConfig.ts
index 5c8d0cafb..8a8e8236e 100644
--- a/shared/models/productModels/priceModels/priceConfig/fixedPriceConfig.ts
+++ b/shared/models/productModels/priceModels/priceConfig/fixedPriceConfig.ts
@@ -1,6 +1,6 @@
import { z } from "zod/v4";
-import { BillingInterval } from "../../intervals/billingInterval.js";
-import { UsageTierSchema } from "./usagePriceConfig.js";
+import { BillingInterval } from "../../intervals/billingInterval";
+import { UsageTierSchema } from "./usagePriceConfig";
export const FixedPriceConfigSchema = z.object({
type: z.string(),
diff --git a/shared/models/productModels/priceModels/priceConfig/usagePriceConfig.ts b/shared/models/productModels/priceModels/priceConfig/usagePriceConfig.ts
index 7d29d07b7..0fa510b25 100644
--- a/shared/models/productModels/priceModels/priceConfig/usagePriceConfig.ts
+++ b/shared/models/productModels/priceModels/priceConfig/usagePriceConfig.ts
@@ -1,6 +1,6 @@
import { z } from "zod/v4";
-import { BillingInterval } from "../../intervals/billingInterval.js";
-import { Infinite } from "../../productEnums.js";
+import { BillingInterval } from "../../intervals/billingInterval";
+import { Infinite } from "../../productEnums";
export enum BillWhen {
InAdvance = "in_advance",
diff --git a/shared/models/productModels/priceModels/priceModels.ts b/shared/models/productModels/priceModels/priceModels.ts
index ba56353ef..5be0067a6 100644
--- a/shared/models/productModels/priceModels/priceModels.ts
+++ b/shared/models/productModels/priceModels/priceModels.ts
@@ -2,10 +2,10 @@ import { z } from "zod/v4";
import {
OnDecrease,
OnIncrease,
-} from "../../productV2Models/productItemModels/productItemEnums.js";
-import { FixedPriceConfigSchema } from "./priceConfig/fixedPriceConfig.js";
-import { UsagePriceConfigSchema } from "./priceConfig/usagePriceConfig.js";
-import { BillingType } from "./priceEnums.js";
+} from "../../productV2Models/productItemModels/productItemEnums";
+import { FixedPriceConfigSchema } from "./priceConfig/fixedPriceConfig";
+import { UsagePriceConfigSchema } from "./priceConfig/usagePriceConfig";
+import { BillingType } from "./priceEnums";
const ProrationConfigSchema = z.object({
on_increase: z.nativeEnum(OnIncrease).default(OnIncrease.ProrateImmediately),
diff --git a/shared/models/productModels/priceModels/priceRelations.ts b/shared/models/productModels/priceModels/priceRelations.ts
index 6e99db9d8..8f8ed3f43 100644
--- a/shared/models/productModels/priceModels/priceRelations.ts
+++ b/shared/models/productModels/priceModels/priceRelations.ts
@@ -1,6 +1,6 @@
import { relations } from "drizzle-orm";
-import { products } from "../productTable.js";
-import { prices } from "./priceTable.js";
+import { products } from "../productTable";
+import { prices } from "./priceTable";
export const priceRelations = relations(prices, ({ one }) => ({
product: one(products, {
diff --git a/shared/models/productModels/priceModels/priceTable.ts b/shared/models/productModels/priceModels/priceTable.ts
index 84547cf04..9a829bfe7 100644
--- a/shared/models/productModels/priceModels/priceTable.ts
+++ b/shared/models/productModels/priceModels/priceTable.ts
@@ -9,12 +9,12 @@ import {
text,
unique,
} from "drizzle-orm/pg-core";
-import { collatePgColumn } from "../../../db/utils.js";
-import { entitlements } from "../entModels/entTable.js";
-import { products } from "../productTable.js";
-import type { FixedPriceConfig } from "./priceConfig/fixedPriceConfig.js";
-import type { UsagePriceConfig } from "./priceConfig/usagePriceConfig.js";
-import type { ProrationConfig } from "./priceModels.js";
+import { collatePgColumn } from "../../../db/utils";
+import { entitlements } from "../entModels/entTable";
+import { products } from "../productTable";
+import type { FixedPriceConfig } from "./priceConfig/fixedPriceConfig";
+import type { UsagePriceConfig } from "./priceConfig/usagePriceConfig";
+import type { ProrationConfig } from "./priceModels";
export const prices = pgTable(
"prices",
diff --git a/shared/models/productModels/productModels.ts b/shared/models/productModels/productModels.ts
index d4259c50e..62bb47451 100644
--- a/shared/models/productModels/productModels.ts
+++ b/shared/models/productModels/productModels.ts
@@ -1,9 +1,9 @@
import { z } from "zod/v4";
-import { FeatureSchema } from "../featureModels/featureModels.js";
-import { AppEnv } from "../genModels/genEnums.js";
-import { EntitlementSchema } from "./entModels/entModels.js";
-import { FreeTrialSchema } from "./freeTrialModels/freeTrialModels.js";
-import { PriceSchema } from "./priceModels/priceModels.js";
+import { FeatureSchema } from "../featureModels/featureModels";
+import { AppEnv } from "../genModels/genEnums";
+import { EntitlementSchema } from "./entModels/entModels";
+import { FreeTrialSchema } from "./freeTrialModels/freeTrialModels";
+import { PriceSchema } from "./priceModels/priceModels";
export const ProductSchema = z.object({
id: z.string(),
diff --git a/shared/models/productModels/productRelations.ts b/shared/models/productModels/productRelations.ts
index ee9891911..5af460287 100644
--- a/shared/models/productModels/productRelations.ts
+++ b/shared/models/productModels/productRelations.ts
@@ -1,9 +1,9 @@
import { relations } from "drizzle-orm";
-import { organizations } from "../orgModels/orgTable.js";
-import { entitlements } from "./entModels/entTable.js";
-import { freeTrials } from "./freeTrialModels/freeTrialTable.js";
-import { prices } from "./priceModels/priceTable.js";
-import { products } from "./productTable.js";
+import { organizations } from "../orgModels/orgTable";
+import { entitlements } from "./entModels/entTable";
+import { freeTrials } from "./freeTrialModels/freeTrialTable";
+import { prices } from "./priceModels/priceTable";
+import { products } from "./productTable";
export const productRelations = relations(products, ({ many, one }) => ({
entitlements: many(entitlements),
diff --git a/shared/models/productModels/productTable.ts b/shared/models/productModels/productTable.ts
index cb0053037..cc6348a4a 100644
--- a/shared/models/productModels/productTable.ts
+++ b/shared/models/productModels/productTable.ts
@@ -8,8 +8,8 @@ import {
text,
unique,
} from "drizzle-orm/pg-core";
-import { collatePgColumn, sqlNow } from "../../db/utils.js";
-import { organizations } from "../orgModels/orgTable.js";
+import { collatePgColumn, sqlNow } from "../../db/utils";
+import { organizations } from "../orgModels/orgTable";
type ProductProcessor = {
type: string;
diff --git a/shared/models/rewardModels/referralModels/referralCodeRelations.ts b/shared/models/rewardModels/referralModels/referralCodeRelations.ts
index 5b0fc9874..c836612fa 100644
--- a/shared/models/rewardModels/referralModels/referralCodeRelations.ts
+++ b/shared/models/rewardModels/referralModels/referralCodeRelations.ts
@@ -1,8 +1,8 @@
import { relations } from "drizzle-orm";
-import { customers } from "../../cusModels/cusTable.js";
-import { rewardPrograms } from "../rewardProgramModels/rewardProgramTable.js";
-import { referralCodes } from "./referralCodeTable.js";
-import { rewardRedemptions } from "./rewardRedemptionTable.js";
+import { customers } from "../../cusModels/cusTable";
+import { rewardPrograms } from "../rewardProgramModels/rewardProgramTable";
+import { referralCodes } from "./referralCodeTable";
+import { rewardRedemptions } from "./rewardRedemptionTable";
export const referralCodeRelations = relations(
referralCodes,
diff --git a/shared/models/rewardModels/referralModels/referralCodeTable.ts b/shared/models/rewardModels/referralModels/referralCodeTable.ts
index 1af0d6d31..07726d05b 100644
--- a/shared/models/rewardModels/referralModels/referralCodeTable.ts
+++ b/shared/models/rewardModels/referralModels/referralCodeTable.ts
@@ -6,9 +6,9 @@ import {
text,
unique,
} from "drizzle-orm/pg-core";
-import { customers } from "../../cusModels/cusTable.js";
-import { organizations } from "../../orgModels/orgTable.js";
-import { rewardPrograms } from "../rewardProgramModels/rewardProgramTable.js";
+import { customers } from "../../cusModels/cusTable";
+import { organizations } from "../../orgModels/orgTable";
+import { rewardPrograms } from "../rewardProgramModels/rewardProgramTable";
export const referralCodes = pgTable(
"referral_codes",
diff --git a/shared/models/rewardModels/referralModels/rewardRedemptionRelations.ts b/shared/models/rewardModels/referralModels/rewardRedemptionRelations.ts
index 48e99d2b4..249eb50e3 100644
--- a/shared/models/rewardModels/referralModels/rewardRedemptionRelations.ts
+++ b/shared/models/rewardModels/referralModels/rewardRedemptionRelations.ts
@@ -1,8 +1,8 @@
import { relations } from "drizzle-orm";
-import { customers } from "../../cusModels/cusTable.js";
-import { rewardPrograms } from "../rewardProgramModels/rewardProgramTable.js";
-import { referralCodes } from "./referralCodeTable.js";
-import { rewardRedemptions } from "./rewardRedemptionTable.js";
+import { customers } from "../../cusModels/cusTable";
+import { rewardPrograms } from "../rewardProgramModels/rewardProgramTable";
+import { referralCodes } from "./referralCodeTable";
+import { rewardRedemptions } from "./rewardRedemptionTable";
export const rewardRedemptionRelations = relations(
rewardRedemptions,
diff --git a/shared/models/rewardModels/referralModels/rewardRedemptionTable.ts b/shared/models/rewardModels/referralModels/rewardRedemptionTable.ts
index f5a8917b8..734bca622 100644
--- a/shared/models/rewardModels/referralModels/rewardRedemptionTable.ts
+++ b/shared/models/rewardModels/referralModels/rewardRedemptionTable.ts
@@ -5,9 +5,9 @@ import {
pgTable,
text,
} from "drizzle-orm/pg-core";
-import { customers } from "../../cusModels/cusTable.js";
-import { rewardPrograms } from "../rewardProgramModels/rewardProgramTable.js";
-import { referralCodes } from "./referralCodeTable.js";
+import { customers } from "../../cusModels/cusTable";
+import { rewardPrograms } from "../rewardProgramModels/rewardProgramTable";
+import { referralCodes } from "./referralCodeTable";
export const rewardRedemptions = pgTable(
"reward_redemptions",
diff --git a/shared/models/rewardModels/rewardModels/rewardModels.ts b/shared/models/rewardModels/rewardModels/rewardModels.ts
index 2c1c84127..468e69b55 100644
--- a/shared/models/rewardModels/rewardModels/rewardModels.ts
+++ b/shared/models/rewardModels/rewardModels/rewardModels.ts
@@ -1,5 +1,5 @@
import { z } from "zod/v4";
-import { CouponDurationType, RewardType } from "./rewardEnums.js";
+import { CouponDurationType, RewardType } from "./rewardEnums";
const PromoCodeSchema = z.object({
code: z.string(),
diff --git a/shared/models/rewardModels/rewardModels/rewardResponseModels.ts b/shared/models/rewardModels/rewardModels/rewardResponseModels.ts
index e09cdea6d..dfd8aff84 100644
--- a/shared/models/rewardModels/rewardModels/rewardResponseModels.ts
+++ b/shared/models/rewardModels/rewardModels/rewardResponseModels.ts
@@ -1,5 +1,5 @@
import { z } from "zod/v4";
-import { CouponDurationType, RewardType } from "./rewardEnums.js";
+import { CouponDurationType, RewardType } from "./rewardEnums";
export const DiscountResponseSchema = z.object({
id: z.string(), // either from Autumn or Stripe
diff --git a/shared/models/rewardModels/rewardModels/rewardTable.ts b/shared/models/rewardModels/rewardModels/rewardTable.ts
index d9e3e6d79..2d6fea717 100644
--- a/shared/models/rewardModels/rewardModels/rewardTable.ts
+++ b/shared/models/rewardModels/rewardModels/rewardTable.ts
@@ -1,11 +1,11 @@
import type { InferInsertModel, InferSelectModel } from "drizzle-orm";
import { foreignKey, jsonb, numeric, pgTable, text } from "drizzle-orm/pg-core";
-import { organizations } from "../../orgModels/orgTable.js";
+import { organizations } from "../../orgModels/orgTable";
import type {
DiscountConfig,
FreeProductConfig,
PromoCode,
-} from "./rewardModels.js";
+} from "./rewardModels";
export const rewards = pgTable(
"rewards",
diff --git a/shared/models/rewardModels/rewardProgramModels/rewardProgramModels.ts b/shared/models/rewardModels/rewardProgramModels/rewardProgramModels.ts
index 5a20b0585..2a69e471f 100644
--- a/shared/models/rewardModels/rewardProgramModels/rewardProgramModels.ts
+++ b/shared/models/rewardModels/rewardProgramModels/rewardProgramModels.ts
@@ -1,6 +1,6 @@
import { z } from "zod/v4";
-import type { Reward } from "../rewardModels/rewardModels.js";
-import { RewardReceivedBy, RewardTriggerEvent } from "./rewardProgramEnums.js";
+import type { Reward } from "../rewardModels/rewardModels";
+import { RewardReceivedBy, RewardTriggerEvent } from "./rewardProgramEnums";
export const RewardProgram = z.object({
internal_id: z.string(),
diff --git a/shared/models/rewardModels/rewardProgramModels/rewardProgramRelations.ts b/shared/models/rewardModels/rewardProgramModels/rewardProgramRelations.ts
index 6f2ef5da5..593600fbb 100644
--- a/shared/models/rewardModels/rewardProgramModels/rewardProgramRelations.ts
+++ b/shared/models/rewardModels/rewardProgramModels/rewardProgramRelations.ts
@@ -1,6 +1,6 @@
import { relations } from "drizzle-orm";
-import { rewards } from "../rewardModels/rewardTable.js";
-import { rewardPrograms } from "./rewardProgramTable.js";
+import { rewards } from "../rewardModels/rewardTable";
+import { rewardPrograms } from "./rewardProgramTable";
export const rewardProgramRelations = relations(rewardPrograms, ({ one }) => ({
reward: one(rewards, {
diff --git a/shared/models/rewardModels/rewardProgramModels/rewardProgramTable.ts b/shared/models/rewardModels/rewardProgramModels/rewardProgramTable.ts
index e000ab5ad..40b364fb7 100644
--- a/shared/models/rewardModels/rewardProgramModels/rewardProgramTable.ts
+++ b/shared/models/rewardModels/rewardProgramModels/rewardProgramTable.ts
@@ -6,8 +6,8 @@ import {
pgTable,
text,
} from "drizzle-orm/pg-core";
-import { organizations } from "../../orgModels/orgTable.js";
-import { rewards } from "../rewardModels/rewardTable.js";
+import { organizations } from "../../orgModels/orgTable";
+import { rewards } from "../rewardModels/rewardTable";
export const rewardPrograms = pgTable(
"reward_programs",
diff --git a/shared/utils/billingUtils/index.ts b/shared/utils/billingUtils/index.ts
index 4abb8eafb..ad9324b09 100644
--- a/shared/utils/billingUtils/index.ts
+++ b/shared/utils/billingUtils/index.ts
@@ -1,19 +1,19 @@
-export * from "./cycleUtils/getCycleEnd.js";
-export * from "./cycleUtils/getCycleStart.js";
+export * from "./cycleUtils/getCycleEnd";
+export * from "./cycleUtils/getCycleStart";
// Interval utils
-export * from "./intervalUtils/addDuration.js";
-export * from "./intervalUtils/intervalArithmetic.js";
+export * from "./intervalUtils/addDuration";
+export * from "./intervalUtils/intervalArithmetic";
// Invoicing utils
-export * from "./invoicingUtils/filterUnchangedPricesFromLineItems.js";
-export * from "./invoicingUtils/lineItemBuilders/buildLineItem.js";
-export * from "./invoicingUtils/lineItemBuilders/fixedPriceToLineItem.js";
-export * from "./invoicingUtils/lineItemBuilders/usagePriceToLineItem.js";
-export * from "./invoicingUtils/lineItemUtils/lineItemToCustomerEntitlement.js";
-export * from "./invoicingUtils/lineItemUtils/priceToLineAmount.js";
-export * from "./invoicingUtils/lineItemUtils/tiersToLineAmount.js";
-export * from "./invoicingUtils/prorationUtils/applyProration.js";
-export * from "./invoicingUtils/prorationUtils/getEffectivePeriod.js";
-export * from "./invoicingUtils/prorationUtils/prorationConfigUtils.js";
-export * from "./usageUtils/roundUsageToNearestBillingUnit.js";
+export * from "./invoicingUtils/filterUnchangedPricesFromLineItems";
+export * from "./invoicingUtils/lineItemBuilders/buildLineItem";
+export * from "./invoicingUtils/lineItemBuilders/fixedPriceToLineItem";
+export * from "./invoicingUtils/lineItemBuilders/usagePriceToLineItem";
+export * from "./invoicingUtils/lineItemUtils/lineItemToCustomerEntitlement";
+export * from "./invoicingUtils/lineItemUtils/priceToLineAmount";
+export * from "./invoicingUtils/lineItemUtils/tiersToLineAmount";
+export * from "./invoicingUtils/prorationUtils/applyProration";
+export * from "./invoicingUtils/prorationUtils/getEffectivePeriod";
+export * from "./invoicingUtils/prorationUtils/prorationConfigUtils";
+export * from "./usageUtils/roundUsageToNearestBillingUnit";
diff --git a/shared/utils/checkoutUtils/index.ts b/shared/utils/checkoutUtils/index.ts
index ca7a8af9f..a78871412 100644
--- a/shared/utils/checkoutUtils/index.ts
+++ b/shared/utils/checkoutUtils/index.ts
@@ -1 +1 @@
-export { checkoutToUrl } from "./checkoutToUrl.js";
+export { checkoutToUrl } from "./checkoutToUrl";
diff --git a/shared/utils/common/index.ts b/shared/utils/common/index.ts
index 0aa7327c7..e427a5368 100644
--- a/shared/utils/common/index.ts
+++ b/shared/utils/common/index.ts
@@ -1,2 +1,2 @@
-export * from "./formatUtils/index.js";
-export * from "./unixUtils.js";
+export * from "./formatUtils/index";
+export * from "./unixUtils";
diff --git a/shared/utils/cusEntUtils/index.ts b/shared/utils/cusEntUtils/index.ts
index 012f689af..3613bbee5 100644
--- a/shared/utils/cusEntUtils/index.ts
+++ b/shared/utils/cusEntUtils/index.ts
@@ -1,52 +1,52 @@
// Balance utils
-export * from "./balanceUtils/cusEntsToBalance.js";
-export * from "./balanceUtils/cusEntsToCurrentBalance.js";
-export * from "./balanceUtils/cusEntsToPrepaidQuantity.js";
-export * from "./balanceUtils/cusEntsToPurchasedBalance.js";
-export * from "./balanceUtils/cusEntsToReset.js";
-export * from "./balanceUtils/cusEntsToRollovers.js";
-export * from "./balanceUtils/cusEntsToUsage.js";
-export * from "./balanceUtils/cusEntToMinBalance.js";
-export * from "./balanceUtils/cusEntToUsageAllowed.js";
+export * from "./balanceUtils/cusEntsToBalance";
+export * from "./balanceUtils/cusEntsToCurrentBalance";
+export * from "./balanceUtils/cusEntsToPrepaidQuantity";
+export * from "./balanceUtils/cusEntsToPurchasedBalance";
+export * from "./balanceUtils/cusEntsToReset";
+export * from "./balanceUtils/cusEntsToRollovers";
+export * from "./balanceUtils/cusEntsToUsage";
+export * from "./balanceUtils/cusEntToMinBalance";
+export * from "./balanceUtils/cusEntToUsageAllowed";
// Customer entitlement to balance price utils
-export * from "./balanceUtils/customerEntitlementToBalancePrice.js";
+export * from "./balanceUtils/customerEntitlementToBalancePrice";
// Granted balance utils
-export * from "./balanceUtils/grantedBalanceUtils/cusEntsToAdjustment.js";
-export * from "./balanceUtils/grantedBalanceUtils/cusEntsToAllowance.js";
-export * from "./balanceUtils/grantedBalanceUtils/cusEntsToGrantedBalance.js";
-export * from "./balanceUtils/rollovers/cusEntsToRolloverBalance.js";
-export * from "./balanceUtils/rollovers/cusEntsToRolloverGranted.js";
-export * from "./balanceUtils/rollovers/cusEntsToRolloverUsage.js";
-export * from "./balanceUtils/rollovers/cusEntsToRolloverUsage.js";
+export * from "./balanceUtils/grantedBalanceUtils/cusEntsToAdjustment";
+export * from "./balanceUtils/grantedBalanceUtils/cusEntsToAllowance";
+export * from "./balanceUtils/grantedBalanceUtils/cusEntsToGrantedBalance";
+export * from "./balanceUtils/rollovers/cusEntsToRolloverBalance";
+export * from "./balanceUtils/rollovers/cusEntsToRolloverGranted";
+export * from "./balanceUtils/rollovers/cusEntsToRolloverUsage";
+export * from "./balanceUtils/rollovers/cusEntsToRolloverUsage";
// Balance utils barrel
-export * from "./balanceUtils.js";
+export * from "./balanceUtils";
// Classify utils
-export * from "./classifyCusEntUtils.js";
+export * from "./classifyCusEntUtils";
// Convert utils
-export * from "./convertCusEntUtils/cusEntsToMaxPurchase.js";
-export * from "./convertCusEntUtils/cusEntsToStartingBalance.js";
-export * from "./convertCusEntUtils/cusEntToCusPrice.js";
-export * from "./convertCusEntUtils/cusEntToKey.js";
-export * from "./convertCusEntUtils/cusEntToStripeIds.js";
+export * from "./convertCusEntUtils/cusEntsToMaxPurchase";
+export * from "./convertCusEntUtils/cusEntsToStartingBalance";
+export * from "./convertCusEntUtils/cusEntToCusPrice";
+export * from "./convertCusEntUtils/cusEntToKey";
+export * from "./convertCusEntUtils/cusEntToStripeIds";
// Convert utils barrel
-export * from "./convertCusEntUtils/customerEntitlementToOptions.js";
+export * from "./convertCusEntUtils/customerEntitlementToOptions";
// Convert utils barrel
-export * from "./convertCusEntUtils.js";
+export * from "./convertCusEntUtils";
// Core utils
-export * from "./cusEntUtils.js";
-export * from "./filterCusEntUtils.js";
-export * from "./findCustomerEntitlement/findCustomerEntitlementByFeature.js";
+export * from "./cusEntUtils";
+export * from "./filterCusEntUtils";
+export * from "./findCustomerEntitlement/findCustomerEntitlementByFeature";
// Find utils
-export * from "./findCustomerEntitlement/findCustomerEntitlementById.js";
-export * from "./findCustomerEntitlement/findPrepaidCustomerEntitlement.js";
+export * from "./findCustomerEntitlement/findCustomerEntitlementById";
+export * from "./findCustomerEntitlement/findPrepaidCustomerEntitlement";
// Other utils
-export * from "./getRolloverFields.js";
-export * from "./getStartingBalance.js";
+export * from "./getRolloverFields";
+export * from "./getStartingBalance";
// Overage utils
-export * from "./overageUtils/cusEntToInvoiceOverage.js";
-export * from "./overageUtils/cusEntToInvoiceUsage.js";
-export * from "./overageUtils/cusEntToOptions.js";
-export * from "./sortCusEntsForDeduction.js";
+export * from "./overageUtils/cusEntToInvoiceOverage";
+export * from "./overageUtils/cusEntToInvoiceUsage";
+export * from "./overageUtils/cusEntToOptions";
+export * from "./sortCusEntsForDeduction";
diff --git a/shared/utils/cusPriceUtils/index.ts b/shared/utils/cusPriceUtils/index.ts
index 87cf6045f..9e380167f 100644
--- a/shared/utils/cusPriceUtils/index.ts
+++ b/shared/utils/cusPriceUtils/index.ts
@@ -1,5 +1,5 @@
-export * from "./convertCusPriceUtils.js";
-export * from "./convertCustomerPrice/customerPriceToBillingUnits.js";
-export * from "./convertCustomerPrice/customerPriceToCustomerEntitlement.js";
-export * from "./findCusPriceUtils/findPrepaidCusPriceByFeature.js";
-export * from "./findCusPriceUtils.js";
+export * from "./convertCusPriceUtils";
+export * from "./convertCustomerPrice/customerPriceToBillingUnits";
+export * from "./convertCustomerPrice/customerPriceToCustomerEntitlement";
+export * from "./findCusPriceUtils/findPrepaidCusPriceByFeature";
+export * from "./findCusPriceUtils";
diff --git a/shared/utils/cusProductUtils/filterCusProductUtils.ts b/shared/utils/cusProductUtils/filterCusProductUtils.ts
index 1d3ffd33e..522972e23 100644
--- a/shared/utils/cusProductUtils/filterCusProductUtils.ts
+++ b/shared/utils/cusProductUtils/filterCusProductUtils.ts
@@ -1,12 +1,12 @@
import {
type FullCustomer,
filterCustomerProductsByActiveStatuses,
-} from "../../index.js";
-import type { Entity } from "../../models/cusModels/entityModels/entityModels.js";
-import type { FullCustomerEntitlement } from "../../models/cusProductModels/cusEntModels/cusEntModels.js";
-import type { FullCusProduct } from "../../models/cusProductModels/cusProductModels.js";
-import type { Organization } from "../../models/orgModels/orgTable.js";
-import { notNullish, nullish } from "../utils.js";
+} from "../../index";
+import type { Entity } from "../../models/cusModels/entityModels/entityModels";
+import type { FullCustomerEntitlement } from "../../models/cusProductModels/cusEntModels/cusEntModels";
+import type { FullCusProduct } from "../../models/cusProductModels/cusProductModels";
+import type { Organization } from "../../models/orgModels/orgTable";
+import { notNullish, nullish } from "../utils";
/**
* Filter customer products by entity
diff --git a/shared/utils/cusProductUtils/index.ts b/shared/utils/cusProductUtils/index.ts
index 0ed76df22..4a1e218cf 100644
--- a/shared/utils/cusProductUtils/index.ts
+++ b/shared/utils/cusProductUtils/index.ts
@@ -1,15 +1,15 @@
-import { customerProductToFeaturesToCarryUsagesFor } from "@utils/cusProductUtils/convertCusProduct/customerProductToFeaturesToCarryUsagesFor.js";
+import { customerProductToFeaturesToCarryUsagesFor } from "@utils/cusProductUtils/convertCusProduct/customerProductToFeaturesToCarryUsagesFor";
-export * from "./classifyCustomerProduct/classifyCustomerProduct.js";
-export * from "./classifyCustomerProduct/cpBuilder.js";
-export * from "./convertCusProduct/cusProductToConvertedFeatureOptions.js";
-export * from "./convertCusProduct/cusProductToFeatureOptions.js";
-export * from "./convertCusProduct.js";
-export * from "./cusProductConstants.js";
-export * from "./cusProductUtils.js";
-export * from "./featureOptionUtils/findFeatureOptions.js";
-export * from "./featureOptionUtils/index.js";
-export * from "./filterCusProductUtils.js";
+export * from "./classifyCustomerProduct/classifyCustomerProduct";
+export * from "./classifyCustomerProduct/cpBuilder";
+export * from "./convertCusProduct/cusProductToConvertedFeatureOptions";
+export * from "./convertCusProduct/cusProductToFeatureOptions";
+export * from "./convertCusProduct";
+export * from "./cusProductConstants";
+export * from "./cusProductUtils";
+export * from "./featureOptionUtils/findFeatureOptions";
+export * from "./featureOptionUtils/index";
+export * from "./filterCusProductUtils";
export * from "./filterCustomerProducts/filterCustomerProductsByActiveStatuses.js";
export * from "./filterCustomerProducts/filterCustomerProductsByStripeSubscriptionId.js";
export * from "./findCustomerProduct/findActiveCustomerProduct.js";
diff --git a/shared/utils/cusUtils/index.ts b/shared/utils/cusUtils/index.ts
index bba1f53f6..8a45f80c6 100644
--- a/shared/utils/cusUtils/index.ts
+++ b/shared/utils/cusUtils/index.ts
@@ -1,7 +1,7 @@
// Cus plan utils
-export * from "./cusPlanUtils/cusPlanUtils.js";
+export * from "./cusPlanUtils/cusPlanUtils";
// Full cus utils
-export * from "./fullCusUtils/enrichFullCustomer.js";
-export * from "./fullCusUtils/fullCustomerToCustomerEntitlements.js";
-export * from "./fullCusUtils/getCusStripeSubCount.js";
+export * from "./fullCusUtils/enrichFullCustomer";
+export * from "./fullCusUtils/fullCustomerToCustomerEntitlements";
+export * from "./fullCusUtils/getCusStripeSubCount";
diff --git a/shared/utils/featureUtils/index.ts b/shared/utils/featureUtils/index.ts
index ddd24f9a8..4d47d8777 100644
--- a/shared/utils/featureUtils/index.ts
+++ b/shared/utils/featureUtils/index.ts
@@ -1,12 +1,12 @@
-import { isAllocatedFeature } from "@utils/featureUtils/classifyFeature/isAllocatedFeature.js";
-import { isConsumableFeature } from "@utils/featureUtils/classifyFeature/isConsumableFeature.js";
-import { findFeatureById } from "@utils/featureUtils/findFeatureUtils.js";
+import { isAllocatedFeature } from "@utils/featureUtils/classifyFeature/isAllocatedFeature";
+import { isConsumableFeature } from "@utils/featureUtils/classifyFeature/isConsumableFeature";
+import { findFeatureById } from "@utils/featureUtils/findFeatureUtils";
-export * from "./apiFeatureToDbFeature.js";
+export * from "./apiFeatureToDbFeature";
-export * from "./convertFeatureUtils.js";
-export * from "./creditSystemUtils.js";
-export * from "./findFeatureUtils.js";
+export * from "./convertFeatureUtils";
+export * from "./creditSystemUtils";
+export * from "./findFeatureUtils";
export const featureUtils = {
isConsumable: isConsumableFeature,
diff --git a/shared/utils/index.ts b/shared/utils/index.ts
index fec993ec2..a86f9e2c5 100644
--- a/shared/utils/index.ts
+++ b/shared/utils/index.ts
@@ -1,62 +1,62 @@
// Billing utils
-export * from "./common/unixUtils.js";
+export * from "./common/unixUtils";
// Cursor pagination utils
-export * from "./cursorUtils.js";
+export * from "./cursorUtils";
// Balance utils
-export * from "./cusEntUtils/balanceUtils/cusEntsToBalance.js";
-export * from "./cusEntUtils/balanceUtils/cusEntsToCurrentBalance.js";
-export * from "./cusEntUtils/balanceUtils/cusEntsToPrepaidQuantity.js";
-export * from "./cusEntUtils/balanceUtils/cusEntsToPurchasedBalance.js";
-export * from "./cusEntUtils/balanceUtils/cusEntsToReset.js";
-export * from "./cusEntUtils/balanceUtils/cusEntsToRollovers.js";
-export * from "./cusEntUtils/balanceUtils/cusEntToStartingBalance.js";
+export * from "./cusEntUtils/balanceUtils/cusEntsToBalance";
+export * from "./cusEntUtils/balanceUtils/cusEntsToCurrentBalance";
+export * from "./cusEntUtils/balanceUtils/cusEntsToPrepaidQuantity";
+export * from "./cusEntUtils/balanceUtils/cusEntsToPurchasedBalance";
+export * from "./cusEntUtils/balanceUtils/cusEntsToReset";
+export * from "./cusEntUtils/balanceUtils/cusEntsToRollovers";
+export * from "./cusEntUtils/balanceUtils/cusEntToStartingBalance";
// Cus ent utils
-export * from "./cusEntUtils/index.js";
+export * from "./cusEntUtils/index";
// Cus price utils
-export * from "./cusPriceUtils/index.js";
+export * from "./cusPriceUtils/index";
// Cus product utils
-export * from "./cusProductUtils/index.js";
+export * from "./cusProductUtils/index";
// Cus utils
-export * from "./cusUtils/index.js";
-export * from "./expandUtils.js";
+export * from "./cusUtils/index";
+export * from "./expandUtils";
// Feature utils
-export * from "./featureUtils/apiFeatureToDbFeature.js";
-export * from "./featureUtils/convertFeatureUtils.js";
-export * from "./featureUtils/findFeatureUtils.js";
-export * from "./featureUtils/index.js";
-export * from "./featureUtils.js";
+export * from "./featureUtils/apiFeatureToDbFeature";
+export * from "./featureUtils/convertFeatureUtils";
+export * from "./featureUtils/findFeatureUtils";
+export * from "./featureUtils/index";
+export * from "./featureUtils";
// INTERVAL UTILS
-export * from "./intervalUtils/addBillingInterval.js";
-export * from "./intervalUtils/priceIntervalUtils.js";
+export * from "./intervalUtils/addBillingInterval";
+export * from "./intervalUtils/priceIntervalUtils";
// Org utils
-export * from "./orgUtils/convertOrgUtils.js";
-export * from "./productUtils/classifyProduct/classifyProductUtils.js";
-export * from "./productUtils/classifyProduct/isProductPaidAndRecurring.js";
+export * from "./orgUtils/convertOrgUtils";
+export * from "./productUtils/classifyProduct/classifyProductUtils";
+export * from "./productUtils/classifyProduct/isProductPaidAndRecurring";
// Product utils
-export * from "./productUtils/convertProductUtils.js";
-export * from "./productUtils/entUtils/index.js";
-export * from "./productUtils/freeTrialUtils.js";
-export * from "./productUtils/index.js";
-export * from "./productUtils/isProductUpgrade.js";
-export * from "./productUtils/priceUtils/index.js";
-export * from "./productUtils/priceUtils.js";
-export * from "./productV2Utils/mapToProductV2.js";
-export * from "./productV2Utils/productItemUtils/classifyItemUtils.js";
-export * from "./productV2Utils/productItemUtils/getItemType.js";
+export * from "./productUtils/convertProductUtils";
+export * from "./productUtils/entUtils/index";
+export * from "./productUtils/freeTrialUtils";
+export * from "./productUtils/index";
+export * from "./productUtils/isProductUpgrade";
+export * from "./productUtils/priceUtils/index";
+export * from "./productUtils/priceUtils";
+export * from "./productV2Utils/mapToProductV2";
+export * from "./productV2Utils/productItemUtils/classifyItemUtils";
+export * from "./productV2Utils/productItemUtils/getItemType";
// Item utils
-export * from "./productV2Utils/productItemUtils/mapToItem.js";
-export * from "./productV2Utils/productItemUtils/productItemUtils.js";
-export * from "./productV2Utils/productV2ToFrontendProduct.js";
-export * from "./productV2Utils/productV2ToV1.js";
-export * from "./productV3Utils/productItemUtils/productV3ItemUtils.js";
-export * from "./utils.js";
+export * from "./productV2Utils/productItemUtils/mapToItem";
+export * from "./productV2Utils/productItemUtils/productItemUtils";
+export * from "./productV2Utils/productV2ToFrontendProduct";
+export * from "./productV2Utils/productV2ToV1";
+export * from "./productV3Utils/productItemUtils/productV3ItemUtils";
+export * from "./utils";
diff --git a/shared/utils/rewardUtils/rewardFilterUtils.ts b/shared/utils/rewardUtils/rewardFilterUtils.ts
index 4adc35595..ba80b6a3e 100644
--- a/shared/utils/rewardUtils/rewardFilterUtils.ts
+++ b/shared/utils/rewardUtils/rewardFilterUtils.ts
@@ -1,4 +1,4 @@
-import type { Reward, RewardProgram } from "../../index.js";
+import type { Reward, RewardProgram } from "../../index";
/**
* Checks if a reward is applicable to a specific product.