@usehercules/sdk 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +17 -16
  3. package/package.json +1 -1
  4. package/resources/beta/beta.d.mts +4 -4
  5. package/resources/beta/beta.d.mts.map +1 -1
  6. package/resources/beta/beta.d.ts +4 -4
  7. package/resources/beta/beta.d.ts.map +1 -1
  8. package/resources/beta/beta.js +4 -4
  9. package/resources/beta/beta.js.map +1 -1
  10. package/resources/beta/beta.mjs +4 -4
  11. package/resources/beta/beta.mjs.map +1 -1
  12. package/resources/beta/commerce/commerce.d.mts +201 -0
  13. package/resources/beta/commerce/commerce.d.mts.map +1 -0
  14. package/resources/beta/commerce/commerce.d.ts +201 -0
  15. package/resources/beta/commerce/commerce.d.ts.map +1 -0
  16. package/resources/beta/{pay/pay.js → commerce/commerce.js} +10 -14
  17. package/resources/beta/commerce/commerce.js.map +1 -0
  18. package/resources/beta/{pay/pay.mjs → commerce/commerce.mjs} +8 -12
  19. package/resources/beta/commerce/commerce.mjs.map +1 -0
  20. package/resources/beta/commerce/coupons.d.mts +333 -0
  21. package/resources/beta/commerce/coupons.d.mts.map +1 -0
  22. package/resources/beta/commerce/coupons.d.ts +333 -0
  23. package/resources/beta/commerce/coupons.d.ts.map +1 -0
  24. package/resources/beta/{pay → commerce}/coupons.js +8 -5
  25. package/resources/beta/commerce/coupons.js.map +1 -0
  26. package/resources/beta/{pay → commerce}/coupons.mjs +8 -5
  27. package/resources/beta/commerce/coupons.mjs.map +1 -0
  28. package/resources/beta/commerce/customers.d.mts +407 -0
  29. package/resources/beta/commerce/customers.d.mts.map +1 -0
  30. package/resources/beta/commerce/customers.d.ts +407 -0
  31. package/resources/beta/commerce/customers.d.ts.map +1 -0
  32. package/resources/beta/{pay → commerce}/customers.js +9 -6
  33. package/resources/beta/commerce/customers.js.map +1 -0
  34. package/resources/beta/{pay → commerce}/customers.mjs +9 -6
  35. package/resources/beta/commerce/customers.mjs.map +1 -0
  36. package/resources/beta/commerce/index.d.mts +5 -0
  37. package/resources/beta/commerce/index.d.mts.map +1 -0
  38. package/resources/beta/commerce/index.d.ts +5 -0
  39. package/resources/beta/commerce/index.d.ts.map +1 -0
  40. package/resources/beta/{pay → commerce}/index.js +3 -5
  41. package/resources/beta/commerce/index.js.map +1 -0
  42. package/resources/beta/{pay → commerce}/index.mjs +1 -2
  43. package/resources/beta/commerce/index.mjs.map +1 -0
  44. package/resources/beta/commerce/products/index.d.mts +4 -0
  45. package/resources/beta/commerce/products/index.d.mts.map +1 -0
  46. package/resources/beta/commerce/products/index.d.ts +4 -0
  47. package/resources/beta/commerce/products/index.d.ts.map +1 -0
  48. package/resources/beta/{pay → commerce}/products/index.js +3 -3
  49. package/resources/beta/commerce/products/index.js.map +1 -0
  50. package/resources/beta/{pay → commerce}/products/index.mjs +1 -1
  51. package/resources/beta/commerce/products/index.mjs.map +1 -0
  52. package/resources/beta/commerce/products/products.d.mts +967 -0
  53. package/resources/beta/commerce/products/products.d.mts.map +1 -0
  54. package/resources/beta/commerce/products/products.d.ts +967 -0
  55. package/resources/beta/commerce/products/products.d.ts.map +1 -0
  56. package/resources/beta/{pay → commerce}/products/products.js +16 -12
  57. package/resources/beta/commerce/products/products.js.map +1 -0
  58. package/resources/beta/{pay → commerce}/products/products.mjs +16 -12
  59. package/resources/beta/commerce/products/products.mjs.map +1 -0
  60. package/resources/beta/commerce/products/resources.d.mts +160 -0
  61. package/resources/beta/commerce/products/resources.d.mts.map +1 -0
  62. package/resources/beta/commerce/products/resources.d.ts +160 -0
  63. package/resources/beta/commerce/products/resources.d.ts.map +1 -0
  64. package/resources/beta/commerce/products/resources.js +41 -0
  65. package/resources/beta/commerce/products/resources.js.map +1 -0
  66. package/resources/beta/commerce/products/resources.mjs +37 -0
  67. package/resources/beta/commerce/products/resources.mjs.map +1 -0
  68. package/resources/beta/commerce/products/variants.d.mts +798 -0
  69. package/resources/beta/commerce/products/variants.d.mts.map +1 -0
  70. package/resources/beta/commerce/products/variants.d.ts +798 -0
  71. package/resources/beta/commerce/products/variants.d.ts.map +1 -0
  72. package/resources/beta/{pay → commerce}/products/variants.js +5 -8
  73. package/resources/beta/commerce/products/variants.js.map +1 -0
  74. package/resources/beta/{pay → commerce}/products/variants.mjs +5 -8
  75. package/resources/beta/commerce/products/variants.mjs.map +1 -0
  76. package/resources/beta/commerce/products.d.mts.map +1 -0
  77. package/resources/beta/commerce/products.d.ts.map +1 -0
  78. package/resources/beta/commerce/products.js.map +1 -0
  79. package/resources/beta/commerce/products.mjs.map +1 -0
  80. package/resources/beta/commerce.d.mts +2 -0
  81. package/resources/beta/commerce.d.mts.map +1 -0
  82. package/resources/beta/commerce.d.ts +2 -0
  83. package/resources/beta/commerce.d.ts.map +1 -0
  84. package/resources/beta/{pay.js → commerce.js} +2 -2
  85. package/resources/beta/commerce.js.map +1 -0
  86. package/resources/beta/{pay.mjs → commerce.mjs} +2 -2
  87. package/resources/beta/commerce.mjs.map +1 -0
  88. package/resources/beta/index.d.mts +1 -1
  89. package/resources/beta/index.d.mts.map +1 -1
  90. package/resources/beta/index.d.ts +1 -1
  91. package/resources/beta/index.d.ts.map +1 -1
  92. package/resources/beta/index.js +3 -3
  93. package/resources/beta/index.js.map +1 -1
  94. package/resources/beta/index.mjs +1 -1
  95. package/resources/beta/index.mjs.map +1 -1
  96. package/resources/push-notifications/push-notifications.d.mts +8 -9
  97. package/resources/push-notifications/push-notifications.d.mts.map +1 -1
  98. package/resources/push-notifications/push-notifications.d.ts +8 -9
  99. package/resources/push-notifications/push-notifications.d.ts.map +1 -1
  100. package/resources/push-notifications/push-notifications.js +5 -6
  101. package/resources/push-notifications/push-notifications.js.map +1 -1
  102. package/resources/push-notifications/push-notifications.mjs +5 -6
  103. package/resources/push-notifications/push-notifications.mjs.map +1 -1
  104. package/src/resources/beta/beta.ts +18 -18
  105. package/src/resources/beta/{pay/pay.ts → commerce/commerce.ts} +82 -85
  106. package/src/resources/beta/commerce/coupons.ts +440 -0
  107. package/src/resources/beta/commerce/customers.ts +532 -0
  108. package/src/resources/beta/commerce/index.ts +47 -0
  109. package/src/resources/beta/commerce/products/index.ts +37 -0
  110. package/src/resources/beta/commerce/products/products.ts +1199 -0
  111. package/src/resources/beta/commerce/products/resources.ts +213 -0
  112. package/src/resources/beta/commerce/products/variants.ts +984 -0
  113. package/src/resources/beta/{pay.ts → commerce.ts} +1 -1
  114. package/src/resources/beta/index.ts +8 -8
  115. package/src/resources/push-notifications/push-notifications.ts +8 -9
  116. package/src/version.ts +1 -1
  117. package/version.d.mts +1 -1
  118. package/version.d.ts +1 -1
  119. package/version.js +1 -1
  120. package/version.mjs +1 -1
  121. package/resources/beta/pay/coupons.d.mts +0 -156
  122. package/resources/beta/pay/coupons.d.mts.map +0 -1
  123. package/resources/beta/pay/coupons.d.ts +0 -156
  124. package/resources/beta/pay/coupons.d.ts.map +0 -1
  125. package/resources/beta/pay/coupons.js.map +0 -1
  126. package/resources/beta/pay/coupons.mjs.map +0 -1
  127. package/resources/beta/pay/customers.d.mts +0 -160
  128. package/resources/beta/pay/customers.d.mts.map +0 -1
  129. package/resources/beta/pay/customers.d.ts +0 -160
  130. package/resources/beta/pay/customers.d.ts.map +0 -1
  131. package/resources/beta/pay/customers.js.map +0 -1
  132. package/resources/beta/pay/customers.mjs.map +0 -1
  133. package/resources/beta/pay/entitlements.d.mts +0 -76
  134. package/resources/beta/pay/entitlements.d.mts.map +0 -1
  135. package/resources/beta/pay/entitlements.d.ts +0 -76
  136. package/resources/beta/pay/entitlements.d.ts.map +0 -1
  137. package/resources/beta/pay/entitlements.js +0 -41
  138. package/resources/beta/pay/entitlements.js.map +0 -1
  139. package/resources/beta/pay/entitlements.mjs +0 -37
  140. package/resources/beta/pay/entitlements.mjs.map +0 -1
  141. package/resources/beta/pay/index.d.mts +0 -6
  142. package/resources/beta/pay/index.d.mts.map +0 -1
  143. package/resources/beta/pay/index.d.ts +0 -6
  144. package/resources/beta/pay/index.d.ts.map +0 -1
  145. package/resources/beta/pay/index.js.map +0 -1
  146. package/resources/beta/pay/index.mjs.map +0 -1
  147. package/resources/beta/pay/pay.d.mts +0 -206
  148. package/resources/beta/pay/pay.d.mts.map +0 -1
  149. package/resources/beta/pay/pay.d.ts +0 -206
  150. package/resources/beta/pay/pay.d.ts.map +0 -1
  151. package/resources/beta/pay/pay.js.map +0 -1
  152. package/resources/beta/pay/pay.mjs.map +0 -1
  153. package/resources/beta/pay/products/entitlements.d.mts +0 -53
  154. package/resources/beta/pay/products/entitlements.d.mts.map +0 -1
  155. package/resources/beta/pay/products/entitlements.d.ts +0 -53
  156. package/resources/beta/pay/products/entitlements.d.ts.map +0 -1
  157. package/resources/beta/pay/products/entitlements.js +0 -38
  158. package/resources/beta/pay/products/entitlements.js.map +0 -1
  159. package/resources/beta/pay/products/entitlements.mjs +0 -34
  160. package/resources/beta/pay/products/entitlements.mjs.map +0 -1
  161. package/resources/beta/pay/products/index.d.mts +0 -4
  162. package/resources/beta/pay/products/index.d.mts.map +0 -1
  163. package/resources/beta/pay/products/index.d.ts +0 -4
  164. package/resources/beta/pay/products/index.d.ts.map +0 -1
  165. package/resources/beta/pay/products/index.js.map +0 -1
  166. package/resources/beta/pay/products/index.mjs.map +0 -1
  167. package/resources/beta/pay/products/products.d.mts +0 -183
  168. package/resources/beta/pay/products/products.d.mts.map +0 -1
  169. package/resources/beta/pay/products/products.d.ts +0 -183
  170. package/resources/beta/pay/products/products.d.ts.map +0 -1
  171. package/resources/beta/pay/products/products.js.map +0 -1
  172. package/resources/beta/pay/products/products.mjs.map +0 -1
  173. package/resources/beta/pay/products/variants.d.mts +0 -206
  174. package/resources/beta/pay/products/variants.d.mts.map +0 -1
  175. package/resources/beta/pay/products/variants.d.ts +0 -206
  176. package/resources/beta/pay/products/variants.d.ts.map +0 -1
  177. package/resources/beta/pay/products/variants.js.map +0 -1
  178. package/resources/beta/pay/products/variants.mjs.map +0 -1
  179. package/resources/beta/pay/products.d.mts.map +0 -1
  180. package/resources/beta/pay/products.d.ts.map +0 -1
  181. package/resources/beta/pay/products.js.map +0 -1
  182. package/resources/beta/pay/products.mjs.map +0 -1
  183. package/resources/beta/pay.d.mts +0 -2
  184. package/resources/beta/pay.d.mts.map +0 -1
  185. package/resources/beta/pay.d.ts +0 -2
  186. package/resources/beta/pay.d.ts.map +0 -1
  187. package/resources/beta/pay.js.map +0 -1
  188. package/resources/beta/pay.mjs.map +0 -1
  189. package/src/resources/beta/pay/coupons.ts +0 -218
  190. package/src/resources/beta/pay/customers.ts +0 -229
  191. package/src/resources/beta/pay/entitlements.ts +0 -113
  192. package/src/resources/beta/pay/index.ts +0 -46
  193. package/src/resources/beta/pay/products/entitlements.ts +0 -93
  194. package/src/resources/beta/pay/products/index.ts +0 -28
  195. package/src/resources/beta/pay/products/products.ts +0 -280
  196. package/src/resources/beta/pay/products/variants.ts +0 -279
  197. /package/resources/beta/{pay → commerce}/products.d.mts +0 -0
  198. /package/resources/beta/{pay → commerce}/products.d.ts +0 -0
  199. /package/resources/beta/{pay → commerce}/products.js +0 -0
  200. /package/resources/beta/{pay → commerce}/products.mjs +0 -0
  201. /package/src/resources/beta/{pay → commerce}/products.ts +0 -0
@@ -0,0 +1,1199 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../../../core/resource';
4
+ import * as ResourcesAPI from './resources';
5
+ import {
6
+ ResourceAttachParams,
7
+ ResourceAttachResponse,
8
+ ResourceListParams,
9
+ ResourceListResponse,
10
+ ResourceListResponsesCursorIDPage,
11
+ ResourceRemoveParams,
12
+ Resources,
13
+ } from './resources';
14
+ import * as VariantsAPI from './variants';
15
+ import {
16
+ VariantArchiveParams,
17
+ VariantArchiveResponse,
18
+ VariantCreateParams,
19
+ VariantCreateResponse,
20
+ VariantGetParams,
21
+ VariantGetResponse,
22
+ VariantListParams,
23
+ VariantListResponse,
24
+ VariantListResponsesCursorIDPage,
25
+ VariantUpdateParams,
26
+ VariantUpdateResponse,
27
+ Variants,
28
+ } from './variants';
29
+ import { APIPromise } from '../../../../core/api-promise';
30
+ import { CursorIDPage, type CursorIDPageParams, PagePromise } from '../../../../core/pagination';
31
+ import { RequestOptions } from '../../../../internal/request-options';
32
+ import { path } from '../../../../internal/utils/path';
33
+
34
+ export class Products extends APIResource {
35
+ resources: ResourcesAPI.Resources = new ResourcesAPI.Resources(this._client);
36
+ variants: VariantsAPI.Variants = new VariantsAPI.Variants(this._client);
37
+
38
+ /**
39
+ * Creates a new subscription product with a recurring price. Common examples
40
+ * include Free, Pro, Business, or Teams tiers. After creating a product, attach
41
+ * resources to define which features or content customers on this product can
42
+ * access.
43
+ */
44
+ create(body: ProductCreateParams, options?: RequestOptions): APIPromise<ProductCreateResponse> {
45
+ return this._client.post('/v1/commerce/products', { body, ...options });
46
+ }
47
+
48
+ /**
49
+ * Updates an existing product. Use this to modify the product name, description,
50
+ * or active status. Pricing cannot be changed after creation—create a new product
51
+ * instead.
52
+ */
53
+ update(
54
+ productID: string,
55
+ body: ProductUpdateParams | null | undefined = {},
56
+ options?: RequestOptions,
57
+ ): APIPromise<ProductUpdateResponse> {
58
+ return this._client.patch(path`/v1/commerce/products/${productID}`, { body, ...options });
59
+ }
60
+
61
+ /**
62
+ * Retrieves a paginated list of subscription products. Products define the pricing
63
+ * and billing intervals for subscriptions. Each product can have resources
64
+ * attached that grant access to features or content.
65
+ */
66
+ list(
67
+ query: ProductListParams | null | undefined = {},
68
+ options?: RequestOptions,
69
+ ): PagePromise<ProductListResponsesCursorIDPage, ProductListResponse> {
70
+ return this._client.getAPIList('/v1/commerce/products', CursorIDPage<ProductListResponse>, {
71
+ query,
72
+ ...options,
73
+ });
74
+ }
75
+
76
+ /**
77
+ * Archives a product, preventing new subscriptions. Existing subscriptions remain
78
+ * active. Use this instead of deletion to preserve subscription history.
79
+ */
80
+ archive(productID: string, options?: RequestOptions): APIPromise<ProductArchiveResponse> {
81
+ return this._client.delete(path`/v1/commerce/products/${productID}`, options);
82
+ }
83
+
84
+ /**
85
+ * Retrieves a product by ID. Returns the product object including pricing details
86
+ * and status.
87
+ */
88
+ get(productID: string, options?: RequestOptions): APIPromise<ProductGetResponse> {
89
+ return this._client.get(path`/v1/commerce/products/${productID}`, options);
90
+ }
91
+ }
92
+
93
+ export type ProductListResponsesCursorIDPage = CursorIDPage<ProductListResponse>;
94
+
95
+ /**
96
+ * A product that customers can purchase. Products can be one-time purchases or
97
+ * recurring subscriptions. Attach resources to a product to grant features to
98
+ * customers.
99
+ */
100
+ export interface ProductCreateResponse {
101
+ /**
102
+ * Unique identifier for the topic subscription
103
+ */
104
+ id: string;
105
+
106
+ /**
107
+ * Whether the product is available for new purchases
108
+ */
109
+ active: boolean;
110
+
111
+ /**
112
+ * Timestamp when the product was created
113
+ */
114
+ created: string;
115
+
116
+ /**
117
+ * Display name for the product (e.g., Pro, Business, Teams)
118
+ */
119
+ name: string;
120
+
121
+ /**
122
+ * Price configuration for a product. Can be one-time or recurring (subscription).
123
+ */
124
+ default_price?: ProductCreateResponse.DefaultPrice | null;
125
+
126
+ /**
127
+ * Detailed description of what the product includes
128
+ */
129
+ description?: string | null;
130
+
131
+ /**
132
+ * Media attachments (images, videos) for the product
133
+ */
134
+ media?: Array<ProductCreateResponse.Media>;
135
+
136
+ /**
137
+ * Custom metadata for the product
138
+ */
139
+ metadata?: { [key: string]: unknown };
140
+
141
+ /**
142
+ * ID of the product group this product belongs to. Product groups define shared
143
+ * billing configuration.
144
+ */
145
+ product_group_id?: string | null;
146
+
147
+ /**
148
+ * Resources attached to this product. Customers get access to these resources when
149
+ * they purchase the product.
150
+ */
151
+ resources?: Array<ProductCreateResponse.Resource>;
152
+
153
+ /**
154
+ * Tags for categorizing and filtering products
155
+ */
156
+ tags?: Array<string>;
157
+ }
158
+
159
+ export namespace ProductCreateResponse {
160
+ /**
161
+ * Price configuration for a product. Can be one-time or recurring (subscription).
162
+ */
163
+ export interface DefaultPrice {
164
+ /**
165
+ * Unique identifier for the topic subscription
166
+ */
167
+ id: string;
168
+
169
+ /**
170
+ * How to handle the billing cycle when switching plans. 'now' resets to current
171
+ * time, 'unchanged' keeps the original anchor. Null for one-time prices.
172
+ */
173
+ billing_cycle_anchor: 'now' | 'unchanged' | null;
174
+
175
+ /**
176
+ * Three-letter ISO currency code (e.g., usd, eur)
177
+ */
178
+ currency: string;
179
+
180
+ /**
181
+ * Billing frequency for recurring prices: day, week, month, or year. Null for
182
+ * one-time prices.
183
+ */
184
+ interval: 'day' | 'week' | 'month' | 'year' | null;
185
+
186
+ /**
187
+ * Number of intervals between billings for recurring prices. Null for one-time
188
+ * prices.
189
+ */
190
+ interval_count: number | null;
191
+
192
+ /**
193
+ * How to handle prorations when switching plans. 'default' creates prorations,
194
+ * 'none' disables them. Null for one-time prices.
195
+ */
196
+ proration_behavior: 'default' | 'none' | null;
197
+
198
+ /**
199
+ * When to calculate proration. 'now' uses current time, 'start_of_period' uses the
200
+ * billing period start. Null for one-time prices or to use Stripe's default.
201
+ */
202
+ proration_date: 'now' | 'start_of_period' | null;
203
+
204
+ /**
205
+ * Price type: one_time for single purchases, recurring for subscriptions
206
+ */
207
+ type: 'one_time' | 'recurring';
208
+
209
+ /**
210
+ * Price amount in the smallest currency unit (e.g., cents)
211
+ */
212
+ unit_amount: number | null;
213
+ }
214
+
215
+ /**
216
+ * Media attachment for products or variants
217
+ */
218
+ export interface Media {
219
+ /**
220
+ * Type of media: image, video, or external link
221
+ */
222
+ type: 'image' | 'video' | 'external';
223
+
224
+ /**
225
+ * URL of the media resource
226
+ */
227
+ url: string;
228
+ }
229
+
230
+ /**
231
+ * A resource that can be attached to products to grant access to customers.
232
+ * Resources represent monetizable content or features in your app.
233
+ */
234
+ export interface Resource {
235
+ /**
236
+ * Unique identifier for the topic subscription
237
+ */
238
+ id: string;
239
+
240
+ /**
241
+ * Whether the resource is active and grants access
242
+ */
243
+ active: boolean;
244
+
245
+ /**
246
+ * Timestamp when the resource was created
247
+ */
248
+ created: string;
249
+
250
+ /**
251
+ * Type of resource: custom_entitlement, file, content, course, or ticket
252
+ */
253
+ type: 'custom_entitlement' | 'file' | 'content' | 'course' | 'ticket';
254
+
255
+ /**
256
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
257
+ */
258
+ custom_entitlement?: Resource.CustomEntitlement | null;
259
+ }
260
+
261
+ export namespace Resource {
262
+ /**
263
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
264
+ */
265
+ export interface CustomEntitlement {
266
+ /**
267
+ * Unique identifier for the custom entitlement. Must not contain '.'
268
+ */
269
+ id: string;
270
+
271
+ /**
272
+ * Custom metadata for the entitlement
273
+ */
274
+ metadata?: { [key: string]: unknown };
275
+ }
276
+ }
277
+ }
278
+
279
+ /**
280
+ * A product that customers can purchase. Products can be one-time purchases or
281
+ * recurring subscriptions. Attach resources to a product to grant features to
282
+ * customers.
283
+ */
284
+ export interface ProductUpdateResponse {
285
+ /**
286
+ * Unique identifier for the topic subscription
287
+ */
288
+ id: string;
289
+
290
+ /**
291
+ * Whether the product is available for new purchases
292
+ */
293
+ active: boolean;
294
+
295
+ /**
296
+ * Timestamp when the product was created
297
+ */
298
+ created: string;
299
+
300
+ /**
301
+ * Display name for the product (e.g., Pro, Business, Teams)
302
+ */
303
+ name: string;
304
+
305
+ /**
306
+ * Price configuration for a product. Can be one-time or recurring (subscription).
307
+ */
308
+ default_price?: ProductUpdateResponse.DefaultPrice | null;
309
+
310
+ /**
311
+ * Detailed description of what the product includes
312
+ */
313
+ description?: string | null;
314
+
315
+ /**
316
+ * Media attachments (images, videos) for the product
317
+ */
318
+ media?: Array<ProductUpdateResponse.Media>;
319
+
320
+ /**
321
+ * Custom metadata for the product
322
+ */
323
+ metadata?: { [key: string]: unknown };
324
+
325
+ /**
326
+ * ID of the product group this product belongs to. Product groups define shared
327
+ * billing configuration.
328
+ */
329
+ product_group_id?: string | null;
330
+
331
+ /**
332
+ * Resources attached to this product. Customers get access to these resources when
333
+ * they purchase the product.
334
+ */
335
+ resources?: Array<ProductUpdateResponse.Resource>;
336
+
337
+ /**
338
+ * Tags for categorizing and filtering products
339
+ */
340
+ tags?: Array<string>;
341
+ }
342
+
343
+ export namespace ProductUpdateResponse {
344
+ /**
345
+ * Price configuration for a product. Can be one-time or recurring (subscription).
346
+ */
347
+ export interface DefaultPrice {
348
+ /**
349
+ * Unique identifier for the topic subscription
350
+ */
351
+ id: string;
352
+
353
+ /**
354
+ * How to handle the billing cycle when switching plans. 'now' resets to current
355
+ * time, 'unchanged' keeps the original anchor. Null for one-time prices.
356
+ */
357
+ billing_cycle_anchor: 'now' | 'unchanged' | null;
358
+
359
+ /**
360
+ * Three-letter ISO currency code (e.g., usd, eur)
361
+ */
362
+ currency: string;
363
+
364
+ /**
365
+ * Billing frequency for recurring prices: day, week, month, or year. Null for
366
+ * one-time prices.
367
+ */
368
+ interval: 'day' | 'week' | 'month' | 'year' | null;
369
+
370
+ /**
371
+ * Number of intervals between billings for recurring prices. Null for one-time
372
+ * prices.
373
+ */
374
+ interval_count: number | null;
375
+
376
+ /**
377
+ * How to handle prorations when switching plans. 'default' creates prorations,
378
+ * 'none' disables them. Null for one-time prices.
379
+ */
380
+ proration_behavior: 'default' | 'none' | null;
381
+
382
+ /**
383
+ * When to calculate proration. 'now' uses current time, 'start_of_period' uses the
384
+ * billing period start. Null for one-time prices or to use Stripe's default.
385
+ */
386
+ proration_date: 'now' | 'start_of_period' | null;
387
+
388
+ /**
389
+ * Price type: one_time for single purchases, recurring for subscriptions
390
+ */
391
+ type: 'one_time' | 'recurring';
392
+
393
+ /**
394
+ * Price amount in the smallest currency unit (e.g., cents)
395
+ */
396
+ unit_amount: number | null;
397
+ }
398
+
399
+ /**
400
+ * Media attachment for products or variants
401
+ */
402
+ export interface Media {
403
+ /**
404
+ * Type of media: image, video, or external link
405
+ */
406
+ type: 'image' | 'video' | 'external';
407
+
408
+ /**
409
+ * URL of the media resource
410
+ */
411
+ url: string;
412
+ }
413
+
414
+ /**
415
+ * A resource that can be attached to products to grant access to customers.
416
+ * Resources represent monetizable content or features in your app.
417
+ */
418
+ export interface Resource {
419
+ /**
420
+ * Unique identifier for the topic subscription
421
+ */
422
+ id: string;
423
+
424
+ /**
425
+ * Whether the resource is active and grants access
426
+ */
427
+ active: boolean;
428
+
429
+ /**
430
+ * Timestamp when the resource was created
431
+ */
432
+ created: string;
433
+
434
+ /**
435
+ * Type of resource: custom_entitlement, file, content, course, or ticket
436
+ */
437
+ type: 'custom_entitlement' | 'file' | 'content' | 'course' | 'ticket';
438
+
439
+ /**
440
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
441
+ */
442
+ custom_entitlement?: Resource.CustomEntitlement | null;
443
+ }
444
+
445
+ export namespace Resource {
446
+ /**
447
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
448
+ */
449
+ export interface CustomEntitlement {
450
+ /**
451
+ * Unique identifier for the custom entitlement. Must not contain '.'
452
+ */
453
+ id: string;
454
+
455
+ /**
456
+ * Custom metadata for the entitlement
457
+ */
458
+ metadata?: { [key: string]: unknown };
459
+ }
460
+ }
461
+ }
462
+
463
+ /**
464
+ * A product that customers can purchase. Products can be one-time purchases or
465
+ * recurring subscriptions. Attach resources to a product to grant features to
466
+ * customers.
467
+ */
468
+ export interface ProductListResponse {
469
+ /**
470
+ * Unique identifier for the topic subscription
471
+ */
472
+ id: string;
473
+
474
+ /**
475
+ * Whether the product is available for new purchases
476
+ */
477
+ active: boolean;
478
+
479
+ /**
480
+ * Timestamp when the product was created
481
+ */
482
+ created: string;
483
+
484
+ /**
485
+ * Display name for the product (e.g., Pro, Business, Teams)
486
+ */
487
+ name: string;
488
+
489
+ /**
490
+ * Price configuration for a product. Can be one-time or recurring (subscription).
491
+ */
492
+ default_price?: ProductListResponse.DefaultPrice | null;
493
+
494
+ /**
495
+ * Detailed description of what the product includes
496
+ */
497
+ description?: string | null;
498
+
499
+ /**
500
+ * Media attachments (images, videos) for the product
501
+ */
502
+ media?: Array<ProductListResponse.Media>;
503
+
504
+ /**
505
+ * Custom metadata for the product
506
+ */
507
+ metadata?: { [key: string]: unknown };
508
+
509
+ /**
510
+ * ID of the product group this product belongs to. Product groups define shared
511
+ * billing configuration.
512
+ */
513
+ product_group_id?: string | null;
514
+
515
+ /**
516
+ * Resources attached to this product. Customers get access to these resources when
517
+ * they purchase the product.
518
+ */
519
+ resources?: Array<ProductListResponse.Resource>;
520
+
521
+ /**
522
+ * Tags for categorizing and filtering products
523
+ */
524
+ tags?: Array<string>;
525
+ }
526
+
527
+ export namespace ProductListResponse {
528
+ /**
529
+ * Price configuration for a product. Can be one-time or recurring (subscription).
530
+ */
531
+ export interface DefaultPrice {
532
+ /**
533
+ * Unique identifier for the topic subscription
534
+ */
535
+ id: string;
536
+
537
+ /**
538
+ * How to handle the billing cycle when switching plans. 'now' resets to current
539
+ * time, 'unchanged' keeps the original anchor. Null for one-time prices.
540
+ */
541
+ billing_cycle_anchor: 'now' | 'unchanged' | null;
542
+
543
+ /**
544
+ * Three-letter ISO currency code (e.g., usd, eur)
545
+ */
546
+ currency: string;
547
+
548
+ /**
549
+ * Billing frequency for recurring prices: day, week, month, or year. Null for
550
+ * one-time prices.
551
+ */
552
+ interval: 'day' | 'week' | 'month' | 'year' | null;
553
+
554
+ /**
555
+ * Number of intervals between billings for recurring prices. Null for one-time
556
+ * prices.
557
+ */
558
+ interval_count: number | null;
559
+
560
+ /**
561
+ * How to handle prorations when switching plans. 'default' creates prorations,
562
+ * 'none' disables them. Null for one-time prices.
563
+ */
564
+ proration_behavior: 'default' | 'none' | null;
565
+
566
+ /**
567
+ * When to calculate proration. 'now' uses current time, 'start_of_period' uses the
568
+ * billing period start. Null for one-time prices or to use Stripe's default.
569
+ */
570
+ proration_date: 'now' | 'start_of_period' | null;
571
+
572
+ /**
573
+ * Price type: one_time for single purchases, recurring for subscriptions
574
+ */
575
+ type: 'one_time' | 'recurring';
576
+
577
+ /**
578
+ * Price amount in the smallest currency unit (e.g., cents)
579
+ */
580
+ unit_amount: number | null;
581
+ }
582
+
583
+ /**
584
+ * Media attachment for products or variants
585
+ */
586
+ export interface Media {
587
+ /**
588
+ * Type of media: image, video, or external link
589
+ */
590
+ type: 'image' | 'video' | 'external';
591
+
592
+ /**
593
+ * URL of the media resource
594
+ */
595
+ url: string;
596
+ }
597
+
598
+ /**
599
+ * A resource that can be attached to products to grant access to customers.
600
+ * Resources represent monetizable content or features in your app.
601
+ */
602
+ export interface Resource {
603
+ /**
604
+ * Unique identifier for the topic subscription
605
+ */
606
+ id: string;
607
+
608
+ /**
609
+ * Whether the resource is active and grants access
610
+ */
611
+ active: boolean;
612
+
613
+ /**
614
+ * Timestamp when the resource was created
615
+ */
616
+ created: string;
617
+
618
+ /**
619
+ * Type of resource: custom_entitlement, file, content, course, or ticket
620
+ */
621
+ type: 'custom_entitlement' | 'file' | 'content' | 'course' | 'ticket';
622
+
623
+ /**
624
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
625
+ */
626
+ custom_entitlement?: Resource.CustomEntitlement | null;
627
+ }
628
+
629
+ export namespace Resource {
630
+ /**
631
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
632
+ */
633
+ export interface CustomEntitlement {
634
+ /**
635
+ * Unique identifier for the custom entitlement. Must not contain '.'
636
+ */
637
+ id: string;
638
+
639
+ /**
640
+ * Custom metadata for the entitlement
641
+ */
642
+ metadata?: { [key: string]: unknown };
643
+ }
644
+ }
645
+ }
646
+
647
+ /**
648
+ * A product that customers can purchase. Products can be one-time purchases or
649
+ * recurring subscriptions. Attach resources to a product to grant features to
650
+ * customers.
651
+ */
652
+ export interface ProductArchiveResponse {
653
+ /**
654
+ * Unique identifier for the topic subscription
655
+ */
656
+ id: string;
657
+
658
+ /**
659
+ * Whether the product is available for new purchases
660
+ */
661
+ active: boolean;
662
+
663
+ /**
664
+ * Timestamp when the product was created
665
+ */
666
+ created: string;
667
+
668
+ /**
669
+ * Display name for the product (e.g., Pro, Business, Teams)
670
+ */
671
+ name: string;
672
+
673
+ /**
674
+ * Price configuration for a product. Can be one-time or recurring (subscription).
675
+ */
676
+ default_price?: ProductArchiveResponse.DefaultPrice | null;
677
+
678
+ /**
679
+ * Detailed description of what the product includes
680
+ */
681
+ description?: string | null;
682
+
683
+ /**
684
+ * Media attachments (images, videos) for the product
685
+ */
686
+ media?: Array<ProductArchiveResponse.Media>;
687
+
688
+ /**
689
+ * Custom metadata for the product
690
+ */
691
+ metadata?: { [key: string]: unknown };
692
+
693
+ /**
694
+ * ID of the product group this product belongs to. Product groups define shared
695
+ * billing configuration.
696
+ */
697
+ product_group_id?: string | null;
698
+
699
+ /**
700
+ * Resources attached to this product. Customers get access to these resources when
701
+ * they purchase the product.
702
+ */
703
+ resources?: Array<ProductArchiveResponse.Resource>;
704
+
705
+ /**
706
+ * Tags for categorizing and filtering products
707
+ */
708
+ tags?: Array<string>;
709
+ }
710
+
711
+ export namespace ProductArchiveResponse {
712
+ /**
713
+ * Price configuration for a product. Can be one-time or recurring (subscription).
714
+ */
715
+ export interface DefaultPrice {
716
+ /**
717
+ * Unique identifier for the topic subscription
718
+ */
719
+ id: string;
720
+
721
+ /**
722
+ * How to handle the billing cycle when switching plans. 'now' resets to current
723
+ * time, 'unchanged' keeps the original anchor. Null for one-time prices.
724
+ */
725
+ billing_cycle_anchor: 'now' | 'unchanged' | null;
726
+
727
+ /**
728
+ * Three-letter ISO currency code (e.g., usd, eur)
729
+ */
730
+ currency: string;
731
+
732
+ /**
733
+ * Billing frequency for recurring prices: day, week, month, or year. Null for
734
+ * one-time prices.
735
+ */
736
+ interval: 'day' | 'week' | 'month' | 'year' | null;
737
+
738
+ /**
739
+ * Number of intervals between billings for recurring prices. Null for one-time
740
+ * prices.
741
+ */
742
+ interval_count: number | null;
743
+
744
+ /**
745
+ * How to handle prorations when switching plans. 'default' creates prorations,
746
+ * 'none' disables them. Null for one-time prices.
747
+ */
748
+ proration_behavior: 'default' | 'none' | null;
749
+
750
+ /**
751
+ * When to calculate proration. 'now' uses current time, 'start_of_period' uses the
752
+ * billing period start. Null for one-time prices or to use Stripe's default.
753
+ */
754
+ proration_date: 'now' | 'start_of_period' | null;
755
+
756
+ /**
757
+ * Price type: one_time for single purchases, recurring for subscriptions
758
+ */
759
+ type: 'one_time' | 'recurring';
760
+
761
+ /**
762
+ * Price amount in the smallest currency unit (e.g., cents)
763
+ */
764
+ unit_amount: number | null;
765
+ }
766
+
767
+ /**
768
+ * Media attachment for products or variants
769
+ */
770
+ export interface Media {
771
+ /**
772
+ * Type of media: image, video, or external link
773
+ */
774
+ type: 'image' | 'video' | 'external';
775
+
776
+ /**
777
+ * URL of the media resource
778
+ */
779
+ url: string;
780
+ }
781
+
782
+ /**
783
+ * A resource that can be attached to products to grant access to customers.
784
+ * Resources represent monetizable content or features in your app.
785
+ */
786
+ export interface Resource {
787
+ /**
788
+ * Unique identifier for the topic subscription
789
+ */
790
+ id: string;
791
+
792
+ /**
793
+ * Whether the resource is active and grants access
794
+ */
795
+ active: boolean;
796
+
797
+ /**
798
+ * Timestamp when the resource was created
799
+ */
800
+ created: string;
801
+
802
+ /**
803
+ * Type of resource: custom_entitlement, file, content, course, or ticket
804
+ */
805
+ type: 'custom_entitlement' | 'file' | 'content' | 'course' | 'ticket';
806
+
807
+ /**
808
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
809
+ */
810
+ custom_entitlement?: Resource.CustomEntitlement | null;
811
+ }
812
+
813
+ export namespace Resource {
814
+ /**
815
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
816
+ */
817
+ export interface CustomEntitlement {
818
+ /**
819
+ * Unique identifier for the custom entitlement. Must not contain '.'
820
+ */
821
+ id: string;
822
+
823
+ /**
824
+ * Custom metadata for the entitlement
825
+ */
826
+ metadata?: { [key: string]: unknown };
827
+ }
828
+ }
829
+ }
830
+
831
+ /**
832
+ * A product that customers can purchase. Products can be one-time purchases or
833
+ * recurring subscriptions. Attach resources to a product to grant features to
834
+ * customers.
835
+ */
836
+ export interface ProductGetResponse {
837
+ /**
838
+ * Unique identifier for the topic subscription
839
+ */
840
+ id: string;
841
+
842
+ /**
843
+ * Whether the product is available for new purchases
844
+ */
845
+ active: boolean;
846
+
847
+ /**
848
+ * Timestamp when the product was created
849
+ */
850
+ created: string;
851
+
852
+ /**
853
+ * Display name for the product (e.g., Pro, Business, Teams)
854
+ */
855
+ name: string;
856
+
857
+ /**
858
+ * Price configuration for a product. Can be one-time or recurring (subscription).
859
+ */
860
+ default_price?: ProductGetResponse.DefaultPrice | null;
861
+
862
+ /**
863
+ * Detailed description of what the product includes
864
+ */
865
+ description?: string | null;
866
+
867
+ /**
868
+ * Media attachments (images, videos) for the product
869
+ */
870
+ media?: Array<ProductGetResponse.Media>;
871
+
872
+ /**
873
+ * Custom metadata for the product
874
+ */
875
+ metadata?: { [key: string]: unknown };
876
+
877
+ /**
878
+ * ID of the product group this product belongs to. Product groups define shared
879
+ * billing configuration.
880
+ */
881
+ product_group_id?: string | null;
882
+
883
+ /**
884
+ * Resources attached to this product. Customers get access to these resources when
885
+ * they purchase the product.
886
+ */
887
+ resources?: Array<ProductGetResponse.Resource>;
888
+
889
+ /**
890
+ * Tags for categorizing and filtering products
891
+ */
892
+ tags?: Array<string>;
893
+ }
894
+
895
+ export namespace ProductGetResponse {
896
+ /**
897
+ * Price configuration for a product. Can be one-time or recurring (subscription).
898
+ */
899
+ export interface DefaultPrice {
900
+ /**
901
+ * Unique identifier for the topic subscription
902
+ */
903
+ id: string;
904
+
905
+ /**
906
+ * How to handle the billing cycle when switching plans. 'now' resets to current
907
+ * time, 'unchanged' keeps the original anchor. Null for one-time prices.
908
+ */
909
+ billing_cycle_anchor: 'now' | 'unchanged' | null;
910
+
911
+ /**
912
+ * Three-letter ISO currency code (e.g., usd, eur)
913
+ */
914
+ currency: string;
915
+
916
+ /**
917
+ * Billing frequency for recurring prices: day, week, month, or year. Null for
918
+ * one-time prices.
919
+ */
920
+ interval: 'day' | 'week' | 'month' | 'year' | null;
921
+
922
+ /**
923
+ * Number of intervals between billings for recurring prices. Null for one-time
924
+ * prices.
925
+ */
926
+ interval_count: number | null;
927
+
928
+ /**
929
+ * How to handle prorations when switching plans. 'default' creates prorations,
930
+ * 'none' disables them. Null for one-time prices.
931
+ */
932
+ proration_behavior: 'default' | 'none' | null;
933
+
934
+ /**
935
+ * When to calculate proration. 'now' uses current time, 'start_of_period' uses the
936
+ * billing period start. Null for one-time prices or to use Stripe's default.
937
+ */
938
+ proration_date: 'now' | 'start_of_period' | null;
939
+
940
+ /**
941
+ * Price type: one_time for single purchases, recurring for subscriptions
942
+ */
943
+ type: 'one_time' | 'recurring';
944
+
945
+ /**
946
+ * Price amount in the smallest currency unit (e.g., cents)
947
+ */
948
+ unit_amount: number | null;
949
+ }
950
+
951
+ /**
952
+ * Media attachment for products or variants
953
+ */
954
+ export interface Media {
955
+ /**
956
+ * Type of media: image, video, or external link
957
+ */
958
+ type: 'image' | 'video' | 'external';
959
+
960
+ /**
961
+ * URL of the media resource
962
+ */
963
+ url: string;
964
+ }
965
+
966
+ /**
967
+ * A resource that can be attached to products to grant access to customers.
968
+ * Resources represent monetizable content or features in your app.
969
+ */
970
+ export interface Resource {
971
+ /**
972
+ * Unique identifier for the topic subscription
973
+ */
974
+ id: string;
975
+
976
+ /**
977
+ * Whether the resource is active and grants access
978
+ */
979
+ active: boolean;
980
+
981
+ /**
982
+ * Timestamp when the resource was created
983
+ */
984
+ created: string;
985
+
986
+ /**
987
+ * Type of resource: custom_entitlement, file, content, course, or ticket
988
+ */
989
+ type: 'custom_entitlement' | 'file' | 'content' | 'course' | 'ticket';
990
+
991
+ /**
992
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
993
+ */
994
+ custom_entitlement?: Resource.CustomEntitlement | null;
995
+ }
996
+
997
+ export namespace Resource {
998
+ /**
999
+ * Custom entitlement data. Required when type is 'custom_entitlement'.
1000
+ */
1001
+ export interface CustomEntitlement {
1002
+ /**
1003
+ * Unique identifier for the custom entitlement. Must not contain '.'
1004
+ */
1005
+ id: string;
1006
+
1007
+ /**
1008
+ * Custom metadata for the entitlement
1009
+ */
1010
+ metadata?: { [key: string]: unknown };
1011
+ }
1012
+ }
1013
+ }
1014
+
1015
+ export interface ProductCreateParams {
1016
+ /**
1017
+ * Display name for the product (e.g., Pro, Business, Teams)
1018
+ */
1019
+ name: string;
1020
+
1021
+ /**
1022
+ * Price amount in the smallest currency unit (e.g., cents). Use 0 for free
1023
+ * products.
1024
+ */
1025
+ unit_amount: number;
1026
+
1027
+ /**
1028
+ * Optional custom ID for the product. If not provided, one will be generated.
1029
+ */
1030
+ id?: string;
1031
+
1032
+ /**
1033
+ * Three-letter ISO currency code
1034
+ */
1035
+ currency?: string;
1036
+
1037
+ /**
1038
+ * Detailed description of what the product includes
1039
+ */
1040
+ description?: string;
1041
+
1042
+ /**
1043
+ * Billing frequency for recurring prices: day, week, month, or year. Required for
1044
+ * recurring type, ignored for one_time.
1045
+ */
1046
+ interval?: 'day' | 'week' | 'month' | 'year';
1047
+
1048
+ /**
1049
+ * Number of intervals between billings for recurring prices. Required for
1050
+ * recurring type, ignored for one_time.
1051
+ */
1052
+ interval_count?: number;
1053
+
1054
+ /**
1055
+ * Media attachments (images, videos) for the product
1056
+ */
1057
+ media?: Array<ProductCreateParams.Media>;
1058
+
1059
+ /**
1060
+ * Custom metadata for the product
1061
+ */
1062
+ metadata?: { [key: string]: unknown };
1063
+
1064
+ /**
1065
+ * ID of the product group this product belongs to. Product groups define shared
1066
+ * billing configuration.
1067
+ */
1068
+ product_group_id?: string;
1069
+
1070
+ /**
1071
+ * Tags for categorizing and filtering products
1072
+ */
1073
+ tags?: Array<string>;
1074
+
1075
+ /**
1076
+ * Price type: one_time for single purchases, recurring for subscriptions
1077
+ */
1078
+ type?: 'one_time' | 'recurring';
1079
+ }
1080
+
1081
+ export namespace ProductCreateParams {
1082
+ /**
1083
+ * Media attachment for products or variants
1084
+ */
1085
+ export interface Media {
1086
+ /**
1087
+ * Type of media: image, video, or external link
1088
+ */
1089
+ type: 'image' | 'video' | 'external';
1090
+
1091
+ /**
1092
+ * URL of the media resource
1093
+ */
1094
+ url: string;
1095
+ }
1096
+ }
1097
+
1098
+ export interface ProductUpdateParams {
1099
+ /**
1100
+ * Whether the product is available for new subscriptions
1101
+ */
1102
+ active?: boolean;
1103
+
1104
+ /**
1105
+ * Detailed description of what the product includes
1106
+ */
1107
+ description?: string;
1108
+
1109
+ /**
1110
+ * Media attachments (images, videos) for the product
1111
+ */
1112
+ media?: Array<ProductUpdateParams.Media>;
1113
+
1114
+ /**
1115
+ * Custom metadata for the product
1116
+ */
1117
+ metadata?: { [key: string]: unknown };
1118
+
1119
+ /**
1120
+ * Display name for the product
1121
+ */
1122
+ name?: string;
1123
+
1124
+ /**
1125
+ * ID of the product group. Set to null to remove from a group.
1126
+ */
1127
+ product_group_id?: string | null;
1128
+
1129
+ /**
1130
+ * Tags for categorizing and filtering products
1131
+ */
1132
+ tags?: Array<string>;
1133
+ }
1134
+
1135
+ export namespace ProductUpdateParams {
1136
+ /**
1137
+ * Media attachment for products or variants
1138
+ */
1139
+ export interface Media {
1140
+ /**
1141
+ * Type of media: image, video, or external link
1142
+ */
1143
+ type: 'image' | 'video' | 'external';
1144
+
1145
+ /**
1146
+ * URL of the media resource
1147
+ */
1148
+ url: string;
1149
+ }
1150
+ }
1151
+
1152
+ export interface ProductListParams extends CursorIDPageParams {
1153
+ /**
1154
+ * Filter by active status
1155
+ */
1156
+ active?: 'true' | 'false';
1157
+ }
1158
+
1159
+ Products.Resources = Resources;
1160
+ Products.Variants = Variants;
1161
+
1162
+ export declare namespace Products {
1163
+ export {
1164
+ type ProductCreateResponse as ProductCreateResponse,
1165
+ type ProductUpdateResponse as ProductUpdateResponse,
1166
+ type ProductListResponse as ProductListResponse,
1167
+ type ProductArchiveResponse as ProductArchiveResponse,
1168
+ type ProductGetResponse as ProductGetResponse,
1169
+ type ProductListResponsesCursorIDPage as ProductListResponsesCursorIDPage,
1170
+ type ProductCreateParams as ProductCreateParams,
1171
+ type ProductUpdateParams as ProductUpdateParams,
1172
+ type ProductListParams as ProductListParams,
1173
+ };
1174
+
1175
+ export {
1176
+ Resources as Resources,
1177
+ type ResourceListResponse as ResourceListResponse,
1178
+ type ResourceAttachResponse as ResourceAttachResponse,
1179
+ type ResourceListResponsesCursorIDPage as ResourceListResponsesCursorIDPage,
1180
+ type ResourceListParams as ResourceListParams,
1181
+ type ResourceAttachParams as ResourceAttachParams,
1182
+ type ResourceRemoveParams as ResourceRemoveParams,
1183
+ };
1184
+
1185
+ export {
1186
+ Variants as Variants,
1187
+ type VariantCreateResponse as VariantCreateResponse,
1188
+ type VariantUpdateResponse as VariantUpdateResponse,
1189
+ type VariantListResponse as VariantListResponse,
1190
+ type VariantArchiveResponse as VariantArchiveResponse,
1191
+ type VariantGetResponse as VariantGetResponse,
1192
+ type VariantListResponsesCursorIDPage as VariantListResponsesCursorIDPage,
1193
+ type VariantCreateParams as VariantCreateParams,
1194
+ type VariantUpdateParams as VariantUpdateParams,
1195
+ type VariantListParams as VariantListParams,
1196
+ type VariantArchiveParams as VariantArchiveParams,
1197
+ type VariantGetParams as VariantGetParams,
1198
+ };
1199
+ }