@metronome/sdk 0.1.0-beta.9 → 0.1.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 (286) hide show
  1. package/CHANGELOG.md +179 -0
  2. package/README.md +30 -46
  3. package/_shims/index.d.ts +2 -0
  4. package/_shims/index.js +5 -1
  5. package/_shims/index.mjs +5 -1
  6. package/core.d.ts +19 -5
  7. package/core.d.ts.map +1 -1
  8. package/core.js +23 -14
  9. package/core.js.map +1 -1
  10. package/core.mjs +24 -15
  11. package/core.mjs.map +1 -1
  12. package/index.d.mts +3 -2
  13. package/index.d.ts +3 -2
  14. package/index.d.ts.map +1 -1
  15. package/index.js +6 -3
  16. package/index.js.map +1 -1
  17. package/index.mjs +6 -3
  18. package/index.mjs.map +1 -1
  19. package/package.json +1 -1
  20. package/pagination.d.ts +1 -0
  21. package/pagination.d.ts.map +1 -1
  22. package/pagination.js +3 -0
  23. package/pagination.js.map +1 -1
  24. package/pagination.mjs +3 -0
  25. package/pagination.mjs.map +1 -1
  26. package/resource.d.ts +1 -1
  27. package/resource.d.ts.map +1 -1
  28. package/resource.js.map +1 -1
  29. package/resource.mjs.map +1 -1
  30. package/resources/shared.d.ts +473 -37
  31. package/resources/shared.d.ts.map +1 -1
  32. package/resources/v1/alerts.d.ts +26 -2
  33. package/resources/v1/alerts.d.ts.map +1 -1
  34. package/resources/v1/alerts.js +19 -0
  35. package/resources/v1/alerts.js.map +1 -1
  36. package/resources/v1/alerts.mjs +19 -0
  37. package/resources/v1/alerts.mjs.map +1 -1
  38. package/resources/v1/audit-logs.d.ts +8 -0
  39. package/resources/v1/audit-logs.d.ts.map +1 -1
  40. package/resources/v1/audit-logs.js.map +1 -1
  41. package/resources/v1/audit-logs.mjs.map +1 -1
  42. package/resources/v1/billable-metrics.d.ts +58 -3
  43. package/resources/v1/billable-metrics.d.ts.map +1 -1
  44. package/resources/v1/billable-metrics.js +41 -0
  45. package/resources/v1/billable-metrics.js.map +1 -1
  46. package/resources/v1/billable-metrics.mjs +41 -0
  47. package/resources/v1/billable-metrics.mjs.map +1 -1
  48. package/resources/v1/contracts/contracts.d.ts +1478 -102
  49. package/resources/v1/contracts/contracts.d.ts.map +1 -1
  50. package/resources/v1/contracts/contracts.js +180 -3
  51. package/resources/v1/contracts/contracts.js.map +1 -1
  52. package/resources/v1/contracts/contracts.mjs +180 -3
  53. package/resources/v1/contracts/contracts.mjs.map +1 -1
  54. package/resources/v1/contracts/index.d.ts +2 -2
  55. package/resources/v1/contracts/index.d.ts.map +1 -1
  56. package/resources/v1/contracts/index.js.map +1 -1
  57. package/resources/v1/contracts/index.mjs.map +1 -1
  58. package/resources/v1/contracts/named-schedules.d.ts +21 -0
  59. package/resources/v1/contracts/named-schedules.d.ts.map +1 -1
  60. package/resources/v1/contracts/named-schedules.js +21 -0
  61. package/resources/v1/contracts/named-schedules.js.map +1 -1
  62. package/resources/v1/contracts/named-schedules.mjs +21 -0
  63. package/resources/v1/contracts/named-schedules.mjs.map +1 -1
  64. package/resources/v1/contracts/products.d.ts +51 -3
  65. package/resources/v1/contracts/products.d.ts.map +1 -1
  66. package/resources/v1/contracts/products.js +33 -0
  67. package/resources/v1/contracts/products.js.map +1 -1
  68. package/resources/v1/contracts/products.mjs +33 -0
  69. package/resources/v1/contracts/products.mjs.map +1 -1
  70. package/resources/v1/contracts/rate-cards/index.d.ts +1 -1
  71. package/resources/v1/contracts/rate-cards/index.d.ts.map +1 -1
  72. package/resources/v1/contracts/rate-cards/index.js.map +1 -1
  73. package/resources/v1/contracts/rate-cards/index.mjs.map +1 -1
  74. package/resources/v1/contracts/rate-cards/named-schedules.d.ts +25 -0
  75. package/resources/v1/contracts/rate-cards/named-schedules.d.ts.map +1 -1
  76. package/resources/v1/contracts/rate-cards/named-schedules.js +25 -0
  77. package/resources/v1/contracts/rate-cards/named-schedules.js.map +1 -1
  78. package/resources/v1/contracts/rate-cards/named-schedules.mjs +25 -0
  79. package/resources/v1/contracts/rate-cards/named-schedules.mjs.map +1 -1
  80. package/resources/v1/contracts/rate-cards/product-orders.d.ts +30 -0
  81. package/resources/v1/contracts/rate-cards/product-orders.d.ts.map +1 -1
  82. package/resources/v1/contracts/rate-cards/product-orders.js +30 -0
  83. package/resources/v1/contracts/rate-cards/product-orders.js.map +1 -1
  84. package/resources/v1/contracts/rate-cards/product-orders.mjs +30 -0
  85. package/resources/v1/contracts/rate-cards/product-orders.mjs.map +1 -1
  86. package/resources/v1/contracts/rate-cards/rate-cards.d.ts +107 -10
  87. package/resources/v1/contracts/rate-cards/rate-cards.d.ts.map +1 -1
  88. package/resources/v1/contracts/rate-cards/rate-cards.js +71 -0
  89. package/resources/v1/contracts/rate-cards/rate-cards.js.map +1 -1
  90. package/resources/v1/contracts/rate-cards/rate-cards.mjs +71 -0
  91. package/resources/v1/contracts/rate-cards/rate-cards.mjs.map +1 -1
  92. package/resources/v1/contracts/rate-cards/rates.d.ts +102 -14
  93. package/resources/v1/contracts/rate-cards/rates.d.ts.map +1 -1
  94. package/resources/v1/contracts/rate-cards/rates.js +68 -0
  95. package/resources/v1/contracts/rate-cards/rates.js.map +1 -1
  96. package/resources/v1/contracts/rate-cards/rates.mjs +68 -0
  97. package/resources/v1/contracts/rate-cards/rates.mjs.map +1 -1
  98. package/resources/v1/credit-grants.d.ts +77 -2
  99. package/resources/v1/credit-grants.d.ts.map +1 -1
  100. package/resources/v1/credit-grants.js +39 -2
  101. package/resources/v1/credit-grants.js.map +1 -1
  102. package/resources/v1/credit-grants.mjs +39 -2
  103. package/resources/v1/credit-grants.mjs.map +1 -1
  104. package/resources/v1/custom-fields.d.ts +51 -7
  105. package/resources/v1/custom-fields.d.ts.map +1 -1
  106. package/resources/v1/custom-fields.js +35 -0
  107. package/resources/v1/custom-fields.js.map +1 -1
  108. package/resources/v1/custom-fields.mjs +35 -0
  109. package/resources/v1/custom-fields.mjs.map +1 -1
  110. package/resources/v1/customers/alerts.d.ts +28 -0
  111. package/resources/v1/customers/alerts.d.ts.map +1 -1
  112. package/resources/v1/customers/alerts.js +23 -0
  113. package/resources/v1/customers/alerts.js.map +1 -1
  114. package/resources/v1/customers/alerts.mjs +23 -0
  115. package/resources/v1/customers/alerts.mjs.map +1 -1
  116. package/resources/v1/customers/billing-config.d.ts +31 -0
  117. package/resources/v1/customers/billing-config.d.ts.map +1 -1
  118. package/resources/v1/customers/billing-config.js +27 -0
  119. package/resources/v1/customers/billing-config.js.map +1 -1
  120. package/resources/v1/customers/billing-config.mjs +27 -0
  121. package/resources/v1/customers/billing-config.mjs.map +1 -1
  122. package/resources/v1/customers/commits.d.ts +94 -7
  123. package/resources/v1/customers/commits.d.ts.map +1 -1
  124. package/resources/v1/customers/commits.js +56 -1
  125. package/resources/v1/customers/commits.js.map +1 -1
  126. package/resources/v1/customers/commits.mjs +56 -1
  127. package/resources/v1/customers/commits.mjs.map +1 -1
  128. package/resources/v1/customers/credits.d.ts +73 -3
  129. package/resources/v1/customers/credits.d.ts.map +1 -1
  130. package/resources/v1/customers/credits.js +41 -1
  131. package/resources/v1/customers/credits.js.map +1 -1
  132. package/resources/v1/customers/credits.mjs +41 -1
  133. package/resources/v1/customers/credits.mjs.map +1 -1
  134. package/resources/v1/customers/customers.d.ts +186 -9
  135. package/resources/v1/customers/customers.d.ts.map +1 -1
  136. package/resources/v1/customers/customers.js +106 -1
  137. package/resources/v1/customers/customers.js.map +1 -1
  138. package/resources/v1/customers/customers.mjs +106 -1
  139. package/resources/v1/customers/customers.mjs.map +1 -1
  140. package/resources/v1/customers/index.d.ts +1 -1
  141. package/resources/v1/customers/index.d.ts.map +1 -1
  142. package/resources/v1/customers/index.js.map +1 -1
  143. package/resources/v1/customers/index.mjs.map +1 -1
  144. package/resources/v1/customers/invoices.d.ts +144 -52
  145. package/resources/v1/customers/invoices.d.ts.map +1 -1
  146. package/resources/v1/customers/invoices.js +49 -0
  147. package/resources/v1/customers/invoices.js.map +1 -1
  148. package/resources/v1/customers/invoices.mjs +49 -0
  149. package/resources/v1/customers/invoices.mjs.map +1 -1
  150. package/resources/v1/customers/named-schedules.d.ts +21 -0
  151. package/resources/v1/customers/named-schedules.d.ts.map +1 -1
  152. package/resources/v1/customers/named-schedules.js +21 -0
  153. package/resources/v1/customers/named-schedules.js.map +1 -1
  154. package/resources/v1/customers/named-schedules.mjs +21 -0
  155. package/resources/v1/customers/named-schedules.mjs.map +1 -1
  156. package/resources/v1/customers/plans.d.ts +46 -1
  157. package/resources/v1/customers/plans.d.ts.map +1 -1
  158. package/resources/v1/customers/plans.js +43 -0
  159. package/resources/v1/customers/plans.js.map +1 -1
  160. package/resources/v1/customers/plans.mjs +43 -0
  161. package/resources/v1/customers/plans.mjs.map +1 -1
  162. package/resources/v1/dashboards.d.ts +30 -2
  163. package/resources/v1/dashboards.d.ts.map +1 -1
  164. package/resources/v1/dashboards.js +26 -0
  165. package/resources/v1/dashboards.js.map +1 -1
  166. package/resources/v1/dashboards.mjs +26 -0
  167. package/resources/v1/dashboards.mjs.map +1 -1
  168. package/resources/v1/index.d.ts +3 -3
  169. package/resources/v1/index.d.ts.map +1 -1
  170. package/resources/v1/index.js.map +1 -1
  171. package/resources/v1/index.mjs.map +1 -1
  172. package/resources/v1/invoices.d.ts +14 -0
  173. package/resources/v1/invoices.d.ts.map +1 -1
  174. package/resources/v1/invoices.js +14 -0
  175. package/resources/v1/invoices.js.map +1 -1
  176. package/resources/v1/invoices.mjs +14 -0
  177. package/resources/v1/invoices.mjs.map +1 -1
  178. package/resources/v1/plans.d.ts +47 -4
  179. package/resources/v1/plans.d.ts.map +1 -1
  180. package/resources/v1/plans.js +27 -0
  181. package/resources/v1/plans.js.map +1 -1
  182. package/resources/v1/plans.mjs +27 -0
  183. package/resources/v1/plans.mjs.map +1 -1
  184. package/resources/v1/pricing-units.d.ts +8 -0
  185. package/resources/v1/pricing-units.d.ts.map +1 -1
  186. package/resources/v1/pricing-units.js.map +1 -1
  187. package/resources/v1/pricing-units.mjs.map +1 -1
  188. package/resources/v1/services.d.ts +5 -0
  189. package/resources/v1/services.d.ts.map +1 -1
  190. package/resources/v1/services.js +5 -0
  191. package/resources/v1/services.js.map +1 -1
  192. package/resources/v1/services.mjs +5 -0
  193. package/resources/v1/services.mjs.map +1 -1
  194. package/resources/v1/usage.d.ts +161 -3
  195. package/resources/v1/usage.d.ts.map +1 -1
  196. package/resources/v1/usage.js +46 -0
  197. package/resources/v1/usage.js.map +1 -1
  198. package/resources/v1/usage.mjs +46 -0
  199. package/resources/v1/usage.mjs.map +1 -1
  200. package/resources/v1/v1.d.ts +6 -6
  201. package/resources/v1/v1.d.ts.map +1 -1
  202. package/resources/v1/v1.js.map +1 -1
  203. package/resources/v1/v1.mjs.map +1 -1
  204. package/resources/v2/contracts.d.ts +2923 -207
  205. package/resources/v2/contracts.d.ts.map +1 -1
  206. package/resources/v2/contracts.js +90 -2
  207. package/resources/v2/contracts.js.map +1 -1
  208. package/resources/v2/contracts.mjs +90 -2
  209. package/resources/v2/contracts.mjs.map +1 -1
  210. package/resources/webhooks.js +5 -5
  211. package/resources/webhooks.js.map +1 -1
  212. package/resources/webhooks.mjs +5 -5
  213. package/resources/webhooks.mjs.map +1 -1
  214. package/src/_shims/auto/runtime-bun.ts +1 -1
  215. package/src/_shims/auto/runtime-node.ts +1 -1
  216. package/src/_shims/auto/runtime.ts +1 -1
  217. package/src/_shims/auto/types-node.ts +1 -1
  218. package/src/_shims/bun-runtime.ts +2 -2
  219. package/src/_shims/index.d.ts +5 -3
  220. package/src/_shims/index.js +5 -1
  221. package/src/_shims/index.mjs +6 -2
  222. package/src/_shims/node-runtime.ts +3 -3
  223. package/src/_shims/registry.ts +1 -1
  224. package/src/_shims/web-runtime.ts +3 -3
  225. package/src/core.ts +46 -18
  226. package/src/error.ts +1 -1
  227. package/src/index.ts +22 -16
  228. package/src/internal/qs/formats.ts +1 -1
  229. package/src/internal/qs/index.ts +3 -3
  230. package/src/internal/qs/stringify.ts +3 -3
  231. package/src/internal/qs/utils.ts +2 -2
  232. package/src/pagination.ts +5 -1
  233. package/src/resource.ts +2 -2
  234. package/src/resources/index.ts +4 -4
  235. package/src/resources/shared.ts +539 -40
  236. package/src/resources/v1/alerts.ts +29 -5
  237. package/src/resources/v1/audit-logs.ts +12 -4
  238. package/src/resources/v1/billable-metrics.ts +57 -8
  239. package/src/resources/v1/contracts/contracts.ts +1643 -124
  240. package/src/resources/v1/contracts/index.ts +8 -4
  241. package/src/resources/v1/contracts/named-schedules.ts +23 -2
  242. package/src/resources/v1/contracts/products.ts +53 -9
  243. package/src/resources/v1/contracts/rate-cards/index.ts +6 -4
  244. package/src/resources/v1/contracts/rate-cards/named-schedules.ts +27 -2
  245. package/src/resources/v1/contracts/rate-cards/product-orders.ts +33 -3
  246. package/src/resources/v1/contracts/rate-cards/rate-cards.ts +113 -20
  247. package/src/resources/v1/contracts/rate-cards/rates.ts +86 -18
  248. package/src/resources/v1/contracts/rate-cards.ts +1 -1
  249. package/src/resources/v1/contracts.ts +1 -1
  250. package/src/resources/v1/credit-grants.ts +82 -10
  251. package/src/resources/v1/custom-fields.ts +57 -9
  252. package/src/resources/v1/customers/alerts.ts +32 -3
  253. package/src/resources/v1/customers/billing-config.ts +34 -2
  254. package/src/resources/v1/customers/commits.ts +97 -10
  255. package/src/resources/v1/customers/credits.ts +76 -6
  256. package/src/resources/v1/customers/customers.ts +208 -27
  257. package/src/resources/v1/customers/index.ts +10 -8
  258. package/src/resources/v1/customers/invoices.ts +123 -57
  259. package/src/resources/v1/customers/named-schedules.ts +23 -2
  260. package/src/resources/v1/customers/plans.ts +48 -5
  261. package/src/resources/v1/customers.ts +1 -1
  262. package/src/resources/v1/dashboards.ts +30 -4
  263. package/src/resources/v1/index.ts +20 -14
  264. package/src/resources/v1/invoices.ts +16 -2
  265. package/src/resources/v1/plans.ts +45 -10
  266. package/src/resources/v1/pricing-units.ts +12 -4
  267. package/src/resources/v1/services.ts +7 -2
  268. package/src/resources/v1/usage.ts +187 -6
  269. package/src/resources/v1/v1.ts +39 -27
  270. package/src/resources/v1.ts +1 -1
  271. package/src/resources/v2/contracts.ts +3397 -235
  272. package/src/resources/v2/index.ts +2 -2
  273. package/src/resources/v2/v2.ts +3 -3
  274. package/src/resources/v2.ts +1 -1
  275. package/src/resources/webhooks.ts +7 -7
  276. package/src/resources.ts +1 -1
  277. package/src/shims/node.ts +3 -3
  278. package/src/shims/web.ts +3 -3
  279. package/src/uploads.ts +4 -4
  280. package/src/version.ts +1 -1
  281. package/version.d.ts +1 -1
  282. package/version.d.ts.map +1 -1
  283. package/version.js +1 -1
  284. package/version.js.map +1 -1
  285. package/version.mjs +1 -1
  286. package/version.mjs.map +1 -1
@@ -20,6 +20,11 @@ export interface Commit {
20
20
  applicable_contract_ids?: Array<string>;
21
21
  applicable_product_ids?: Array<string>;
22
22
  applicable_product_tags?: Array<string>;
23
+ /**
24
+ * RFC 3339 timestamp indicating when the commit was archived. If not provided, the
25
+ * commit is not archived.
26
+ */
27
+ archived_at?: string;
23
28
  /**
24
29
  * The current balance of the credit or commit. This balance reflects the amount of
25
30
  * credit or commit that the customer has access to use at this moment - thus,
@@ -32,8 +37,14 @@ export interface Commit {
32
37
  */
33
38
  balance?: number;
34
39
  contract?: Commit.Contract;
35
- custom_fields?: Record<string, string>;
40
+ custom_fields?: {
41
+ [key: string]: string;
42
+ };
36
43
  description?: string;
44
+ /**
45
+ * Optional configuration for commit hierarchy access control
46
+ */
47
+ hierarchy_configuration?: Commit.HierarchyConfiguration;
37
48
  /**
38
49
  * The contract that this commit will be billed on.
39
50
  */
@@ -46,7 +57,7 @@ export interface Commit {
46
57
  * A list of ordered events that impact the balance of a commit. For example, an
47
58
  * invoice deduction or a rollover.
48
59
  */
49
- ledger?: Array<Commit.PrepaidCommitSegmentStartLedgerEntry | Commit.PrepaidCommitAutomatedInvoiceDeductionLedgerEntry | Commit.PrepaidCommitRolloverLedgerEntry | Commit.PrepaidCommitExpirationLedgerEntry | Commit.PrepaidCommitCanceledLedgerEntry | Commit.PrepaidCommitCreditedLedgerEntry | Commit.PostpaidCommitInitialBalanceLedgerEntry | Commit.PostpaidCommitAutomatedInvoiceDeductionLedgerEntry | Commit.PostpaidCommitRolloverLedgerEntry | Commit.PostpaidCommitTrueupLedgerEntry | Commit.PrepaidCommitManualLedgerEntry | Commit.PostpaidCommitManualLedgerEntry | Commit.PostpaidCommitExpirationLedgerEntry>;
60
+ ledger?: Array<Commit.PrepaidCommitSegmentStartLedgerEntry | Commit.PrepaidCommitAutomatedInvoiceDeductionLedgerEntry | Commit.PrepaidCommitRolloverLedgerEntry | Commit.PrepaidCommitExpirationLedgerEntry | Commit.PrepaidCommitCanceledLedgerEntry | Commit.PrepaidCommitCreditedLedgerEntry | Commit.PrepaidCommitSeatBasedAdjustmentLedgerEntry | Commit.PostpaidCommitInitialBalanceLedgerEntry | Commit.PostpaidCommitAutomatedInvoiceDeductionLedgerEntry | Commit.PostpaidCommitRolloverLedgerEntry | Commit.PostpaidCommitTrueupLedgerEntry | Commit.PrepaidCommitManualLedgerEntry | Commit.PostpaidCommitManualLedgerEntry | Commit.PostpaidCommitExpirationLedgerEntry>;
50
61
  name?: string;
51
62
  /**
52
63
  * This field's availability is dependent on your client's configuration.
@@ -64,6 +75,12 @@ export interface Commit {
64
75
  * This field's availability is dependent on your client's configuration.
65
76
  */
66
77
  salesforce_opportunity_id?: string;
78
+ /**
79
+ * List of filters that determine what kind of customer usage draws down a commit
80
+ * or credit. A customer's usage needs to meet the condition of at least one of the
81
+ * specifiers to contribute to a commit's or credit's drawdown.
82
+ */
83
+ specifiers?: Array<Commit.Specifier>;
67
84
  /**
68
85
  * Prevents the creation of duplicates. If a request to create a commit or credit
69
86
  * is made with a uniqueness key that was previously used to create a commit or
@@ -80,6 +97,24 @@ export declare namespace Commit {
80
97
  interface Contract {
81
98
  id: string;
82
99
  }
100
+ /**
101
+ * Optional configuration for commit hierarchy access control
102
+ */
103
+ interface HierarchyConfiguration {
104
+ child_access: HierarchyConfiguration.CommitHierarchyChildAccessAll | HierarchyConfiguration.CommitHierarchyChildAccessNone | HierarchyConfiguration.CommitHierarchyChildAccessContractIDs;
105
+ }
106
+ namespace HierarchyConfiguration {
107
+ interface CommitHierarchyChildAccessAll {
108
+ type: 'ALL';
109
+ }
110
+ interface CommitHierarchyChildAccessNone {
111
+ type: 'NONE';
112
+ }
113
+ interface CommitHierarchyChildAccessContractIDs {
114
+ contract_ids: Array<string>;
115
+ type: 'CONTRACT_IDS';
116
+ }
117
+ }
83
118
  /**
84
119
  * The contract that this commit will be billed on.
85
120
  */
@@ -126,6 +161,12 @@ export declare namespace Commit {
126
161
  timestamp: string;
127
162
  type: 'PREPAID_COMMIT_CREDITED';
128
163
  }
164
+ interface PrepaidCommitSeatBasedAdjustmentLedgerEntry {
165
+ amount: number;
166
+ segment_id: string;
167
+ timestamp: string;
168
+ type: 'PREPAID_COMMIT_SEAT_BASED_ADJUSTMENT';
169
+ }
129
170
  interface PostpaidCommitInitialBalanceLedgerEntry {
130
171
  amount: number;
131
172
  timestamp: string;
@@ -172,6 +213,23 @@ export declare namespace Commit {
172
213
  commit_id: string;
173
214
  contract_id: string;
174
215
  }
216
+ interface Specifier {
217
+ presentation_group_values?: {
218
+ [key: string]: string;
219
+ };
220
+ pricing_group_values?: {
221
+ [key: string]: string;
222
+ };
223
+ /**
224
+ * If provided, the specifier will only apply to the product with the specified ID.
225
+ */
226
+ product_id?: string;
227
+ /**
228
+ * If provided, the specifier will only apply to products with all the specified
229
+ * tags.
230
+ */
231
+ product_tags?: Array<string>;
232
+ }
175
233
  }
176
234
  export interface ContractWithoutAmendments {
177
235
  commits: Array<Commit>;
@@ -188,12 +246,18 @@ export interface ContractWithoutAmendments {
188
246
  */
189
247
  discounts?: Array<Discount>;
190
248
  ending_before?: string;
249
+ /**
250
+ * Either a **parent** configuration with a list of children or a **child**
251
+ * configuration with a single parent.
252
+ */
253
+ hierarchy_configuration?: ContractWithoutAmendments.ParentHierarchyConfiguration | ContractWithoutAmendments.ChildHierarchyConfiguration;
191
254
  name?: string;
192
255
  net_payment_terms_days?: number;
193
256
  /**
194
257
  * This field's availability is dependent on your client's configuration.
195
258
  */
196
259
  netsuite_sales_order_id?: string;
260
+ prepaid_balance_threshold_configuration?: ContractWithoutAmendments.PrepaidBalanceThresholdConfiguration;
197
261
  /**
198
262
  * This field's availability is dependent on your client's configuration.
199
263
  */
@@ -217,7 +281,7 @@ export interface ContractWithoutAmendments {
217
281
  * on a separate invoice from usage charges.
218
282
  */
219
283
  scheduled_charges_on_usage_invoices?: 'ALL';
220
- threshold_billing_configuration?: ContractWithoutAmendments.ThresholdBillingConfiguration;
284
+ spend_threshold_configuration?: ContractWithoutAmendments.SpendThresholdConfiguration;
221
285
  /**
222
286
  * This field's availability is dependent on your client's configuration.
223
287
  */
@@ -235,7 +299,167 @@ export declare namespace ContractWithoutAmendments {
235
299
  * Contract usage statements follow a selected cadence based on this date.
236
300
  */
237
301
  billing_anchor_date: string;
238
- frequency: 'MONTHLY' | 'QUARTERLY' | 'ANNUAL';
302
+ frequency: 'MONTHLY' | 'QUARTERLY' | 'ANNUAL' | 'WEEKLY';
303
+ }
304
+ interface ParentHierarchyConfiguration {
305
+ /**
306
+ * List of contracts that belong to this parent.
307
+ */
308
+ children: Array<ParentHierarchyConfiguration.Child>;
309
+ }
310
+ namespace ParentHierarchyConfiguration {
311
+ interface Child {
312
+ contract_id: string;
313
+ customer_id: string;
314
+ }
315
+ }
316
+ interface ChildHierarchyConfiguration {
317
+ /**
318
+ * The single parent contract/customer for this child.
319
+ */
320
+ parent: ChildHierarchyConfiguration.Parent;
321
+ }
322
+ namespace ChildHierarchyConfiguration {
323
+ /**
324
+ * The single parent contract/customer for this child.
325
+ */
326
+ interface Parent {
327
+ contract_id: string;
328
+ customer_id: string;
329
+ }
330
+ }
331
+ interface PrepaidBalanceThresholdConfiguration {
332
+ commit: PrepaidBalanceThresholdConfiguration.Commit;
333
+ /**
334
+ * When set to false, the contract will not be evaluated against the
335
+ * threshold_amount. Toggling to true will result an immediate evaluation,
336
+ * regardless of prior state.
337
+ */
338
+ is_enabled: boolean;
339
+ payment_gate_config: PrepaidBalanceThresholdConfiguration.PaymentGateConfig;
340
+ /**
341
+ * Specify the amount the balance should be recharged to.
342
+ */
343
+ recharge_to_amount: number;
344
+ /**
345
+ * Specify the threshold amount for the contract. Each time the contract's prepaid
346
+ * balance lowers to this amount, a threshold charge will be initiated.
347
+ */
348
+ threshold_amount: number;
349
+ /**
350
+ * If provided, the threshold, recharge-to amount, and the resulting threshold
351
+ * commit amount will be in terms of this credit type instead of the fiat currency.
352
+ */
353
+ custom_credit_type_id?: string;
354
+ }
355
+ namespace PrepaidBalanceThresholdConfiguration {
356
+ interface Commit {
357
+ /**
358
+ * The commit product that will be used to generate the line item for commit
359
+ * payment.
360
+ */
361
+ product_id: string;
362
+ /**
363
+ * Which products the threshold commit applies to. If applicable_product_ids,
364
+ * applicable_product_tags or specifiers are not provided, the commit applies to
365
+ * all products.
366
+ */
367
+ applicable_product_ids?: Array<string>;
368
+ /**
369
+ * Which tags the threshold commit applies to. If applicable_product_ids,
370
+ * applicable_product_tags or specifiers are not provided, the commit applies to
371
+ * all products.
372
+ */
373
+ applicable_product_tags?: Array<string>;
374
+ description?: string;
375
+ /**
376
+ * Specify the name of the line item for the threshold charge. If left blank, it
377
+ * will default to the commit product name.
378
+ */
379
+ name?: string;
380
+ /**
381
+ * List of filters that determine what kind of customer usage draws down a commit
382
+ * or credit. A customer's usage needs to meet the condition of at least one of the
383
+ * specifiers to contribute to a commit's or credit's drawdown. This field cannot
384
+ * be used together with `applicable_product_ids` or `applicable_product_tags`.
385
+ */
386
+ specifiers?: Array<Commit.Specifier>;
387
+ }
388
+ namespace Commit {
389
+ interface Specifier {
390
+ presentation_group_values?: {
391
+ [key: string]: string;
392
+ };
393
+ pricing_group_values?: {
394
+ [key: string]: string;
395
+ };
396
+ /**
397
+ * If provided, the specifier will only apply to the product with the specified ID.
398
+ */
399
+ product_id?: string;
400
+ /**
401
+ * If provided, the specifier will only apply to products with all the specified
402
+ * tags.
403
+ */
404
+ product_tags?: Array<string>;
405
+ }
406
+ }
407
+ interface PaymentGateConfig {
408
+ /**
409
+ * Gate access to the commit balance based on successful collection of payment.
410
+ * Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
411
+ * facilitate payment using your own payment integration. Select NONE if you do not
412
+ * wish to payment gate the commit balance.
413
+ */
414
+ payment_gate_type: 'NONE' | 'STRIPE' | 'EXTERNAL';
415
+ /**
416
+ * Only applicable if using PRECALCULATED as your tax type.
417
+ */
418
+ precalculated_tax_config?: PaymentGateConfig.PrecalculatedTaxConfig;
419
+ /**
420
+ * Only applicable if using STRIPE as your payment gate type.
421
+ */
422
+ stripe_config?: PaymentGateConfig.StripeConfig;
423
+ /**
424
+ * Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
425
+ * not wish Metronome to calculate tax on your behalf. Leaving this field blank
426
+ * will default to NONE.
427
+ */
428
+ tax_type?: 'NONE' | 'STRIPE' | 'ANROK' | 'PRECALCULATED';
429
+ }
430
+ namespace PaymentGateConfig {
431
+ /**
432
+ * Only applicable if using PRECALCULATED as your tax type.
433
+ */
434
+ interface PrecalculatedTaxConfig {
435
+ /**
436
+ * Amount of tax to be applied. This should be in the same currency and
437
+ * denomination as the commit's invoice schedule
438
+ */
439
+ tax_amount: number;
440
+ /**
441
+ * Name of the tax to be applied. This may be used in an invoice line item
442
+ * description.
443
+ */
444
+ tax_name?: string;
445
+ }
446
+ /**
447
+ * Only applicable if using STRIPE as your payment gate type.
448
+ */
449
+ interface StripeConfig {
450
+ /**
451
+ * If left blank, will default to INVOICE
452
+ */
453
+ payment_type: 'INVOICE' | 'PAYMENT_INTENT';
454
+ /**
455
+ * Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
456
+ * your payment type.
457
+ */
458
+ invoice_metadata?: {
459
+ [key: string]: string;
460
+ };
461
+ }
462
+ }
239
463
  }
240
464
  interface RecurringCommit {
241
465
  id: string;
@@ -277,6 +501,10 @@ export declare namespace ContractWithoutAmendments {
277
501
  * Determines when the contract will stop creating recurring commits. Optional
278
502
  */
279
503
  ending_before?: string;
504
+ /**
505
+ * Optional configuration for recurring commit/credit hierarchy access control
506
+ */
507
+ hierarchy_configuration?: RecurringCommit.HierarchyConfiguration;
280
508
  /**
281
509
  * The amount the customer should be billed for the commit. Not required.
282
510
  */
@@ -298,16 +526,22 @@ export declare namespace ContractWithoutAmendments {
298
526
  * The frequency at which the recurring commits will be created. If not provided: -
299
527
  * The commits will be created on the usage invoice frequency. If provided: - The
300
528
  * period defined in the duration will correspond to this frequency. - Commits will
301
- * be created aligned with the recurring commit's start_date rather than the usage
529
+ * be created aligned with the recurring commit's starting_at rather than the usage
302
530
  * invoice dates.
303
531
  */
304
- recurrence_frequency?: 'MONTHLY' | 'QUARTERLY' | 'ANNUAL';
532
+ recurrence_frequency?: 'MONTHLY' | 'QUARTERLY' | 'ANNUAL' | 'WEEKLY';
305
533
  /**
306
534
  * Will be passed down to the individual commits. This controls how much of an
307
535
  * individual unexpired commit will roll over upon contract transition. Must be
308
536
  * between 0 and 1.
309
537
  */
310
538
  rollover_fraction?: number;
539
+ /**
540
+ * List of filters that determine what kind of customer usage draws down a commit
541
+ * or credit. A customer's usage needs to meet the condition of at least one of the
542
+ * specifiers to contribute to a commit's or credit's drawdown.
543
+ */
544
+ specifiers?: Array<RecurringCommit.Specifier>;
311
545
  }
312
546
  namespace RecurringCommit {
313
547
  /**
@@ -315,8 +549,8 @@ export declare namespace ContractWithoutAmendments {
315
549
  */
316
550
  interface AccessAmount {
317
551
  credit_type_id: string;
318
- quantity: number;
319
552
  unit_price: number;
553
+ quantity?: number;
320
554
  }
321
555
  /**
322
556
  * The amount of time the created commits will be valid for
@@ -332,6 +566,24 @@ export declare namespace ContractWithoutAmendments {
332
566
  interface Contract {
333
567
  id: string;
334
568
  }
569
+ /**
570
+ * Optional configuration for recurring commit/credit hierarchy access control
571
+ */
572
+ interface HierarchyConfiguration {
573
+ child_access: HierarchyConfiguration.CommitHierarchyChildAccessAll | HierarchyConfiguration.CommitHierarchyChildAccessNone | HierarchyConfiguration.CommitHierarchyChildAccessContractIDs;
574
+ }
575
+ namespace HierarchyConfiguration {
576
+ interface CommitHierarchyChildAccessAll {
577
+ type: 'ALL';
578
+ }
579
+ interface CommitHierarchyChildAccessNone {
580
+ type: 'NONE';
581
+ }
582
+ interface CommitHierarchyChildAccessContractIDs {
583
+ contract_ids: Array<string>;
584
+ type: 'CONTRACT_IDS';
585
+ }
586
+ }
335
587
  /**
336
588
  * The amount the customer should be billed for the commit. Not required.
337
589
  */
@@ -340,6 +592,23 @@ export declare namespace ContractWithoutAmendments {
340
592
  quantity: number;
341
593
  unit_price: number;
342
594
  }
595
+ interface Specifier {
596
+ presentation_group_values?: {
597
+ [key: string]: string;
598
+ };
599
+ pricing_group_values?: {
600
+ [key: string]: string;
601
+ };
602
+ /**
603
+ * If provided, the specifier will only apply to the product with the specified ID.
604
+ */
605
+ product_id?: string;
606
+ /**
607
+ * If provided, the specifier will only apply to products with all the specified
608
+ * tags.
609
+ */
610
+ product_tags?: Array<string>;
611
+ }
343
612
  }
344
613
  interface RecurringCredit {
345
614
  id: string;
@@ -381,6 +650,10 @@ export declare namespace ContractWithoutAmendments {
381
650
  * Determines when the contract will stop creating recurring commits. Optional
382
651
  */
383
652
  ending_before?: string;
653
+ /**
654
+ * Optional configuration for recurring commit/credit hierarchy access control
655
+ */
656
+ hierarchy_configuration?: RecurringCredit.HierarchyConfiguration;
384
657
  /**
385
658
  * Displayed on invoices. Will be passed through to the individual commits
386
659
  */
@@ -398,16 +671,22 @@ export declare namespace ContractWithoutAmendments {
398
671
  * The frequency at which the recurring commits will be created. If not provided: -
399
672
  * The commits will be created on the usage invoice frequency. If provided: - The
400
673
  * period defined in the duration will correspond to this frequency. - Commits will
401
- * be created aligned with the recurring commit's start_date rather than the usage
674
+ * be created aligned with the recurring commit's starting_at rather than the usage
402
675
  * invoice dates.
403
676
  */
404
- recurrence_frequency?: 'MONTHLY' | 'QUARTERLY' | 'ANNUAL';
677
+ recurrence_frequency?: 'MONTHLY' | 'QUARTERLY' | 'ANNUAL' | 'WEEKLY';
405
678
  /**
406
679
  * Will be passed down to the individual commits. This controls how much of an
407
680
  * individual unexpired commit will roll over upon contract transition. Must be
408
681
  * between 0 and 1.
409
682
  */
410
683
  rollover_fraction?: number;
684
+ /**
685
+ * List of filters that determine what kind of customer usage draws down a commit
686
+ * or credit. A customer's usage needs to meet the condition of at least one of the
687
+ * specifiers to contribute to a commit's or credit's drawdown.
688
+ */
689
+ specifiers?: Array<RecurringCredit.Specifier>;
411
690
  }
412
691
  namespace RecurringCredit {
413
692
  /**
@@ -415,8 +694,8 @@ export declare namespace ContractWithoutAmendments {
415
694
  */
416
695
  interface AccessAmount {
417
696
  credit_type_id: string;
418
- quantity: number;
419
697
  unit_price: number;
698
+ quantity?: number;
420
699
  }
421
700
  /**
422
701
  * The amount of time the created commits will be valid for
@@ -432,6 +711,41 @@ export declare namespace ContractWithoutAmendments {
432
711
  interface Contract {
433
712
  id: string;
434
713
  }
714
+ /**
715
+ * Optional configuration for recurring commit/credit hierarchy access control
716
+ */
717
+ interface HierarchyConfiguration {
718
+ child_access: HierarchyConfiguration.CommitHierarchyChildAccessAll | HierarchyConfiguration.CommitHierarchyChildAccessNone | HierarchyConfiguration.CommitHierarchyChildAccessContractIDs;
719
+ }
720
+ namespace HierarchyConfiguration {
721
+ interface CommitHierarchyChildAccessAll {
722
+ type: 'ALL';
723
+ }
724
+ interface CommitHierarchyChildAccessNone {
725
+ type: 'NONE';
726
+ }
727
+ interface CommitHierarchyChildAccessContractIDs {
728
+ contract_ids: Array<string>;
729
+ type: 'CONTRACT_IDS';
730
+ }
731
+ }
732
+ interface Specifier {
733
+ presentation_group_values?: {
734
+ [key: string]: string;
735
+ };
736
+ pricing_group_values?: {
737
+ [key: string]: string;
738
+ };
739
+ /**
740
+ * If provided, the specifier will only apply to the product with the specified ID.
741
+ */
742
+ product_id?: string;
743
+ /**
744
+ * If provided, the specifier will only apply to products with all the specified
745
+ * tags.
746
+ */
747
+ product_tags?: Array<string>;
748
+ }
435
749
  }
436
750
  interface ResellerRoyalty {
437
751
  fraction: number;
@@ -448,34 +762,28 @@ export declare namespace ContractWithoutAmendments {
448
762
  gcp_offer_id?: string;
449
763
  reseller_contract_value?: number;
450
764
  }
451
- interface ThresholdBillingConfiguration {
452
- commit: ThresholdBillingConfiguration.Commit;
765
+ interface SpendThresholdConfiguration {
766
+ commit: SpendThresholdConfiguration.Commit;
453
767
  /**
454
768
  * When set to false, the contract will not be evaluated against the
455
769
  * threshold_amount. Toggling to true will result an immediate evaluation,
456
- * regardless of prior state
770
+ * regardless of prior state.
457
771
  */
458
772
  is_enabled: boolean;
773
+ payment_gate_config: SpendThresholdConfiguration.PaymentGateConfig;
459
774
  /**
460
775
  * Specify the threshold amount for the contract. Each time the contract's usage
461
776
  * hits this amount, a threshold charge will be initiated.
462
777
  */
463
778
  threshold_amount: number;
464
779
  }
465
- namespace ThresholdBillingConfiguration {
780
+ namespace SpendThresholdConfiguration {
466
781
  interface Commit {
467
- product_id: string;
468
- /**
469
- * Which products the threshold commit applies to. If both applicable_product_ids
470
- * and applicable_product_tags are not provided, the commit applies to all
471
- * products.
472
- */
473
- applicable_product_ids?: Array<string>;
474
782
  /**
475
- * Which tags the threshold commit applies to. If both applicable_product_ids and
476
- * applicable_product_tags are not provided, the commit applies to all products.
783
+ * The commit product that will be used to generate the line item for commit
784
+ * payment.
477
785
  */
478
- applicable_product_tags?: Array<string>;
786
+ product_id: string;
479
787
  description?: string;
480
788
  /**
481
789
  * Specify the name of the line item for the threshold charge. If left blank, it
@@ -483,6 +791,62 @@ export declare namespace ContractWithoutAmendments {
483
791
  */
484
792
  name?: string;
485
793
  }
794
+ interface PaymentGateConfig {
795
+ /**
796
+ * Gate access to the commit balance based on successful collection of payment.
797
+ * Select STRIPE for Metronome to facilitate payment via Stripe. Select EXTERNAL to
798
+ * facilitate payment using your own payment integration. Select NONE if you do not
799
+ * wish to payment gate the commit balance.
800
+ */
801
+ payment_gate_type: 'NONE' | 'STRIPE' | 'EXTERNAL';
802
+ /**
803
+ * Only applicable if using PRECALCULATED as your tax type.
804
+ */
805
+ precalculated_tax_config?: PaymentGateConfig.PrecalculatedTaxConfig;
806
+ /**
807
+ * Only applicable if using STRIPE as your payment gate type.
808
+ */
809
+ stripe_config?: PaymentGateConfig.StripeConfig;
810
+ /**
811
+ * Stripe tax is only supported for Stripe payment gateway. Select NONE if you do
812
+ * not wish Metronome to calculate tax on your behalf. Leaving this field blank
813
+ * will default to NONE.
814
+ */
815
+ tax_type?: 'NONE' | 'STRIPE' | 'ANROK' | 'PRECALCULATED';
816
+ }
817
+ namespace PaymentGateConfig {
818
+ /**
819
+ * Only applicable if using PRECALCULATED as your tax type.
820
+ */
821
+ interface PrecalculatedTaxConfig {
822
+ /**
823
+ * Amount of tax to be applied. This should be in the same currency and
824
+ * denomination as the commit's invoice schedule
825
+ */
826
+ tax_amount: number;
827
+ /**
828
+ * Name of the tax to be applied. This may be used in an invoice line item
829
+ * description.
830
+ */
831
+ tax_name?: string;
832
+ }
833
+ /**
834
+ * Only applicable if using STRIPE as your payment gate type.
835
+ */
836
+ interface StripeConfig {
837
+ /**
838
+ * If left blank, will default to INVOICE
839
+ */
840
+ payment_type: 'INVOICE' | 'PAYMENT_INTENT';
841
+ /**
842
+ * Metadata to be added to the Stripe invoice. Only applicable if using INVOICE as
843
+ * your payment type.
844
+ */
845
+ invoice_metadata?: {
846
+ [key: string]: string;
847
+ };
848
+ }
849
+ }
486
850
  }
487
851
  interface UsageFilter {
488
852
  current: Shared.BaseUsageFilter | null;
@@ -520,13 +884,19 @@ export interface Credit {
520
884
  */
521
885
  balance?: number;
522
886
  contract?: Credit.Contract;
523
- custom_fields?: Record<string, string>;
887
+ custom_fields?: {
888
+ [key: string]: string;
889
+ };
524
890
  description?: string;
891
+ /**
892
+ * Optional configuration for credit hierarchy access control
893
+ */
894
+ hierarchy_configuration?: Credit.HierarchyConfiguration;
525
895
  /**
526
896
  * A list of ordered events that impact the balance of a credit. For example, an
527
897
  * invoice deduction or an expiration.
528
898
  */
529
- ledger?: Array<Credit.CreditSegmentStartLedgerEntry | Credit.CreditAutomatedInvoiceDeductionLedgerEntry | Credit.CreditExpirationLedgerEntry | Credit.CreditCanceledLedgerEntry | Credit.CreditCreditedLedgerEntry | Credit.CreditManualLedgerEntry>;
899
+ ledger?: Array<Credit.CreditSegmentStartLedgerEntry | Credit.CreditAutomatedInvoiceDeductionLedgerEntry | Credit.CreditExpirationLedgerEntry | Credit.CreditCanceledLedgerEntry | Credit.CreditCreditedLedgerEntry | Credit.CreditManualLedgerEntry | Credit.CreditSeatBasedAdjustmentLedgerEntry>;
530
900
  name?: string;
531
901
  /**
532
902
  * This field's availability is dependent on your client's configuration.
@@ -542,6 +912,12 @@ export interface Credit {
542
912
  * This field's availability is dependent on your client's configuration.
543
913
  */
544
914
  salesforce_opportunity_id?: string;
915
+ /**
916
+ * List of filters that determine what kind of customer usage draws down a commit
917
+ * or credit. A customer's usage needs to meet the condition of at least one of the
918
+ * specifiers to contribute to a commit's or credit's drawdown.
919
+ */
920
+ specifiers?: Array<Credit.Specifier>;
545
921
  /**
546
922
  * Prevents the creation of duplicates. If a request to create a commit or credit
547
923
  * is made with a uniqueness key that was previously used to create a commit or
@@ -558,6 +934,24 @@ export declare namespace Credit {
558
934
  interface Contract {
559
935
  id: string;
560
936
  }
937
+ /**
938
+ * Optional configuration for credit hierarchy access control
939
+ */
940
+ interface HierarchyConfiguration {
941
+ child_access: HierarchyConfiguration.CommitHierarchyChildAccessAll | HierarchyConfiguration.CommitHierarchyChildAccessNone | HierarchyConfiguration.CommitHierarchyChildAccessContractIDs;
942
+ }
943
+ namespace HierarchyConfiguration {
944
+ interface CommitHierarchyChildAccessAll {
945
+ type: 'ALL';
946
+ }
947
+ interface CommitHierarchyChildAccessNone {
948
+ type: 'NONE';
949
+ }
950
+ interface CommitHierarchyChildAccessContractIDs {
951
+ contract_ids: Array<string>;
952
+ type: 'CONTRACT_IDS';
953
+ }
954
+ }
561
955
  interface CreditSegmentStartLedgerEntry {
562
956
  amount: number;
563
957
  segment_id: string;
@@ -597,6 +991,29 @@ export declare namespace Credit {
597
991
  timestamp: string;
598
992
  type: 'CREDIT_MANUAL';
599
993
  }
994
+ interface CreditSeatBasedAdjustmentLedgerEntry {
995
+ amount: number;
996
+ segment_id: string;
997
+ timestamp: string;
998
+ type: 'CREDIT_SEAT_BASED_ADJUSTMENT';
999
+ }
1000
+ interface Specifier {
1001
+ presentation_group_values?: {
1002
+ [key: string]: string;
1003
+ };
1004
+ pricing_group_values?: {
1005
+ [key: string]: string;
1006
+ };
1007
+ /**
1008
+ * If provided, the specifier will only apply to the product with the specified ID.
1009
+ */
1010
+ product_id?: string;
1011
+ /**
1012
+ * If provided, the specifier will only apply to products with all the specified
1013
+ * tags.
1014
+ */
1015
+ product_tags?: Array<string>;
1016
+ }
600
1017
  }
601
1018
  export interface CreditTypeData {
602
1019
  id: string;
@@ -606,7 +1023,9 @@ export interface Discount {
606
1023
  id: string;
607
1024
  product: Discount.Product;
608
1025
  schedule: SchedulePointInTime;
609
- custom_fields?: Record<string, string>;
1026
+ custom_fields?: {
1027
+ [key: string]: string;
1028
+ };
610
1029
  name?: string;
611
1030
  /**
612
1031
  * This field's availability is dependent on your client's configuration.
@@ -678,14 +1097,20 @@ export interface Override {
678
1097
  * Only set for CUSTOM rate_type. This field is interpreted by custom rate
679
1098
  * processors.
680
1099
  */
681
- value?: Record<string, unknown>;
1100
+ value?: {
1101
+ [key: string]: unknown;
1102
+ };
682
1103
  }
683
1104
  export declare namespace Override {
684
1105
  interface OverrideSpecifier {
685
- billing_frequency?: 'MONTHLY' | 'QUARTERLY' | 'ANNUAL';
1106
+ billing_frequency?: 'MONTHLY' | 'QUARTERLY' | 'ANNUAL' | 'WEEKLY';
686
1107
  commit_ids?: Array<string>;
687
- presentation_group_values?: Record<string, string | null>;
688
- pricing_group_values?: Record<string, string>;
1108
+ presentation_group_values?: {
1109
+ [key: string]: string | null;
1110
+ };
1111
+ pricing_group_values?: {
1112
+ [key: string]: string;
1113
+ };
689
1114
  product_id?: string;
690
1115
  product_tags?: Array<string>;
691
1116
  recurring_commit_ids?: Array<string>;
@@ -702,7 +1127,9 @@ export declare namespace Override {
702
1127
  * Only set for CUSTOM rate_type. This field is interpreted by custom rate
703
1128
  * processors.
704
1129
  */
705
- custom_rate?: Record<string, unknown>;
1130
+ custom_rate?: {
1131
+ [key: string]: unknown;
1132
+ };
706
1133
  /**
707
1134
  * Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
708
1135
  * set to true.
@@ -771,7 +1198,9 @@ export interface ProService {
771
1198
  * amount and must be specified.
772
1199
  */
773
1200
  unit_price: number;
774
- custom_fields?: Record<string, string>;
1201
+ custom_fields?: {
1202
+ [key: string]: string;
1203
+ };
775
1204
  description?: string;
776
1205
  /**
777
1206
  * This field's availability is dependent on your client's configuration.
@@ -785,7 +1214,9 @@ export interface Rate {
785
1214
  * Only set for CUSTOM rate_type. This field is interpreted by custom rate
786
1215
  * processors.
787
1216
  */
788
- custom_rate?: Record<string, unknown>;
1217
+ custom_rate?: {
1218
+ [key: string]: unknown;
1219
+ };
789
1220
  /**
790
1221
  * Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
791
1222
  * set to true.
@@ -800,7 +1231,9 @@ export interface Rate {
800
1231
  * if pricing groups are used, this will contain the values used to calculate the
801
1232
  * price
802
1233
  */
803
- pricing_group_values?: Record<string, string>;
1234
+ pricing_group_values?: {
1235
+ [key: string]: string;
1236
+ };
804
1237
  /**
805
1238
  * Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
806
1239
  */
@@ -820,7 +1253,10 @@ export interface ScheduledCharge {
820
1253
  id: string;
821
1254
  product: ScheduledCharge.Product;
822
1255
  schedule: SchedulePointInTime;
823
- custom_fields?: Record<string, string>;
1256
+ archived_at?: string;
1257
+ custom_fields?: {
1258
+ [key: string]: string;
1259
+ };
824
1260
  /**
825
1261
  * displayed on invoices
826
1262
  */
@@ -856,10 +1292,10 @@ export declare namespace SchedulePointInTime {
856
1292
  interface ScheduleItem {
857
1293
  id: string;
858
1294
  amount: number;
859
- invoice_id: string;
860
1295
  quantity: number;
861
1296
  timestamp: string;
862
1297
  unit_price: number;
1298
+ invoice_id?: string | null;
863
1299
  }
864
1300
  }
865
1301
  export interface Tier {