@metronome/sdk 0.1.0-alpha.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 (284) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/LICENSE +201 -0
  3. package/README.md +313 -0
  4. package/_shims/MultipartBody.d.ts +9 -0
  5. package/_shims/MultipartBody.d.ts.map +1 -0
  6. package/_shims/MultipartBody.js +16 -0
  7. package/_shims/MultipartBody.js.map +1 -0
  8. package/_shims/MultipartBody.mjs +12 -0
  9. package/_shims/MultipartBody.mjs.map +1 -0
  10. package/_shims/README.md +46 -0
  11. package/_shims/auto/runtime-bun.d.ts +5 -0
  12. package/_shims/auto/runtime-bun.d.ts.map +1 -0
  13. package/_shims/auto/runtime-bun.js +21 -0
  14. package/_shims/auto/runtime-bun.js.map +1 -0
  15. package/_shims/auto/runtime-bun.mjs +2 -0
  16. package/_shims/auto/runtime-bun.mjs.map +1 -0
  17. package/_shims/auto/runtime-node.d.ts +5 -0
  18. package/_shims/auto/runtime-node.d.ts.map +1 -0
  19. package/_shims/auto/runtime-node.js +21 -0
  20. package/_shims/auto/runtime-node.js.map +1 -0
  21. package/_shims/auto/runtime-node.mjs +2 -0
  22. package/_shims/auto/runtime-node.mjs.map +1 -0
  23. package/_shims/auto/runtime.d.ts +5 -0
  24. package/_shims/auto/runtime.d.ts.map +1 -0
  25. package/_shims/auto/runtime.js +21 -0
  26. package/_shims/auto/runtime.js.map +1 -0
  27. package/_shims/auto/runtime.mjs +2 -0
  28. package/_shims/auto/runtime.mjs.map +1 -0
  29. package/_shims/auto/types-node.d.ts +5 -0
  30. package/_shims/auto/types-node.d.ts.map +1 -0
  31. package/_shims/auto/types-node.js +21 -0
  32. package/_shims/auto/types-node.js.map +1 -0
  33. package/_shims/auto/types-node.mjs +2 -0
  34. package/_shims/auto/types-node.mjs.map +1 -0
  35. package/_shims/auto/types.d.ts +101 -0
  36. package/_shims/auto/types.js +3 -0
  37. package/_shims/auto/types.mjs +3 -0
  38. package/_shims/bun-runtime.d.ts +6 -0
  39. package/_shims/bun-runtime.d.ts.map +1 -0
  40. package/_shims/bun-runtime.js +14 -0
  41. package/_shims/bun-runtime.js.map +1 -0
  42. package/_shims/bun-runtime.mjs +10 -0
  43. package/_shims/bun-runtime.mjs.map +1 -0
  44. package/_shims/index.d.ts +81 -0
  45. package/_shims/index.js +13 -0
  46. package/_shims/index.mjs +7 -0
  47. package/_shims/manual-types.d.ts +12 -0
  48. package/_shims/manual-types.js +3 -0
  49. package/_shims/manual-types.mjs +3 -0
  50. package/_shims/node-runtime.d.ts +3 -0
  51. package/_shims/node-runtime.d.ts.map +1 -0
  52. package/_shims/node-runtime.js +90 -0
  53. package/_shims/node-runtime.js.map +1 -0
  54. package/_shims/node-runtime.mjs +56 -0
  55. package/_shims/node-runtime.mjs.map +1 -0
  56. package/_shims/node-types.d.ts +42 -0
  57. package/_shims/node-types.js +3 -0
  58. package/_shims/node-types.mjs +3 -0
  59. package/_shims/registry.d.ts +37 -0
  60. package/_shims/registry.d.ts.map +1 -0
  61. package/_shims/registry.js +41 -0
  62. package/_shims/registry.js.map +1 -0
  63. package/_shims/registry.mjs +37 -0
  64. package/_shims/registry.mjs.map +1 -0
  65. package/_shims/web-runtime.d.ts +5 -0
  66. package/_shims/web-runtime.d.ts.map +1 -0
  67. package/_shims/web-runtime.js +78 -0
  68. package/_shims/web-runtime.js.map +1 -0
  69. package/_shims/web-runtime.mjs +71 -0
  70. package/_shims/web-runtime.mjs.map +1 -0
  71. package/_shims/web-types.d.ts +83 -0
  72. package/_shims/web-types.js +3 -0
  73. package/_shims/web-types.mjs +3 -0
  74. package/core.d.ts +237 -0
  75. package/core.d.ts.map +1 -0
  76. package/core.js +868 -0
  77. package/core.js.map +1 -0
  78. package/core.mjs +837 -0
  79. package/core.mjs.map +1 -0
  80. package/error.d.ts +53 -0
  81. package/error.d.ts.map +1 -0
  82. package/error.js +143 -0
  83. package/error.js.map +1 -0
  84. package/error.mjs +127 -0
  85. package/error.mjs.map +1 -0
  86. package/index.d.mts +210 -0
  87. package/index.d.ts +210 -0
  88. package/index.d.ts.map +1 -0
  89. package/index.js +133 -0
  90. package/index.js.map +1 -0
  91. package/index.mjs +105 -0
  92. package/index.mjs.map +1 -0
  93. package/package.json +106 -0
  94. package/resource.d.ts +6 -0
  95. package/resource.d.ts.map +1 -0
  96. package/resource.js +11 -0
  97. package/resource.js.map +1 -0
  98. package/resource.mjs +7 -0
  99. package/resource.mjs.map +1 -0
  100. package/resources/alerts.d.ts +103 -0
  101. package/resources/alerts.d.ts.map +1 -0
  102. package/resources/alerts.js +23 -0
  103. package/resources/alerts.js.map +1 -0
  104. package/resources/alerts.mjs +19 -0
  105. package/resources/alerts.mjs.map +1 -0
  106. package/resources/audit-logs.d.ts +83 -0
  107. package/resources/audit-logs.d.ts.map +1 -0
  108. package/resources/audit-logs.js +18 -0
  109. package/resources/audit-logs.js.map +1 -0
  110. package/resources/audit-logs.mjs +14 -0
  111. package/resources/audit-logs.mjs.map +1 -0
  112. package/resources/billable-metrics.d.ts +236 -0
  113. package/resources/billable-metrics.d.ts.map +1 -0
  114. package/resources/billable-metrics.js +36 -0
  115. package/resources/billable-metrics.js.map +1 -0
  116. package/resources/billable-metrics.mjs +32 -0
  117. package/resources/billable-metrics.mjs.map +1 -0
  118. package/resources/credit-grants.d.ts +469 -0
  119. package/resources/credit-grants.d.ts.map +1 -0
  120. package/resources/credit-grants.js +50 -0
  121. package/resources/credit-grants.js.map +1 -0
  122. package/resources/credit-grants.mjs +46 -0
  123. package/resources/credit-grants.mjs.map +1 -0
  124. package/resources/custom-fields.d.ts +82 -0
  125. package/resources/custom-fields.d.ts.map +1 -0
  126. package/resources/custom-fields.js +66 -0
  127. package/resources/custom-fields.js.map +1 -0
  128. package/resources/custom-fields.mjs +62 -0
  129. package/resources/custom-fields.mjs.map +1 -0
  130. package/resources/customers/alerts.d.ts +146 -0
  131. package/resources/customers/alerts.d.ts.map +1 -0
  132. package/resources/customers/alerts.js +35 -0
  133. package/resources/customers/alerts.js.map +1 -0
  134. package/resources/customers/alerts.mjs +31 -0
  135. package/resources/customers/alerts.mjs.map +1 -0
  136. package/resources/customers/billing-config.d.ts +64 -0
  137. package/resources/customers/billing-config.d.ts.map +1 -0
  138. package/resources/customers/billing-config.js +37 -0
  139. package/resources/customers/billing-config.js.map +1 -0
  140. package/resources/customers/billing-config.mjs +33 -0
  141. package/resources/customers/billing-config.mjs.map +1 -0
  142. package/resources/customers/customers.d.ts +313 -0
  143. package/resources/customers/customers.d.ts.map +1 -0
  144. package/resources/customers/customers.js +116 -0
  145. package/resources/customers/customers.js.map +1 -0
  146. package/resources/customers/customers.mjs +89 -0
  147. package/resources/customers/customers.mjs.map +1 -0
  148. package/resources/customers/index.d.ts +6 -0
  149. package/resources/customers/index.d.ts.map +1 -0
  150. package/resources/customers/index.js +15 -0
  151. package/resources/customers/index.js.map +1 -0
  152. package/resources/customers/index.mjs +7 -0
  153. package/resources/customers/index.mjs.map +1 -0
  154. package/resources/customers/invoices.d.ts +331 -0
  155. package/resources/customers/invoices.d.ts.map +1 -0
  156. package/resources/customers/invoices.js +30 -0
  157. package/resources/customers/invoices.js.map +1 -0
  158. package/resources/customers/invoices.mjs +26 -0
  159. package/resources/customers/invoices.mjs.map +1 -0
  160. package/resources/customers/plans.d.ts +239 -0
  161. package/resources/customers/plans.d.ts.map +1 -0
  162. package/resources/customers/plans.js +41 -0
  163. package/resources/customers/plans.js.map +1 -0
  164. package/resources/customers/plans.mjs +37 -0
  165. package/resources/customers/plans.mjs.map +1 -0
  166. package/resources/dashboards.d.ts +61 -0
  167. package/resources/dashboards.d.ts.map +1 -0
  168. package/resources/dashboards.js +19 -0
  169. package/resources/dashboards.js.map +1 -0
  170. package/resources/dashboards.mjs +15 -0
  171. package/resources/dashboards.mjs.map +1 -0
  172. package/resources/index.d.ts +13 -0
  173. package/resources/index.d.ts.map +1 -0
  174. package/resources/index.js +42 -0
  175. package/resources/index.js.map +1 -0
  176. package/resources/index.mjs +14 -0
  177. package/resources/index.mjs.map +1 -0
  178. package/resources/plans.d.ts +217 -0
  179. package/resources/plans.d.ts.map +1 -0
  180. package/resources/plans.js +36 -0
  181. package/resources/plans.js.map +1 -0
  182. package/resources/plans.mjs +32 -0
  183. package/resources/plans.mjs.map +1 -0
  184. package/resources/services.d.ts +26 -0
  185. package/resources/services.d.ts.map +1 -0
  186. package/resources/services.js +20 -0
  187. package/resources/services.js.map +1 -0
  188. package/resources/services.mjs +16 -0
  189. package/resources/services.mjs.map +1 -0
  190. package/resources/shared.d.ts +540 -0
  191. package/resources/shared.d.ts.map +1 -0
  192. package/resources/shared.js +4 -0
  193. package/resources/shared.js.map +1 -0
  194. package/resources/shared.mjs +3 -0
  195. package/resources/shared.mjs.map +1 -0
  196. package/resources/usage.d.ts +182 -0
  197. package/resources/usage.d.ts.map +1 -0
  198. package/resources/usage.js +41 -0
  199. package/resources/usage.js.map +1 -0
  200. package/resources/usage.mjs +37 -0
  201. package/resources/usage.mjs.map +1 -0
  202. package/resources/webhooks.d.ts +22 -0
  203. package/resources/webhooks.d.ts.map +1 -0
  204. package/resources/webhooks.js +91 -0
  205. package/resources/webhooks.js.map +1 -0
  206. package/resources/webhooks.mjs +87 -0
  207. package/resources/webhooks.mjs.map +1 -0
  208. package/shims/node.d.ts +29 -0
  209. package/shims/node.d.ts.map +1 -0
  210. package/shims/node.js +31 -0
  211. package/shims/node.js.map +1 -0
  212. package/shims/node.mjs +5 -0
  213. package/shims/node.mjs.map +1 -0
  214. package/shims/web.d.ts +26 -0
  215. package/shims/web.d.ts.map +1 -0
  216. package/shims/web.js +31 -0
  217. package/shims/web.js.map +1 -0
  218. package/shims/web.mjs +5 -0
  219. package/shims/web.mjs.map +1 -0
  220. package/src/_shims/MultipartBody.ts +9 -0
  221. package/src/_shims/README.md +46 -0
  222. package/src/_shims/auto/runtime-bun.ts +4 -0
  223. package/src/_shims/auto/runtime-node.ts +4 -0
  224. package/src/_shims/auto/runtime.ts +4 -0
  225. package/src/_shims/auto/types-node.ts +4 -0
  226. package/src/_shims/auto/types.d.ts +101 -0
  227. package/src/_shims/auto/types.js +3 -0
  228. package/src/_shims/auto/types.mjs +3 -0
  229. package/src/_shims/bun-runtime.ts +14 -0
  230. package/src/_shims/index.d.ts +81 -0
  231. package/src/_shims/index.js +13 -0
  232. package/src/_shims/index.mjs +7 -0
  233. package/src/_shims/manual-types.d.ts +12 -0
  234. package/src/_shims/manual-types.js +3 -0
  235. package/src/_shims/manual-types.mjs +3 -0
  236. package/src/_shims/node-runtime.ts +83 -0
  237. package/src/_shims/node-types.d.ts +42 -0
  238. package/src/_shims/node-types.js +3 -0
  239. package/src/_shims/node-types.mjs +3 -0
  240. package/src/_shims/registry.ts +67 -0
  241. package/src/_shims/web-runtime.ts +103 -0
  242. package/src/_shims/web-types.d.ts +83 -0
  243. package/src/_shims/web-types.js +3 -0
  244. package/src/_shims/web-types.mjs +3 -0
  245. package/src/core.ts +1146 -0
  246. package/src/error.ts +146 -0
  247. package/src/index.ts +303 -0
  248. package/src/lib/.keep +4 -0
  249. package/src/resource.ts +11 -0
  250. package/src/resources/alerts.ts +144 -0
  251. package/src/resources/audit-logs.ts +116 -0
  252. package/src/resources/billable-metrics.ts +341 -0
  253. package/src/resources/credit-grants.ts +627 -0
  254. package/src/resources/custom-fields.ts +242 -0
  255. package/src/resources/customers/alerts.ts +214 -0
  256. package/src/resources/customers/billing-config.ts +183 -0
  257. package/src/resources/customers/customers.ts +500 -0
  258. package/src/resources/customers/index.ts +53 -0
  259. package/src/resources/customers/invoices.ts +533 -0
  260. package/src/resources/customers/plans.ts +363 -0
  261. package/src/resources/dashboards.ts +98 -0
  262. package/src/resources/index.ts +90 -0
  263. package/src/resources/plans.ts +333 -0
  264. package/src/resources/services.ts +35 -0
  265. package/src/resources/shared.ts +849 -0
  266. package/src/resources/usage.ts +245 -0
  267. package/src/resources/webhooks.ts +120 -0
  268. package/src/shims/node.ts +50 -0
  269. package/src/shims/web.ts +50 -0
  270. package/src/tsconfig.json +11 -0
  271. package/src/uploads.ts +248 -0
  272. package/src/version.ts +1 -0
  273. package/uploads.d.ts +75 -0
  274. package/uploads.d.ts.map +1 -0
  275. package/uploads.js +165 -0
  276. package/uploads.js.map +1 -0
  277. package/uploads.mjs +152 -0
  278. package/uploads.mjs.map +1 -0
  279. package/version.d.ts +2 -0
  280. package/version.d.ts.map +1 -0
  281. package/version.js +5 -0
  282. package/version.js.map +1 -0
  283. package/version.mjs +2 -0
  284. package/version.mjs.map +1 -0
@@ -0,0 +1,333 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import * as Core from "../core";
4
+ import { APIResource } from "../resource";
5
+ import { isRequestOptions } from "../core";
6
+ import * as PlansAPI from "./plans";
7
+ import * as Shared from "./shared";
8
+ import * as CustomersAPI from "./customers/customers";
9
+
10
+ export class Plans extends APIResource {
11
+ /**
12
+ * List all available plans.
13
+ */
14
+ list(query?: PlanListParams, options?: Core.RequestOptions): Core.APIPromise<PlanListResponse>;
15
+ list(options?: Core.RequestOptions): Core.APIPromise<PlanListResponse>;
16
+ list(
17
+ query: PlanListParams | Core.RequestOptions = {},
18
+ options?: Core.RequestOptions,
19
+ ): Core.APIPromise<PlanListResponse> {
20
+ if (isRequestOptions(query)) {
21
+ return this.list({}, query);
22
+ }
23
+ return this._client.get('/plans', { query, ...options });
24
+ }
25
+
26
+ /**
27
+ * Fetch high level details of a specific plan.
28
+ */
29
+ getDetails(planId: string, options?: Core.RequestOptions): Core.APIPromise<PlanGetDetailsResponse> {
30
+ return this._client.get(`/planDetails/${planId}`, options);
31
+ }
32
+
33
+ /**
34
+ * Fetches a list of charges of a specific plan.
35
+ */
36
+ listCharges(
37
+ planId: string,
38
+ query?: PlanListChargesParams,
39
+ options?: Core.RequestOptions,
40
+ ): Core.APIPromise<PlanListChargesResponse>;
41
+ listCharges(planId: string, options?: Core.RequestOptions): Core.APIPromise<PlanListChargesResponse>;
42
+ listCharges(
43
+ planId: string,
44
+ query: PlanListChargesParams | Core.RequestOptions = {},
45
+ options?: Core.RequestOptions,
46
+ ): Core.APIPromise<PlanListChargesResponse> {
47
+ if (isRequestOptions(query)) {
48
+ return this.listCharges(planId, {}, query);
49
+ }
50
+ return this._client.get(`/planDetails/${planId}/charges`, { query, ...options });
51
+ }
52
+
53
+ /**
54
+ * Fetches a list of customers on a specific plan (by default, only currently
55
+ * active plans are included)
56
+ */
57
+ listCustomers(
58
+ planId: string,
59
+ query?: PlanListCustomersParams,
60
+ options?: Core.RequestOptions,
61
+ ): Core.APIPromise<PlanListCustomersResponse>;
62
+ listCustomers(planId: string, options?: Core.RequestOptions): Core.APIPromise<PlanListCustomersResponse>;
63
+ listCustomers(
64
+ planId: string,
65
+ query: PlanListCustomersParams | Core.RequestOptions = {},
66
+ options?: Core.RequestOptions,
67
+ ): Core.APIPromise<PlanListCustomersResponse> {
68
+ if (isRequestOptions(query)) {
69
+ return this.listCustomers(planId, {}, query);
70
+ }
71
+ return this._client.get(`/planDetails/${planId}/customers`, { query, ...options });
72
+ }
73
+ }
74
+
75
+ export interface PlanDetail {
76
+ id: string;
77
+
78
+ custom_fields: Record<string, string>;
79
+
80
+ name: string;
81
+
82
+ credit_grants?: Array<PlanDetail.CreditGrant>;
83
+
84
+ description?: string;
85
+
86
+ minimums?: Array<PlanDetail.Minimum>;
87
+
88
+ overage_rates?: Array<PlanDetail.OverageRate>;
89
+ }
90
+
91
+ export namespace PlanDetail {
92
+ export interface CreditGrant {
93
+ amount_granted: number;
94
+
95
+ amount_granted_credit_type: Shared.CreditType;
96
+
97
+ amount_paid: number;
98
+
99
+ amount_paid_credit_type: Shared.CreditType;
100
+
101
+ effective_duration: number;
102
+
103
+ name: string;
104
+
105
+ priority: string;
106
+
107
+ send_invoice: boolean;
108
+
109
+ reason?: string;
110
+
111
+ recurrence_duration?: number;
112
+
113
+ recurrence_interval?: number;
114
+ }
115
+
116
+ export interface Minimum {
117
+ credit_type: Shared.CreditType;
118
+
119
+ name: string;
120
+
121
+ /**
122
+ * Used in price ramps. Indicates how many billing periods pass before the charge
123
+ * applies.
124
+ */
125
+ start_period: number;
126
+
127
+ value: number;
128
+ }
129
+
130
+ export interface OverageRate {
131
+ credit_type: Shared.CreditType;
132
+
133
+ fiat_credit_type: Shared.CreditType;
134
+
135
+ /**
136
+ * Used in price ramps. Indicates how many billing periods pass before the charge
137
+ * applies.
138
+ */
139
+ start_period: number;
140
+
141
+ to_fiat_conversion_factor: number;
142
+ }
143
+ }
144
+
145
+ export interface PlanListResponse {
146
+ data: Array<PlanListResponse.Data>;
147
+
148
+ next_page: string | null;
149
+ }
150
+
151
+ export namespace PlanListResponse {
152
+ export interface Data {
153
+ id: string;
154
+
155
+ description: string;
156
+
157
+ name: string;
158
+
159
+ custom_fields?: Record<string, string>;
160
+ }
161
+ }
162
+
163
+ export interface PlanGetDetailsResponse {
164
+ data: PlanDetail;
165
+ }
166
+
167
+ export interface PlanListChargesResponse {
168
+ data: Array<PlanListChargesResponse.Data>;
169
+
170
+ next_page: string | null;
171
+ }
172
+
173
+ export namespace PlanListChargesResponse {
174
+ export interface Data {
175
+ id: string;
176
+
177
+ charge_type: 'usage' | 'fixed' | 'composite' | 'minimum' | 'seat';
178
+
179
+ credit_type: Shared.CreditType;
180
+
181
+ custom_fields: Record<string, string>;
182
+
183
+ name: string;
184
+
185
+ prices: Array<Data.Price>;
186
+
187
+ product_id: string;
188
+
189
+ product_name: string;
190
+
191
+ quantity?: number;
192
+
193
+ /**
194
+ * Used in price ramps. Indicates how many billing periods pass before the charge
195
+ * applies.
196
+ */
197
+ start_period?: number;
198
+
199
+ /**
200
+ * Specifies how quantities for usage based charges will be converted.
201
+ */
202
+ unit_conversion?: Data.UnitConversion;
203
+ }
204
+
205
+ export namespace Data {
206
+ export interface Price {
207
+ /**
208
+ * Used in pricing tiers. Indicates at what metric value the price applies.
209
+ */
210
+ tier: number;
211
+
212
+ value: number;
213
+
214
+ collection_interval?: number;
215
+
216
+ collection_schedule?: string;
217
+
218
+ quantity?: number;
219
+ }
220
+
221
+ /**
222
+ * Specifies how quantities for usage based charges will be converted.
223
+ */
224
+ export interface UnitConversion {
225
+ /**
226
+ * The conversion factor
227
+ */
228
+ division_factor: number;
229
+
230
+ /**
231
+ * Whether usage should be rounded down or up to the nearest whole number. If null,
232
+ * quantity will be rounded to 20 decimal places.
233
+ */
234
+ rounding_behavior?: 'floor' | 'ceiling';
235
+ }
236
+ }
237
+ }
238
+
239
+ export interface PlanListCustomersResponse {
240
+ data: Array<PlanListCustomersResponse.Data>;
241
+
242
+ next_page: string | null;
243
+ }
244
+
245
+ export namespace PlanListCustomersResponse {
246
+ export interface Data {
247
+ customer_details: CustomersAPI.CustomerDetail;
248
+
249
+ plan_details: Data.PlanDetails;
250
+ }
251
+
252
+ export namespace Data {
253
+ export interface PlanDetails {
254
+ id: string;
255
+
256
+ custom_fields: Record<string, string>;
257
+
258
+ customer_plan_id: string;
259
+
260
+ name: string;
261
+
262
+ /**
263
+ * The start date of the plan
264
+ */
265
+ starting_on: string;
266
+
267
+ /**
268
+ * The end date of the plan
269
+ */
270
+ ending_before?: string | null;
271
+ }
272
+ }
273
+ }
274
+
275
+ export interface PlanListParams {
276
+ /**
277
+ * Max number of results that should be returned
278
+ */
279
+ limit?: number;
280
+
281
+ /**
282
+ * Cursor that indicates where the next page of results should start.
283
+ */
284
+ next_page?: string;
285
+ }
286
+
287
+ export interface PlanListChargesParams {
288
+ /**
289
+ * Max number of results that should be returned
290
+ */
291
+ limit?: number;
292
+
293
+ /**
294
+ * Cursor that indicates where the next page of results should start.
295
+ */
296
+ next_page?: string;
297
+ }
298
+
299
+ export interface PlanListCustomersParams {
300
+ /**
301
+ * Max number of results that should be returned
302
+ */
303
+ limit?: number;
304
+
305
+ /**
306
+ * Cursor that indicates where the next page of results should start.
307
+ */
308
+ next_page?: string;
309
+
310
+ /**
311
+ * Status of customers on a given plan. Defaults to `active`.
312
+ *
313
+ * - `all` - Return current, past, and upcoming customers of the plan.
314
+ * - `active` - Return current customers of the plan.
315
+ * - `ended` - Return past customers of the plan.
316
+ * - `upcoming` - Return upcoming customers of the plan.
317
+ *
318
+ * Multiple statuses can be OR'd together using commas, e.g. `active,ended`.
319
+ * **Note:** `ended,upcoming` combination is not yet supported.
320
+ */
321
+ status?: 'all' | 'active' | 'ended' | 'upcoming';
322
+ }
323
+
324
+ export namespace Plans {
325
+ export import PlanDetail = PlansAPI.PlanDetail;
326
+ export import PlanListResponse = PlansAPI.PlanListResponse;
327
+ export import PlanGetDetailsResponse = PlansAPI.PlanGetDetailsResponse;
328
+ export import PlanListChargesResponse = PlansAPI.PlanListChargesResponse;
329
+ export import PlanListCustomersResponse = PlansAPI.PlanListCustomersResponse;
330
+ export import PlanListParams = PlansAPI.PlanListParams;
331
+ export import PlanListChargesParams = PlansAPI.PlanListChargesParams;
332
+ export import PlanListCustomersParams = PlansAPI.PlanListCustomersParams;
333
+ }
@@ -0,0 +1,35 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import * as Core from "../core";
4
+ import { APIResource } from "../resource";
5
+ import * as ServicesAPI from "./services";
6
+
7
+ export class Services extends APIResource {
8
+ /**
9
+ * Fetches a list of services used by Metronome and the associated IP addresses. IP
10
+ * addresses are not necessarily unique between services. In most cases, IP
11
+ * addresses will appear in the list at least 30 days before they are used for the
12
+ * first time.
13
+ */
14
+ list(options?: Core.RequestOptions): Core.APIPromise<ServiceListResponse> {
15
+ return this._client.get('/services', options);
16
+ }
17
+ }
18
+
19
+ export interface ServiceListResponse {
20
+ services: Array<ServiceListResponse.Service>;
21
+ }
22
+
23
+ export namespace ServiceListResponse {
24
+ export interface Service {
25
+ ips: Array<string>;
26
+
27
+ name: string;
28
+
29
+ usage: 'makes_connections_from' | 'accepts_connections_at';
30
+ }
31
+ }
32
+
33
+ export namespace Services {
34
+ export import ServiceListResponse = ServicesAPI.ServiceListResponse;
35
+ }