@leaflow/sdk 0.0.0-dev.16.gac94fbe → 0.0.0-dev.162.g0bbcd1c

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 (81) hide show
  1. package/README.md +13 -1
  2. package/dist/account/v1/client.d.ts +4 -0
  3. package/dist/account/v1/client.js +7 -0
  4. package/dist/account/v1/index.d.ts +34 -21
  5. package/dist/account/v1/index.js +4 -4
  6. package/dist/account/v1/schema.d.ts +368 -81
  7. package/dist/assistant/v1/client.d.ts +4 -0
  8. package/dist/assistant/v1/client.js +7 -0
  9. package/dist/assistant/v1/index.d.ts +69 -40
  10. package/dist/assistant/v1/index.js +4 -4
  11. package/dist/assistant/v1/schema.d.ts +1089 -133
  12. package/dist/billing/v1/client.d.ts +6 -0
  13. package/dist/billing/v1/client.js +6 -0
  14. package/dist/billing/v1/index.d.ts +193 -0
  15. package/dist/billing/v1/index.js +5 -0
  16. package/dist/billing/v1/schema.d.ts +4713 -0
  17. package/dist/billing/v1/schema.js +5 -0
  18. package/dist/canopy/v1/client.d.ts +4 -0
  19. package/dist/canopy/v1/client.js +7 -0
  20. package/dist/canopy/v1/index.d.ts +24 -23
  21. package/dist/canopy/v1/index.js +4 -4
  22. package/dist/canopy/v1/schema.d.ts +113 -109
  23. package/dist/compute/v1/client.d.ts +4 -0
  24. package/dist/compute/v1/client.js +7 -0
  25. package/dist/compute/v1/index.d.ts +80 -185
  26. package/dist/compute/v1/index.js +4 -4
  27. package/dist/compute/v1/schema.d.ts +808 -2844
  28. package/dist/dns/v1/client.d.ts +4 -0
  29. package/dist/dns/v1/client.js +7 -0
  30. package/dist/dns/v1/index.d.ts +43 -0
  31. package/dist/dns/v1/index.js +5 -0
  32. package/dist/dns/v1/schema.d.ts +887 -0
  33. package/dist/dns/v1/schema.js +5 -0
  34. package/dist/fabric/v1/client.d.ts +4 -0
  35. package/dist/fabric/v1/client.js +7 -0
  36. package/dist/fabric/v1/index.d.ts +115 -0
  37. package/dist/fabric/v1/index.js +5 -0
  38. package/dist/fabric/v1/schema.d.ts +2311 -0
  39. package/dist/fabric/v1/schema.js +5 -0
  40. package/dist/fleet/v1/client.d.ts +4 -0
  41. package/dist/fleet/v1/client.js +7 -0
  42. package/dist/fleet/v1/index.d.ts +15 -0
  43. package/dist/fleet/v1/index.js +5 -0
  44. package/dist/fleet/v1/schema.d.ts +291 -0
  45. package/dist/fleet/v1/schema.js +5 -0
  46. package/dist/iam/v1/client.d.ts +4 -0
  47. package/dist/iam/v1/client.js +7 -0
  48. package/dist/iam/v1/index.d.ts +55 -32
  49. package/dist/iam/v1/index.js +4 -4
  50. package/dist/iam/v1/schema.d.ts +515 -88
  51. package/dist/index.d.ts +14 -7
  52. package/dist/index.js +22 -5
  53. package/dist/monitoring/v1/client.d.ts +4 -0
  54. package/dist/monitoring/v1/client.js +7 -0
  55. package/dist/monitoring/v1/index.d.ts +130 -49
  56. package/dist/monitoring/v1/index.js +4 -4
  57. package/dist/monitoring/v1/schema.d.ts +2420 -527
  58. package/dist/notification/v1/client.d.ts +4 -0
  59. package/dist/notification/v1/client.js +7 -0
  60. package/dist/notification/v1/index.d.ts +77 -0
  61. package/dist/notification/v1/index.js +5 -0
  62. package/dist/notification/v1/schema.d.ts +2048 -0
  63. package/dist/notification/v1/schema.js +5 -0
  64. package/dist/storage/v1/client.d.ts +4 -0
  65. package/dist/storage/v1/client.js +7 -0
  66. package/dist/storage/v1/index.d.ts +35 -0
  67. package/dist/storage/v1/index.js +5 -0
  68. package/dist/storage/v1/schema.d.ts +749 -0
  69. package/dist/storage/v1/schema.js +5 -0
  70. package/dist/support/v1/client.d.ts +4 -0
  71. package/dist/support/v1/client.js +7 -0
  72. package/dist/support/v1/index.d.ts +51 -0
  73. package/dist/support/v1/index.js +5 -0
  74. package/dist/support/v1/schema.d.ts +1082 -0
  75. package/dist/support/v1/schema.js +5 -0
  76. package/dist/tunnel/v1/client.d.ts +4 -0
  77. package/dist/tunnel/v1/client.js +7 -0
  78. package/dist/tunnel/v1/index.d.ts +15 -36
  79. package/dist/tunnel/v1/index.js +4 -4
  80. package/dist/tunnel/v1/schema.d.ts +70 -510
  81. package/package.json +34 -10
@@ -0,0 +1,4713 @@
1
+ /**
2
+ * This file was auto-generated by openapi-typescript.
3
+ * Do not make direct changes to the file.
4
+ */
5
+ export interface paths {
6
+ "/catalog/v1/products": {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ /** List catalog products */
14
+ get: operations["list-catalog-products"];
15
+ put?: never;
16
+ post?: never;
17
+ delete?: never;
18
+ options?: never;
19
+ head?: never;
20
+ patch?: never;
21
+ trace?: never;
22
+ };
23
+ "/catalog/v1/products/{productId}/plans": {
24
+ parameters: {
25
+ query?: never;
26
+ header?: never;
27
+ path: {
28
+ productId: components["parameters"]["ProductId"];
29
+ };
30
+ cookie?: never;
31
+ };
32
+ /** List catalog plans */
33
+ get: operations["list-catalog-plans"];
34
+ put?: never;
35
+ post?: never;
36
+ delete?: never;
37
+ options?: never;
38
+ head?: never;
39
+ patch?: never;
40
+ trace?: never;
41
+ };
42
+ "/catalog/v1/plans/{planId}/prices": {
43
+ parameters: {
44
+ query?: never;
45
+ header?: never;
46
+ path: {
47
+ planId: components["parameters"]["PlanId"];
48
+ };
49
+ cookie?: never;
50
+ };
51
+ /**
52
+ * List catalog prices
53
+ * @description Public list prices only. An account holding a negotiated agreement may be charged less;
54
+ * it is never charged more.
55
+ */
56
+ get: operations["list-catalog-prices"];
57
+ put?: never;
58
+ post?: never;
59
+ delete?: never;
60
+ options?: never;
61
+ head?: never;
62
+ patch?: never;
63
+ trace?: never;
64
+ };
65
+ "/catalog/v1/rate-cards/{rateCardId}/rules": {
66
+ parameters: {
67
+ query?: never;
68
+ header?: never;
69
+ path: {
70
+ rateCardId: components["parameters"]["RateCardId"];
71
+ };
72
+ cookie?: never;
73
+ };
74
+ /**
75
+ * List catalog rates
76
+ * @description Only public price lists are readable here. A list written for a single agreement is not,
77
+ * and its identifier cannot be used to reach it.
78
+ */
79
+ get: operations["list-catalog-rates"];
80
+ put?: never;
81
+ post?: never;
82
+ delete?: never;
83
+ options?: never;
84
+ head?: never;
85
+ patch?: never;
86
+ trace?: never;
87
+ };
88
+ "/catalog/v1/estimates": {
89
+ parameters: {
90
+ query?: never;
91
+ header?: never;
92
+ path?: never;
93
+ cookie?: never;
94
+ };
95
+ get?: never;
96
+ put?: never;
97
+ /**
98
+ * Estimate a basket
99
+ * @description Uses public list prices. Nothing is reserved and nothing is recorded, so this may be
100
+ * called as often as required.
101
+ *
102
+ * `POST` is used because the set of items to price does not fit in a query string. There is
103
+ * no corresponding `GET`, and no estimate is stored to retrieve.
104
+ *
105
+ * An account holding a negotiated agreement may be charged less than this. Tax and
106
+ * discounts are not included.
107
+ */
108
+ post: operations["create-estimate"];
109
+ delete?: never;
110
+ options?: never;
111
+ head?: never;
112
+ patch?: never;
113
+ trace?: never;
114
+ };
115
+ "/account/v1/billing-accounts": {
116
+ parameters: {
117
+ query?: never;
118
+ header?: never;
119
+ path?: never;
120
+ cookie?: never;
121
+ };
122
+ /** List billing accounts */
123
+ get: operations["list-billing-accounts"];
124
+ put?: never;
125
+ /**
126
+ * Create billing account
127
+ * @description The currency is chosen here and cannot be changed afterwards. Everything charged to the
128
+ * account — prices, orders, invoices, balance — is denominated in it.
129
+ *
130
+ * One person may hold several accounts, for example a personal one and one for a team.
131
+ */
132
+ post: operations["create-billing-account"];
133
+ delete?: never;
134
+ options?: never;
135
+ head?: never;
136
+ patch?: never;
137
+ trace?: never;
138
+ };
139
+ "/account/v1/billing-accounts/{accountId}": {
140
+ parameters: {
141
+ query?: never;
142
+ header?: never;
143
+ path: {
144
+ accountId: components["parameters"]["AccountId"];
145
+ };
146
+ cookie?: never;
147
+ };
148
+ /** Get billing account */
149
+ get: operations["get-billing-account"];
150
+ put?: never;
151
+ post?: never;
152
+ delete?: never;
153
+ options?: never;
154
+ head?: never;
155
+ /**
156
+ * Update billing account
157
+ * @description The legal name, address and tax identifier are copied onto each invoice when it is
158
+ * issued. Changing them here affects invoices issued afterwards, not those already sent.
159
+ *
160
+ * The currency cannot be changed.
161
+ */
162
+ patch: operations["update-billing-account"];
163
+ trace?: never;
164
+ };
165
+ "/account/v1/billing-accounts/{accountId}/balance": {
166
+ parameters: {
167
+ query?: never;
168
+ header?: never;
169
+ path: {
170
+ accountId: components["parameters"]["AccountId"];
171
+ };
172
+ cookie?: never;
173
+ };
174
+ /** Get account balance */
175
+ get: operations["get-account-balance"];
176
+ put?: never;
177
+ post?: never;
178
+ delete?: never;
179
+ options?: never;
180
+ head?: never;
181
+ patch?: never;
182
+ trace?: never;
183
+ };
184
+ "/account/v1/projects": {
185
+ parameters: {
186
+ query?: never;
187
+ header?: never;
188
+ path?: never;
189
+ cookie?: never;
190
+ };
191
+ /** List paid projects */
192
+ get: operations["list-paid-projects"];
193
+ put?: never;
194
+ post?: never;
195
+ delete?: never;
196
+ options?: never;
197
+ head?: never;
198
+ patch?: never;
199
+ trace?: never;
200
+ };
201
+ "/account/v1/projects/{projectId}/billing-account": {
202
+ parameters: {
203
+ query?: never;
204
+ header?: never;
205
+ path: {
206
+ projectId: components["parameters"]["ProjectId"];
207
+ };
208
+ cookie?: never;
209
+ };
210
+ /**
211
+ * Find project payer
212
+ * @description Returns 404 when no account pays for it. No resources can be created until one does.
213
+ */
214
+ get: operations["find-project-payer"];
215
+ /**
216
+ * Set project payer
217
+ * @description Charges already recorded remain with the account that was paying when they occurred, and
218
+ * are still invoiced to it. Metered resources are settled up to the moment of the change.
219
+ *
220
+ * Periods already paid for are unaffected; renewals are charged to the new account.
221
+ *
222
+ * The request is refused while the current account has an unpaid invoice, and — once the
223
+ * project holds subscriptions — while the new account uses a different currency.
224
+ */
225
+ put: operations["set-project-payer"];
226
+ post?: never;
227
+ /**
228
+ * Unbind project payer
229
+ * @description Permitted only when the project has nothing left to charge: no resources accruing
230
+ * charges, no subscriptions still running, no usage awaiting invoicing, and no unpaid
231
+ * invoice on the account.
232
+ *
233
+ * Usage that has not yet been invoiced is settled by calling
234
+ * `POST /account/v1/projects/{projectId}/billing-account/settle` first.
235
+ *
236
+ * After this the project cannot create resources until an account is chosen again.
237
+ */
238
+ delete: operations["unbind-project-payer"];
239
+ options?: never;
240
+ head?: never;
241
+ patch?: never;
242
+ trace?: never;
243
+ };
244
+ "/account/v1/projects/{projectId}/billing-account/settle": {
245
+ parameters: {
246
+ query?: never;
247
+ header?: never;
248
+ path: {
249
+ projectId: components["parameters"]["ProjectId"];
250
+ };
251
+ cookie?: never;
252
+ };
253
+ get?: never;
254
+ put?: never;
255
+ /**
256
+ * Settle project usage
257
+ * @description Metered usage is normally invoiced at the end of the month. This issues an invoice for
258
+ * everything charged to the project so far, to the account currently paying for it.
259
+ *
260
+ * Use it before unbinding a project, or to obtain a settled figure part-way through a
261
+ * month. Calling it again when nothing is outstanding has no effect.
262
+ */
263
+ post: operations["settle-project-usage"];
264
+ delete?: never;
265
+ options?: never;
266
+ head?: never;
267
+ patch?: never;
268
+ trace?: never;
269
+ };
270
+ "/account/v1/top-ups": {
271
+ parameters: {
272
+ query?: never;
273
+ header?: never;
274
+ path?: never;
275
+ cookie?: never;
276
+ };
277
+ /** List top ups */
278
+ get: operations["list-top-ups"];
279
+ put?: never;
280
+ /**
281
+ * Create top up
282
+ * @description Returns a checkout address. The balance increases when the payment provider confirms the
283
+ * payment, which may be after this call returns.
284
+ *
285
+ * The amount is in the account's currency. A checkout page may present a local currency;
286
+ * the amount credited to the account is the one requested here.
287
+ */
288
+ post: operations["create-top-up"];
289
+ delete?: never;
290
+ options?: never;
291
+ head?: never;
292
+ patch?: never;
293
+ trace?: never;
294
+ };
295
+ "/account/v1/top-ups/{topUpId}": {
296
+ parameters: {
297
+ query?: never;
298
+ header?: never;
299
+ path: {
300
+ topUpId: string;
301
+ };
302
+ cookie?: never;
303
+ };
304
+ /** Get top up */
305
+ get: operations["get-top-up"];
306
+ put?: never;
307
+ post?: never;
308
+ delete?: never;
309
+ options?: never;
310
+ head?: never;
311
+ patch?: never;
312
+ trace?: never;
313
+ };
314
+ "/account/v1/payment-methods": {
315
+ parameters: {
316
+ query?: never;
317
+ header?: never;
318
+ path?: never;
319
+ cookie?: never;
320
+ };
321
+ /** List payment methods */
322
+ get: operations["list-payment-methods"];
323
+ put?: never;
324
+ post?: never;
325
+ delete?: never;
326
+ options?: never;
327
+ head?: never;
328
+ patch?: never;
329
+ trace?: never;
330
+ };
331
+ "/account/v1/payment-methods/setup": {
332
+ parameters: {
333
+ query?: never;
334
+ header?: never;
335
+ path?: never;
336
+ cookie?: never;
337
+ };
338
+ get?: never;
339
+ put?: never;
340
+ /**
341
+ * Create payment method setup
342
+ * @description Returns what is needed to hand the browser over to the payment provider's own card
343
+ * form. Nothing is charged, and the method appears in the list once the provider
344
+ * confirms it.
345
+ *
346
+ * Card numbers are never sent to or stored by this service.
347
+ */
348
+ post: operations["create-payment-method-setup"];
349
+ delete?: never;
350
+ options?: never;
351
+ head?: never;
352
+ patch?: never;
353
+ trace?: never;
354
+ };
355
+ "/account/v1/payment-methods/{paymentMethodId}/default": {
356
+ parameters: {
357
+ query?: never;
358
+ header?: never;
359
+ path: {
360
+ paymentMethodId: components["parameters"]["PaymentMethodId"];
361
+ };
362
+ cookie?: never;
363
+ };
364
+ get?: never;
365
+ /** Set default payment method */
366
+ put: operations["set-default-payment-method"];
367
+ post?: never;
368
+ delete?: never;
369
+ options?: never;
370
+ head?: never;
371
+ patch?: never;
372
+ trace?: never;
373
+ };
374
+ "/account/v1/payment-methods/{paymentMethodId}": {
375
+ parameters: {
376
+ query?: never;
377
+ header?: never;
378
+ path: {
379
+ paymentMethodId: components["parameters"]["PaymentMethodId"];
380
+ };
381
+ cookie?: never;
382
+ };
383
+ get?: never;
384
+ put?: never;
385
+ post?: never;
386
+ /**
387
+ * Delete payment method
388
+ * @description Refused when it is the only method on an account that has resources billed by the hour,
389
+ * as there would be nothing left to charge when the balance runs out.
390
+ */
391
+ delete: operations["delete-payment-method"];
392
+ options?: never;
393
+ head?: never;
394
+ patch?: never;
395
+ trace?: never;
396
+ };
397
+ "/account/v1/invoices/{invoiceId}/pay": {
398
+ parameters: {
399
+ query?: never;
400
+ header?: never;
401
+ path: {
402
+ invoiceId: components["parameters"]["InvoiceId"];
403
+ };
404
+ cookie?: never;
405
+ };
406
+ get?: never;
407
+ put?: never;
408
+ /**
409
+ * Pay invoice
410
+ * @description Applies the account balance first, then charges the remainder to a payment method. Give
411
+ * `payment_method_id` to choose one, or omit it to use the default.
412
+ *
413
+ * Returns a checkout address when the provider requires the cardholder to confirm the
414
+ * payment; the invoice is marked paid once the provider confirms it.
415
+ *
416
+ * Calling this on an invoice that is already paid returns the invoice unchanged.
417
+ */
418
+ post: operations["pay-invoice"];
419
+ delete?: never;
420
+ options?: never;
421
+ head?: never;
422
+ patch?: never;
423
+ trace?: never;
424
+ };
425
+ "/account/v1/payments": {
426
+ parameters: {
427
+ query?: never;
428
+ header?: never;
429
+ path?: never;
430
+ cookie?: never;
431
+ };
432
+ get?: never;
433
+ put?: never;
434
+ /**
435
+ * Pay together
436
+ * @description All of them or none. Nothing is settled unless everything named here can be, so a
437
+ * partial result is not a state this can leave behind.
438
+ *
439
+ * The balance is not split across the two cases: either it covers the whole total and
440
+ * everything is settled from it, or it is left untouched and the full total is collected
441
+ * through the provider. It is never partly spent against an unpaid remainder.
442
+ *
443
+ * When the provider is needed, this returns a checkout address and settles nothing.
444
+ * Call it again once the payment has landed — the balance then covers the total and the
445
+ * same call settles everything.
446
+ *
447
+ * Anything already paid is skipped rather than refused, so a repeated call after a
448
+ * partial success is safe.
449
+ */
450
+ post: operations["pay-together"];
451
+ delete?: never;
452
+ options?: never;
453
+ head?: never;
454
+ patch?: never;
455
+ trace?: never;
456
+ };
457
+ "/account/v1/orders/{orderId}/pay": {
458
+ parameters: {
459
+ query?: never;
460
+ header?: never;
461
+ path: {
462
+ orderId: components["parameters"]["OrderId"];
463
+ };
464
+ cookie?: never;
465
+ };
466
+ get?: never;
467
+ put?: never;
468
+ /**
469
+ * Pay order
470
+ * @description Use this to resume an order whose checkout was interrupted.
471
+ *
472
+ * An order reserves both funds and stock for a limited time. Once that reservation expires
473
+ * the order can no longer be paid and must be placed again; `reservation_expires_at` on the
474
+ * order states when.
475
+ */
476
+ post: operations["pay-order"];
477
+ delete?: never;
478
+ options?: never;
479
+ head?: never;
480
+ patch?: never;
481
+ trace?: never;
482
+ };
483
+ "/account/v1/invoices": {
484
+ parameters: {
485
+ query?: never;
486
+ header?: never;
487
+ path?: never;
488
+ cookie?: never;
489
+ };
490
+ /** List invoices */
491
+ get: operations["list-invoices"];
492
+ put?: never;
493
+ post?: never;
494
+ delete?: never;
495
+ options?: never;
496
+ head?: never;
497
+ patch?: never;
498
+ trace?: never;
499
+ };
500
+ "/account/v1/invoices/{invoiceId}": {
501
+ parameters: {
502
+ query?: never;
503
+ header?: never;
504
+ path: {
505
+ invoiceId: components["parameters"]["InvoiceId"];
506
+ };
507
+ cookie?: never;
508
+ };
509
+ /** Get invoice */
510
+ get: operations["get-invoice"];
511
+ put?: never;
512
+ post?: never;
513
+ delete?: never;
514
+ options?: never;
515
+ head?: never;
516
+ patch?: never;
517
+ trace?: never;
518
+ };
519
+ "/account/v1/invoices/{invoiceId}/items": {
520
+ parameters: {
521
+ query?: never;
522
+ header?: never;
523
+ path: {
524
+ invoiceId: components["parameters"]["InvoiceId"];
525
+ };
526
+ cookie?: never;
527
+ };
528
+ /** List invoice items */
529
+ get: operations["list-invoice-items"];
530
+ put?: never;
531
+ post?: never;
532
+ delete?: never;
533
+ options?: never;
534
+ head?: never;
535
+ patch?: never;
536
+ trace?: never;
537
+ };
538
+ "/account/v1/invoices/{invoiceId}/refund-quote": {
539
+ parameters: {
540
+ query?: never;
541
+ header?: never;
542
+ path: {
543
+ invoiceId: components["parameters"]["InvoiceId"];
544
+ };
545
+ cookie?: never;
546
+ };
547
+ /**
548
+ * Get invoice refund quote
549
+ * @description Show this before asking for a refund. Nothing is recorded and nothing is reserved; the
550
+ * answer follows from what has been paid and what has already been returned, so it may
551
+ * be read as often as required.
552
+ *
553
+ * `refundable_amount` is `"0"` once nothing is left, which is also the answer for an
554
+ * invoice already refunded in full.
555
+ */
556
+ get: operations["get-invoice-refund-quote"];
557
+ put?: never;
558
+ post?: never;
559
+ delete?: never;
560
+ options?: never;
561
+ head?: never;
562
+ patch?: never;
563
+ trace?: never;
564
+ };
565
+ "/account/v1/transactions": {
566
+ parameters: {
567
+ query?: never;
568
+ header?: never;
569
+ path?: never;
570
+ cookie?: never;
571
+ };
572
+ /** List transactions */
573
+ get: operations["list-transactions"];
574
+ put?: never;
575
+ post?: never;
576
+ delete?: never;
577
+ options?: never;
578
+ head?: never;
579
+ patch?: never;
580
+ trace?: never;
581
+ };
582
+ "/account/v1/credit-grants": {
583
+ parameters: {
584
+ query?: never;
585
+ header?: never;
586
+ path?: never;
587
+ cookie?: never;
588
+ };
589
+ /**
590
+ * List credit grants
591
+ * @description Each grant shows what remains and what it may be used for. Credit is spent before cash
592
+ * and cannot be withdrawn.
593
+ */
594
+ get: operations["list-credit-grants"];
595
+ put?: never;
596
+ post?: never;
597
+ delete?: never;
598
+ options?: never;
599
+ head?: never;
600
+ patch?: never;
601
+ trace?: never;
602
+ };
603
+ "/account/v1/allocations": {
604
+ parameters: {
605
+ query?: never;
606
+ header?: never;
607
+ path?: never;
608
+ cookie?: never;
609
+ };
610
+ /**
611
+ * List allocations
612
+ * @description Give `source_id` to follow one top-up or grant through to everything it paid for. Give
613
+ * `target_id` to see which sources paid for one line of an invoice.
614
+ *
615
+ * Give `source_type` on its own to separate what cash paid for from what granted credit
616
+ * paid for.
617
+ */
618
+ get: operations["list-allocations"];
619
+ put?: never;
620
+ post?: never;
621
+ delete?: never;
622
+ options?: never;
623
+ head?: never;
624
+ patch?: never;
625
+ trace?: never;
626
+ };
627
+ "/account/v1/refunds": {
628
+ parameters: {
629
+ query?: never;
630
+ header?: never;
631
+ path?: never;
632
+ cookie?: never;
633
+ };
634
+ /** List refunds */
635
+ get: operations["list-refunds"];
636
+ put?: never;
637
+ /**
638
+ * Request refund
639
+ * @description Refunding ends the subscription and reclaims whatever it provisioned. That is the
640
+ * difference from letting a period lapse: a lapsed period keeps the machine around
641
+ * for a while so that topping up brings it back, whereas a refund returns the money
642
+ * and therefore cannot leave the thing running.
643
+ *
644
+ * What can be refunded, for how long, and how much, is decided here rather than by
645
+ * the caller. A request outside those bounds is refused with the reason.
646
+ *
647
+ * The money goes back the way it came: card charges to the card, balance to the
648
+ * balance, credit to credit. A grant never turns into cash.
649
+ */
650
+ post: operations["request-refund"];
651
+ delete?: never;
652
+ options?: never;
653
+ head?: never;
654
+ patch?: never;
655
+ trace?: never;
656
+ };
657
+ "/account/v1/usage-charges": {
658
+ parameters: {
659
+ query?: never;
660
+ header?: never;
661
+ path?: never;
662
+ cookie?: never;
663
+ };
664
+ /**
665
+ * List usage charges
666
+ * @description Includes charges that have not been invoiced yet, which is how the current month's
667
+ * spending is seen before the invoice is issued.
668
+ */
669
+ get: operations["list-usage-charges"];
670
+ put?: never;
671
+ post?: never;
672
+ delete?: never;
673
+ options?: never;
674
+ head?: never;
675
+ patch?: never;
676
+ trace?: never;
677
+ };
678
+ "/account/v1/subscriptions": {
679
+ parameters: {
680
+ query?: never;
681
+ header?: never;
682
+ path?: never;
683
+ cookie?: never;
684
+ };
685
+ /** List subscriptions */
686
+ get: operations["list-subscriptions"];
687
+ put?: never;
688
+ post?: never;
689
+ delete?: never;
690
+ options?: never;
691
+ head?: never;
692
+ patch?: never;
693
+ trace?: never;
694
+ };
695
+ "/account/v1/subscription-items": {
696
+ parameters: {
697
+ query?: never;
698
+ header?: never;
699
+ path?: never;
700
+ cookie?: never;
701
+ };
702
+ /** List subscription items */
703
+ get: operations["list-subscription-items"];
704
+ put?: never;
705
+ post?: never;
706
+ delete?: never;
707
+ options?: never;
708
+ head?: never;
709
+ patch?: never;
710
+ trace?: never;
711
+ };
712
+ "/account/v1/subscription-items/{itemId}/renew": {
713
+ parameters: {
714
+ query?: never;
715
+ header?: never;
716
+ path: {
717
+ itemId: components["parameters"]["ItemId"];
718
+ };
719
+ cookie?: never;
720
+ };
721
+ get?: never;
722
+ put?: never;
723
+ /**
724
+ * Renew subscription item
725
+ * @description Extends the paid period from its current end, not from today, so renewing early does not
726
+ * shorten what has already been paid for.
727
+ *
728
+ * The price charged is the one in effect at the moment of renewal, which may differ from
729
+ * what was paid for the current period.
730
+ */
731
+ post: operations["renew-subscription-item"];
732
+ delete?: never;
733
+ options?: never;
734
+ head?: never;
735
+ patch?: never;
736
+ trace?: never;
737
+ };
738
+ "/account/v1/subscription-items/{itemId}/auto-renew": {
739
+ parameters: {
740
+ query?: never;
741
+ header?: never;
742
+ path: {
743
+ itemId: components["parameters"]["ItemId"];
744
+ };
745
+ cookie?: never;
746
+ };
747
+ get?: never;
748
+ /**
749
+ * Set auto renew
750
+ * @description When on, the account balance is charged at the renewal date. Turning it off lets the
751
+ * current period run to its end and stops the resource afterwards.
752
+ */
753
+ put: operations["set-auto-renew"];
754
+ post?: never;
755
+ delete?: never;
756
+ options?: never;
757
+ head?: never;
758
+ patch?: never;
759
+ trace?: never;
760
+ };
761
+ "/account/v1/codes/preview": {
762
+ parameters: {
763
+ query?: never;
764
+ header?: never;
765
+ path?: never;
766
+ cookie?: never;
767
+ };
768
+ get?: never;
769
+ put?: never;
770
+ /**
771
+ * Preview code
772
+ * @description Nothing is recorded and the code is not consumed. Use it to show the customer the effect
773
+ * before they commit.
774
+ */
775
+ post: operations["preview-code"];
776
+ delete?: never;
777
+ options?: never;
778
+ head?: never;
779
+ patch?: never;
780
+ trace?: never;
781
+ };
782
+ "/account/v1/codes/redeem": {
783
+ parameters: {
784
+ query?: never;
785
+ header?: never;
786
+ path?: never;
787
+ cookie?: never;
788
+ };
789
+ get?: never;
790
+ put?: never;
791
+ /**
792
+ * Redeem code
793
+ * @description A voucher code adds credit to the account. A discount code records the entitlement, which
794
+ * is then applied to the next qualifying purchase.
795
+ *
796
+ * A code that has already been redeemed by this account is refused rather than redeemed a
797
+ * second time.
798
+ */
799
+ post: operations["redeem-code"];
800
+ delete?: never;
801
+ options?: never;
802
+ head?: never;
803
+ patch?: never;
804
+ trace?: never;
805
+ };
806
+ "/api/v1/projects/{projectId}/billing-account": {
807
+ parameters: {
808
+ query?: never;
809
+ header?: never;
810
+ path: {
811
+ projectId: components["parameters"]["ProjectId"];
812
+ };
813
+ cookie?: never;
814
+ };
815
+ /**
816
+ * Get project billing account
817
+ * @description A deliberately narrow view: the payer's identity, its currency, and how much can still
818
+ * be spent. Cards, invoices and transaction history are not included; they belong to the
819
+ * account owner and are reached through `/account/v1/`.
820
+ *
821
+ * Returns 404 when no account pays for this project. Resources cannot be created in that
822
+ * state.
823
+ */
824
+ get: operations["get-project-billing-account"];
825
+ put?: never;
826
+ post?: never;
827
+ delete?: never;
828
+ options?: never;
829
+ head?: never;
830
+ patch?: never;
831
+ trace?: never;
832
+ };
833
+ "/api/v1/projects/{projectId}/spend": {
834
+ parameters: {
835
+ query?: never;
836
+ header?: never;
837
+ path: {
838
+ projectId: components["parameters"]["ProjectId"];
839
+ };
840
+ cookie?: never;
841
+ };
842
+ /**
843
+ * List project spend
844
+ * @description Covers a closed time range. Both bounds are required: a total without a stated period
845
+ * cannot be reconciled against an invoice.
846
+ *
847
+ * Includes usage that has not been invoiced yet.
848
+ */
849
+ get: operations["list-project-spend"];
850
+ put?: never;
851
+ post?: never;
852
+ delete?: never;
853
+ options?: never;
854
+ head?: never;
855
+ patch?: never;
856
+ trace?: never;
857
+ };
858
+ "/api/v1/projects/{projectId}/usage-charges": {
859
+ parameters: {
860
+ query?: never;
861
+ header?: never;
862
+ path: {
863
+ projectId: components["parameters"]["ProjectId"];
864
+ };
865
+ cookie?: never;
866
+ };
867
+ /**
868
+ * List project usage charges
869
+ * @description The individual charges behind the figures in `/spend`. Amounts here sum to the totals
870
+ * reported there over the same period.
871
+ */
872
+ get: operations["list-project-usage-charges"];
873
+ put?: never;
874
+ post?: never;
875
+ delete?: never;
876
+ options?: never;
877
+ head?: never;
878
+ patch?: never;
879
+ trace?: never;
880
+ };
881
+ "/api/v1/projects/{projectId}/subscriptions": {
882
+ parameters: {
883
+ query?: never;
884
+ header?: never;
885
+ path: {
886
+ projectId: components["parameters"]["ProjectId"];
887
+ };
888
+ cookie?: never;
889
+ };
890
+ /** List project subscriptions */
891
+ get: operations["list-project-subscriptions"];
892
+ put?: never;
893
+ post?: never;
894
+ delete?: never;
895
+ options?: never;
896
+ head?: never;
897
+ patch?: never;
898
+ trace?: never;
899
+ };
900
+ "/api/v1/projects/{projectId}/subscription-items": {
901
+ parameters: {
902
+ query?: never;
903
+ header?: never;
904
+ path: {
905
+ projectId: components["parameters"]["ProjectId"];
906
+ };
907
+ cookie?: never;
908
+ };
909
+ /** List project subscription items */
910
+ get: operations["list-project-subscription-items"];
911
+ put?: never;
912
+ post?: never;
913
+ delete?: never;
914
+ options?: never;
915
+ head?: never;
916
+ patch?: never;
917
+ trace?: never;
918
+ };
919
+ "/api/v1/projects/{projectId}/subscription-items/{itemId}/auto-renew": {
920
+ parameters: {
921
+ query?: never;
922
+ header?: never;
923
+ path: {
924
+ projectId: components["parameters"]["ProjectId"];
925
+ itemId: components["parameters"]["ItemId"];
926
+ };
927
+ cookie?: never;
928
+ };
929
+ get?: never;
930
+ /**
931
+ * Set project auto renew
932
+ * @description Automatic renewal draws on the paying account's balance, which a project member may
933
+ * commit. Paying by card requires the account owner and is done from the billing centre.
934
+ */
935
+ put: operations["set-project-auto-renew"];
936
+ post?: never;
937
+ delete?: never;
938
+ options?: never;
939
+ head?: never;
940
+ patch?: never;
941
+ trace?: never;
942
+ };
943
+ "/api/v1/projects/{projectId}/orders": {
944
+ parameters: {
945
+ query?: never;
946
+ header?: never;
947
+ path: {
948
+ projectId: components["parameters"]["ProjectId"];
949
+ };
950
+ cookie?: never;
951
+ };
952
+ /**
953
+ * List project orders
954
+ * @description An order awaiting payment shows what is outstanding. Paying it is done from the billing
955
+ * centre by the account owner.
956
+ */
957
+ get: operations["list-project-orders"];
958
+ put?: never;
959
+ post?: never;
960
+ delete?: never;
961
+ options?: never;
962
+ head?: never;
963
+ patch?: never;
964
+ trace?: never;
965
+ };
966
+ "/api/v1/projects/{projectId}/orders/{orderId}": {
967
+ parameters: {
968
+ query?: never;
969
+ header?: never;
970
+ path: {
971
+ projectId: components["parameters"]["ProjectId"];
972
+ orderId: components["parameters"]["OrderId"];
973
+ };
974
+ cookie?: never;
975
+ };
976
+ /** Get project order */
977
+ get: operations["get-project-order"];
978
+ put?: never;
979
+ post?: never;
980
+ delete?: never;
981
+ options?: never;
982
+ head?: never;
983
+ patch?: never;
984
+ trace?: never;
985
+ };
986
+ "/api/v1/projects/{projectId}/active-resources": {
987
+ parameters: {
988
+ query?: never;
989
+ header?: never;
990
+ path: {
991
+ projectId: components["parameters"]["ProjectId"];
992
+ };
993
+ cookie?: never;
994
+ };
995
+ /**
996
+ * List project active resources
997
+ * @description A resource that is running but does not appear here is not being charged for.
998
+ */
999
+ get: operations["list-project-active-resources"];
1000
+ put?: never;
1001
+ post?: never;
1002
+ delete?: never;
1003
+ options?: never;
1004
+ head?: never;
1005
+ patch?: never;
1006
+ trace?: never;
1007
+ };
1008
+ "/api/v1/projects/{projectId}/quotes": {
1009
+ parameters: {
1010
+ query?: never;
1011
+ header?: never;
1012
+ path: {
1013
+ projectId: components["parameters"]["ProjectId"];
1014
+ };
1015
+ cookie?: never;
1016
+ };
1017
+ get?: never;
1018
+ put?: never;
1019
+ /**
1020
+ * Quote for a project
1021
+ * @description Priced in the paying account's currency, and at any rate negotiated for that account.
1022
+ * Nothing is reserved and nothing is recorded, so this may be called as often as required.
1023
+ *
1024
+ * Prices may change between quoting and ordering. An order is charged at the price in
1025
+ * effect when it is placed, so a quote should be refreshed before a final confirmation is
1026
+ * shown.
1027
+ *
1028
+ * Returns 404 when no account pays for this project.
1029
+ */
1030
+ post: operations["create-project-quote"];
1031
+ delete?: never;
1032
+ options?: never;
1033
+ head?: never;
1034
+ patch?: never;
1035
+ trace?: never;
1036
+ };
1037
+ "/account/v1/allowances": {
1038
+ parameters: {
1039
+ query?: never;
1040
+ header?: never;
1041
+ path?: never;
1042
+ cookie?: never;
1043
+ };
1044
+ /**
1045
+ * List allowances
1046
+ * @description A quantity rather than an amount of money: bytes, seconds or tokens that are used before
1047
+ * anything is charged for.
1048
+ *
1049
+ * Usage draws on these first and is only charged once they are exhausted. Where several
1050
+ * apply, they are drawn on in a fixed order: lower `priority` first, then whichever
1051
+ * expires soonest, then whichever was granted first. Included quantities therefore go
1052
+ * before purchased packs, and a pack that is about to expire goes before one that is not.
1053
+ *
1054
+ * An unused quantity is lost when it expires; it is not refunded and does not carry over.
1055
+ *
1056
+ * Quantities belong to the account and are shared by every project it pays for.
1057
+ */
1058
+ get: operations["list-allowances"];
1059
+ put?: never;
1060
+ post?: never;
1061
+ delete?: never;
1062
+ options?: never;
1063
+ head?: never;
1064
+ patch?: never;
1065
+ trace?: never;
1066
+ };
1067
+ "/account/v1/allowances/{allowanceId}/consumptions": {
1068
+ parameters: {
1069
+ query?: never;
1070
+ header?: never;
1071
+ path: {
1072
+ allowanceId: string;
1073
+ };
1074
+ cookie?: never;
1075
+ };
1076
+ /**
1077
+ * List allowance consumptions
1078
+ * @description Each entry names the charge it covered, so the granted amount, what has been used and
1079
+ * what remains all reconcile.
1080
+ */
1081
+ get: operations["list-allowance-consumptions"];
1082
+ put?: never;
1083
+ post?: never;
1084
+ delete?: never;
1085
+ options?: never;
1086
+ head?: never;
1087
+ patch?: never;
1088
+ trace?: never;
1089
+ };
1090
+ "/account/v1/orders": {
1091
+ parameters: {
1092
+ query?: never;
1093
+ header?: never;
1094
+ path?: never;
1095
+ cookie?: never;
1096
+ };
1097
+ /**
1098
+ * List orders
1099
+ * @description An order in `pending` still owes money; `amount_due` states how much and
1100
+ * `reservation_expires_at` states how long it can still be paid.
1101
+ */
1102
+ get: operations["list-orders"];
1103
+ put?: never;
1104
+ post?: never;
1105
+ delete?: never;
1106
+ options?: never;
1107
+ head?: never;
1108
+ patch?: never;
1109
+ trace?: never;
1110
+ };
1111
+ "/account/v1/orders/{orderId}": {
1112
+ parameters: {
1113
+ query?: never;
1114
+ header?: never;
1115
+ path: {
1116
+ orderId: components["parameters"]["OrderId"];
1117
+ };
1118
+ cookie?: never;
1119
+ };
1120
+ /** Get order */
1121
+ get: operations["get-order"];
1122
+ put?: never;
1123
+ post?: never;
1124
+ delete?: never;
1125
+ options?: never;
1126
+ head?: never;
1127
+ patch?: never;
1128
+ trace?: never;
1129
+ };
1130
+ "/account/v1/orders/{orderId}/cancel": {
1131
+ parameters: {
1132
+ query?: never;
1133
+ header?: never;
1134
+ path: {
1135
+ orderId: components["parameters"]["OrderId"];
1136
+ };
1137
+ cookie?: never;
1138
+ };
1139
+ get?: never;
1140
+ put?: never;
1141
+ /**
1142
+ * Cancel scheduled change
1143
+ * @description Only for a change scheduled for the end of the period, and only while it is still
1144
+ * pending. An immediate change has already happened by the time it is placed, and there is
1145
+ * nothing to call off.
1146
+ *
1147
+ * Nothing was charged or returned when it was scheduled, so nothing moves here either. The
1148
+ * subscription keeps running on what it is on now, and the item is free to be changed again.
1149
+ */
1150
+ post: operations["cancel-scheduled-change"];
1151
+ delete?: never;
1152
+ options?: never;
1153
+ head?: never;
1154
+ patch?: never;
1155
+ trace?: never;
1156
+ };
1157
+ "/account/v1/orders/{orderId}/items": {
1158
+ parameters: {
1159
+ query?: never;
1160
+ header?: never;
1161
+ path: {
1162
+ orderId: components["parameters"]["OrderId"];
1163
+ };
1164
+ cookie?: never;
1165
+ };
1166
+ /**
1167
+ * List order items
1168
+ * @description One entry per item bought, with the price charged and the period it covers.
1169
+ */
1170
+ get: operations["list-order-items"];
1171
+ put?: never;
1172
+ post?: never;
1173
+ delete?: never;
1174
+ options?: never;
1175
+ head?: never;
1176
+ patch?: never;
1177
+ trace?: never;
1178
+ };
1179
+ "/account/v1/orders/{orderId}/refund-quote": {
1180
+ parameters: {
1181
+ query?: never;
1182
+ header?: never;
1183
+ path: {
1184
+ orderId: components["parameters"]["OrderId"];
1185
+ };
1186
+ cookie?: never;
1187
+ };
1188
+ /**
1189
+ * Get order refund quote
1190
+ * @description Show this before asking for a refund. Nothing is recorded and nothing is reserved; the
1191
+ * answer follows from what has been paid and what has already been returned, so it may
1192
+ * be read as often as required.
1193
+ *
1194
+ * `refundable_amount` is `"0"` once nothing is left, which is also the answer for an
1195
+ * order already refunded in full.
1196
+ *
1197
+ * Refunding an order also ends what it bought and reclaims whatever it provisioned. That
1198
+ * is not reflected in the amounts here.
1199
+ */
1200
+ get: operations["get-order-refund-quote"];
1201
+ put?: never;
1202
+ post?: never;
1203
+ delete?: never;
1204
+ options?: never;
1205
+ head?: never;
1206
+ patch?: never;
1207
+ trace?: never;
1208
+ };
1209
+ "/api/v1/projects/{projectId}/orders/{orderId}/items": {
1210
+ parameters: {
1211
+ query?: never;
1212
+ header?: never;
1213
+ path: {
1214
+ projectId: components["parameters"]["ProjectId"];
1215
+ orderId: components["parameters"]["OrderId"];
1216
+ };
1217
+ cookie?: never;
1218
+ };
1219
+ /** List project order items */
1220
+ get: operations["list-project-order-items"];
1221
+ put?: never;
1222
+ post?: never;
1223
+ delete?: never;
1224
+ options?: never;
1225
+ head?: never;
1226
+ patch?: never;
1227
+ trace?: never;
1228
+ };
1229
+ "/api/v1/projects/{projectId}/allowances": {
1230
+ parameters: {
1231
+ query?: never;
1232
+ header?: never;
1233
+ path: {
1234
+ projectId: components["parameters"]["ProjectId"];
1235
+ };
1236
+ cookie?: never;
1237
+ };
1238
+ /**
1239
+ * List project allowances
1240
+ * @description These belong to the paying account and are shared with every other project it pays for,
1241
+ * so what is left here may be consumed elsewhere.
1242
+ */
1243
+ get: operations["list-project-allowances"];
1244
+ put?: never;
1245
+ post?: never;
1246
+ delete?: never;
1247
+ options?: never;
1248
+ head?: never;
1249
+ patch?: never;
1250
+ trace?: never;
1251
+ };
1252
+ "/account/v1/entitlements": {
1253
+ parameters: {
1254
+ query?: never;
1255
+ header?: never;
1256
+ path?: never;
1257
+ cookie?: never;
1258
+ };
1259
+ /**
1260
+ * List entitlements
1261
+ * @description Capabilities that come with what has been bought. A capability that is not held simply
1262
+ * does not appear, so that "this does not exist" and "this has not been bought" cannot be
1263
+ * confused.
1264
+ *
1265
+ * Derived from live subscriptions rather than stored, so this always agrees with what is
1266
+ * being paid for. It stops being listed as soon as the subscription providing it ends.
1267
+ */
1268
+ get: operations["list-entitlements"];
1269
+ put?: never;
1270
+ post?: never;
1271
+ delete?: never;
1272
+ options?: never;
1273
+ head?: never;
1274
+ patch?: never;
1275
+ trace?: never;
1276
+ };
1277
+ "/api/v1/projects/{projectId}/entitlements": {
1278
+ parameters: {
1279
+ query?: never;
1280
+ header?: never;
1281
+ path: {
1282
+ projectId: components["parameters"]["ProjectId"];
1283
+ };
1284
+ cookie?: never;
1285
+ };
1286
+ /**
1287
+ * List project entitlements
1288
+ * @description Includes capabilities bought for this project and those the paying account holds at
1289
+ * account level.
1290
+ *
1291
+ * Where a capability counts uses, `remaining_quantity` states how much is left. Whether
1292
+ * exceeding it refuses the request or simply continues to be charged for is decided by
1293
+ * the service that owns the capability.
1294
+ */
1295
+ get: operations["list-project-entitlements"];
1296
+ put?: never;
1297
+ post?: never;
1298
+ delete?: never;
1299
+ options?: never;
1300
+ head?: never;
1301
+ patch?: never;
1302
+ trace?: never;
1303
+ };
1304
+ }
1305
+ export type webhooks = Record<string, never>;
1306
+ export interface components {
1307
+ schemas: {
1308
+ Error: {
1309
+ code?: string;
1310
+ message: string;
1311
+ /**
1312
+ * @description What a given `code` carries alongside the message. The keys depend on the code,
1313
+ * and a client that does not recognise one ignores it.
1314
+ */
1315
+ meta?: {
1316
+ [key: string]: unknown;
1317
+ };
1318
+ /** Format: int64 */
1319
+ status: number;
1320
+ };
1321
+ /**
1322
+ * @description Names in other languages, keyed by BCP 47 language tag. Where your locale is absent, use
1323
+ * the plain `name`; there is no fallback between related tags.
1324
+ */
1325
+ Translations: {
1326
+ [key: string]: string;
1327
+ };
1328
+ /**
1329
+ * @description A decimal string, in the currency stated alongside it.
1330
+ * @example 10.2500000000
1331
+ */
1332
+ Money: string;
1333
+ CatalogProduct: {
1334
+ /** Format: uuid */
1335
+ id: string;
1336
+ lookup_key: string;
1337
+ name: string;
1338
+ name_translations?: components["schemas"]["Translations"];
1339
+ description?: string;
1340
+ description_translations?: components["schemas"]["Translations"];
1341
+ };
1342
+ CatalogProductList: {
1343
+ items: components["schemas"]["CatalogProduct"][];
1344
+ /** Format: int64 */
1345
+ total_count?: number;
1346
+ };
1347
+ CatalogPlan: {
1348
+ /** Format: uuid */
1349
+ id: string;
1350
+ /** Format: uuid */
1351
+ product_id: string;
1352
+ lookup_key: string;
1353
+ name: string;
1354
+ name_translations?: components["schemas"]["Translations"];
1355
+ description?: string;
1356
+ description_translations?: components["schemas"]["Translations"];
1357
+ };
1358
+ CatalogPlanList: {
1359
+ items: components["schemas"]["CatalogPlan"][];
1360
+ /** Format: int64 */
1361
+ total_count?: number;
1362
+ };
1363
+ CatalogPrice: {
1364
+ /** @description External lookup alias within the service. Existing references use the price ID. */
1365
+ lookup_key?: string;
1366
+ /** Format: uuid */
1367
+ product_id?: string;
1368
+ /** Format: uuid */
1369
+ id: string;
1370
+ /** Format: uuid */
1371
+ plan_id: string;
1372
+ currency: string;
1373
+ /**
1374
+ * @description `metered` charges for what is used, `prepaid` buys a period in advance, `one_time`
1375
+ * charges once.
1376
+ * @enum {string}
1377
+ */
1378
+ type: "metered" | "prepaid" | "one_time";
1379
+ /**
1380
+ * @description How the amount is arrived at. `rated` means the rate depends on attributes such as
1381
+ * region or machine type, and is looked up on a price list.
1382
+ * @enum {string}
1383
+ */
1384
+ billing_scheme: "per_unit" | "tiered" | "rated";
1385
+ /** @description Present for `per_unit`. */
1386
+ unit_amount?: components["schemas"]["Money"];
1387
+ /**
1388
+ * @description `none` for a price that is not tiered, which is most of them.
1389
+ *
1390
+ * Otherwise `graduated` charges each band at its own rate, and `volume` charges
1391
+ * everything at the rate of the band the total falls in.
1392
+ * @enum {string}
1393
+ */
1394
+ tiers_mode?: "none" | "graduated" | "volume";
1395
+ /** @description Present for `tiered`, in ascending order. */
1396
+ tiers?: components["schemas"]["Tier"][];
1397
+ /**
1398
+ * Format: uuid
1399
+ * @description For `rated` prices, the price list the rates are read from.
1400
+ */
1401
+ rate_card_id?: string;
1402
+ /** @description The smallest quantity that can be bought. Absent means no lower bound. */
1403
+ min_quantity?: components["schemas"]["Money"];
1404
+ /**
1405
+ * @description The largest quantity that can be bought. Absent means no upper bound.
1406
+ *
1407
+ * An order beyond it is refused with its own code, apart from the codes for running
1408
+ * out of stock and for exceeding what the infrastructure allows.
1409
+ */
1410
+ max_quantity?: components["schemas"]["Money"];
1411
+ /** @description Quantities must be a multiple of this. Absent means any quantity within the bounds. */
1412
+ quantity_step?: components["schemas"]["Money"];
1413
+ /**
1414
+ * @description Quantities included when this price is bought — the traffic or requests that are
1415
+ * used before anything is charged for.
1416
+ */
1417
+ allowances?: components["schemas"]["IncludedAllowance"][];
1418
+ /** @description Capabilities that buying this price makes available. */
1419
+ features?: components["schemas"]["IncludedFeature"][];
1420
+ /** @description For prepaid prices, how many periods one purchase covers. */
1421
+ term?: number;
1422
+ /** @enum {string} */
1423
+ period?: "none" | "day" | "month" | "year";
1424
+ setup_fee?: components["schemas"]["Money"];
1425
+ };
1426
+ CatalogPriceList: {
1427
+ items: components["schemas"]["CatalogPrice"][];
1428
+ /** Format: int64 */
1429
+ total_count?: number;
1430
+ };
1431
+ CatalogRate: {
1432
+ meter: components["schemas"]["ObjectIdentity"];
1433
+ /** @description The unit readings arrive in, such as `core-second`. */
1434
+ unit?: string;
1435
+ /** @description The attributes this rate applies to, such as region and machine type. */
1436
+ dimensions: {
1437
+ [key: string]: string;
1438
+ };
1439
+ /** @enum {string} */
1440
+ pricing_model: "per_unit" | "graduated" | "volume";
1441
+ /** @description Present for `per_unit`. Tiered rates carry their amounts on the tiers. */
1442
+ unit_amount?: components["schemas"]["Money"];
1443
+ /** @description Present for `graduated` and `volume`, in ascending order. */
1444
+ tiers?: components["schemas"]["Tier"][];
1445
+ /**
1446
+ * @description How many measured units one amount covers. An hourly rate on a per-second meter is
1447
+ * `"3600"`.
1448
+ */
1449
+ unit_quantity?: string;
1450
+ currency: string;
1451
+ /** Format: date-time */
1452
+ effective_from: string;
1453
+ /** Format: date-time */
1454
+ effective_to?: string | null;
1455
+ };
1456
+ CatalogRateList: {
1457
+ items: components["schemas"]["CatalogRate"][];
1458
+ /** Format: int64 */
1459
+ total_count?: number;
1460
+ };
1461
+ /** @description Identify a price directly, or select a price for a plan. Lookup keys are scoped to the product. Account quotes apply applicable contract prices. */
1462
+ QuoteLine: {
1463
+ price?: components["schemas"]["ObjectReference"];
1464
+ product?: components["schemas"]["ObjectReference"];
1465
+ plan?: components["schemas"]["ObjectReference"];
1466
+ meter?: components["schemas"]["ObjectReference"];
1467
+ /**
1468
+ * @description The attributes the price depends on — region, instance type, token class.
1469
+ *
1470
+ * Required when the price draws its rates from a price list, which is how anything
1471
+ * sold by region or by machine type is priced. A price that carries a single unit
1472
+ * amount, or a ladder, has no attributes to give and takes none.
1473
+ *
1474
+ * Every attribute the meter declares must be present. A combination with no rate
1475
+ * covering it is refused rather than priced at zero.
1476
+ */
1477
+ dimensions?: {
1478
+ [key: string]: string;
1479
+ };
1480
+ /**
1481
+ * @description Narrows the selection when a plan offers more than one billing type.
1482
+ * @enum {string}
1483
+ */
1484
+ price_type?: "metered" | "prepaid" | "one_time";
1485
+ /**
1486
+ * @description For prepaid items, such as `1_month` or `1_year`. Required when the item is offered
1487
+ * for more than one period.
1488
+ */
1489
+ billing_period?: string;
1490
+ quantity: string;
1491
+ /**
1492
+ * Format: int64
1493
+ * @description For metered items, how long to price for. This allows an estimate such as "about
1494
+ * this much per month" to be shown before anything exists.
1495
+ */
1496
+ duration_seconds?: number;
1497
+ };
1498
+ /** @description Estimate a change to a subscription item using a target plan or price. */
1499
+ QuoteChange: {
1500
+ /**
1501
+ * Format: uuid
1502
+ * @description What is being changed.
1503
+ */
1504
+ subscription_item_id: string;
1505
+ price?: components["schemas"]["ObjectReference"];
1506
+ plan?: components["schemas"]["ObjectReference"];
1507
+ /** @description The new quantity. The current one is kept when omitted. */
1508
+ quantity?: string;
1509
+ /**
1510
+ * Format: date-time
1511
+ * @description When the change would take effect. Defaults to now. Charging is split at this
1512
+ * moment: before it at the old configuration, after it at the new one.
1513
+ */
1514
+ effective_at?: string;
1515
+ };
1516
+ /**
1517
+ * @description Give `lines` to price new purchases, or `changes` to price alterations to what is
1518
+ * already running. Both may appear in one request; the total covers everything.
1519
+ */
1520
+ QuoteRequest: {
1521
+ lines?: components["schemas"]["QuoteLine"][];
1522
+ changes?: components["schemas"]["QuoteChange"][];
1523
+ };
1524
+ EstimateRequest: {
1525
+ /** @description Must be one the catalogue publishes. */
1526
+ currency: string;
1527
+ lines: components["schemas"]["QuoteLine"][];
1528
+ };
1529
+ QuoteLineResult: {
1530
+ /** @description Tax included in the account quote. Absent in public catalogue estimates. */
1531
+ tax_amount?: components["schemas"]["Money"];
1532
+ /** @description Tax already included in the displayed price. */
1533
+ tax_included_amount?: components["schemas"]["Money"];
1534
+ /** @description Which line of the request this answers. */
1535
+ index: number;
1536
+ /**
1537
+ * @description Whether a price was found for this line. Read this before anything else.
1538
+ *
1539
+ * A single item with no price no longer fails the whole request. A catalogue
1540
+ * almost always has something not yet priced, and refusing the request would
1541
+ * leave no way to render a list in which a few entries are simply not on sale.
1542
+ *
1543
+ * When false, `price_id`, `unit_amount` and `amount` are absent and
1544
+ * `unpriced_reason` states what is missing.
1545
+ */
1546
+ priced: boolean;
1547
+ /**
1548
+ * @description Why no price was found; `none` while `priced` is true.
1549
+ *
1550
+ * The last four are told apart because their remedies differ: the price points
1551
+ * at no price list, the list holds no rate for that meter, that exact combination
1552
+ * of attributes is not configured, or it is configured but nothing is in effect
1553
+ * at the moment asked about.
1554
+ * @enum {string}
1555
+ */
1556
+ unpriced_reason?: "none" | "no_price" | "no_rate_card" | "no_meter" | "no_dimensions" | "no_effective_rule";
1557
+ /**
1558
+ * Format: uuid
1559
+ * @description The price selected. Returned whenever `priced` is true, including when the
1560
+ * request identified the item indirectly, so that the choice can be confirmed.
1561
+ */
1562
+ price_id?: string;
1563
+ plan_name?: string;
1564
+ unit_amount?: components["schemas"]["Money"];
1565
+ quantity?: string;
1566
+ /** @description Not rounded. Round only for display. */
1567
+ amount?: components["schemas"]["Money"];
1568
+ currency: string;
1569
+ };
1570
+ QuoteChangeResult: {
1571
+ /** @description Tax included in the account quote. Absent in public catalogue estimates. */
1572
+ tax_amount?: components["schemas"]["Money"];
1573
+ /** @description Tax already included in the displayed price. */
1574
+ tax_included_amount?: components["schemas"]["Money"];
1575
+ index: number;
1576
+ /** Format: uuid */
1577
+ subscription_item_id: string;
1578
+ /**
1579
+ * Format: uuid
1580
+ * @description The price that would apply. Always returned.
1581
+ */
1582
+ price_id: string;
1583
+ plan_name?: string;
1584
+ /**
1585
+ * @description What remains unused of the period already paid for, valued at the price it was
1586
+ * bought at rather than at today's price.
1587
+ */
1588
+ unused_credit?: components["schemas"]["Money"];
1589
+ /** @description What the new configuration costs for the rest of that period. */
1590
+ new_charge?: components["schemas"]["Money"];
1591
+ /**
1592
+ * @description What would be owed. Zero when the change reduces the price; the difference then
1593
+ * appears in `refundable_amount`.
1594
+ */
1595
+ payable_now: components["schemas"]["Money"];
1596
+ /**
1597
+ * @description What would be returned. It goes back to the sources that originally paid rather
1598
+ * than being offset against `payable_now`, so that a purchase made with credit is
1599
+ * refunded as credit.
1600
+ */
1601
+ refundable_amount: components["schemas"]["Money"];
1602
+ /**
1603
+ * Format: date-time
1604
+ * @description When the current period ends. A change does not move it; the next renewal is
1605
+ * charged at the new price.
1606
+ */
1607
+ period_end?: string;
1608
+ currency: string;
1609
+ };
1610
+ Quote: {
1611
+ lines?: components["schemas"]["QuoteLineResult"][];
1612
+ changes?: components["schemas"]["QuoteChangeResult"][];
1613
+ /**
1614
+ * @description What would be owed in total. Amounts to be returned are not netted off it.
1615
+ *
1616
+ * Null when any line could not be priced. What would be owed is not knowable then, and a
1617
+ * total that silently left the unpriced lines out would read as a smaller bill rather than
1618
+ * an incomplete one — the per-line `priced` flag is easy to skip, a missing total is not.
1619
+ */
1620
+ total?: components["schemas"]["Money"] | null;
1621
+ /** @description What would be returned in total. */
1622
+ total_refundable?: components["schemas"]["Money"];
1623
+ currency: string;
1624
+ };
1625
+ BillingAccount: {
1626
+ /** Format: int64 */
1627
+ id: number;
1628
+ /** @description What you call this account. */
1629
+ name?: string;
1630
+ /** @description The name invoices are made out to. Copied onto each invoice when it is issued. */
1631
+ legal_name?: string;
1632
+ /** @description Where invoices are sent. */
1633
+ email?: string;
1634
+ address_line1?: string;
1635
+ address_line2?: string;
1636
+ address_city?: string;
1637
+ address_state?: string;
1638
+ address_postal_code?: string;
1639
+ /** @description Two-letter code. */
1640
+ address_country?: string;
1641
+ tax_id?: string;
1642
+ /** @description Fixed when the account was opened. */
1643
+ currency: string;
1644
+ /** @enum {string} */
1645
+ status: "active" | "suspended" | "closed";
1646
+ /**
1647
+ * @description How far past the suspension threshold this account may go before its resources are
1648
+ * suspended. "0" means none: the account is suspended as soon as it crosses the threshold.
1649
+ */
1650
+ grace_amount?: string;
1651
+ /**
1652
+ * Format: int64
1653
+ * @description How long this account has to top up after crossing the suspension threshold.
1654
+ * 0 means none. Whichever runs out first — this or grace_amount — ends the grace.
1655
+ */
1656
+ grace_period_seconds?: number;
1657
+ /** Format: date-time */
1658
+ created_at: string;
1659
+ };
1660
+ BillingAccountCreate: {
1661
+ currency: string;
1662
+ name?: string;
1663
+ legal_name?: string;
1664
+ email?: string;
1665
+ };
1666
+ BillingAccountUpdate: {
1667
+ name?: string;
1668
+ legal_name?: string;
1669
+ email?: string;
1670
+ address_line1?: string;
1671
+ address_line2?: string;
1672
+ address_city?: string;
1673
+ address_state?: string;
1674
+ address_postal_code?: string;
1675
+ address_country?: string;
1676
+ tax_id?: string;
1677
+ };
1678
+ BillingAccountList: {
1679
+ items: components["schemas"]["BillingAccount"][];
1680
+ /** Format: int64 */
1681
+ total_count?: number;
1682
+ };
1683
+ AccountBalance: {
1684
+ /** Format: int64 */
1685
+ billing_account_id: number;
1686
+ currency: string;
1687
+ /** @description Funds paid in and not yet spent. This is the part that can be refunded. */
1688
+ cash: components["schemas"]["Money"];
1689
+ /** @description Reserved by orders that have not completed. */
1690
+ held: components["schemas"]["Money"];
1691
+ /**
1692
+ * @description Metered usage priced this month but not yet invoiced. It is already committed even
1693
+ * though no invoice exists for it yet.
1694
+ */
1695
+ accrued: components["schemas"]["Money"];
1696
+ /** @description Granted credit. Spendable, but not withdrawable. */
1697
+ credit: components["schemas"]["Money"];
1698
+ /** @description Voucher balance, spendable within each voucher's own scope. */
1699
+ voucher: components["schemas"]["Money"];
1700
+ /**
1701
+ * @description `cash` less `accrued` and `held` — what is actually available at checkout. It goes
1702
+ * negative when usage has exceeded the balance. Credit and vouchers are shown
1703
+ * separately because each can only pay for what it covers.
1704
+ */
1705
+ spendable: components["schemas"]["Money"];
1706
+ };
1707
+ ProjectBinding: {
1708
+ /** Format: uuid */
1709
+ project_id: string;
1710
+ /** Format: int64 */
1711
+ billing_account_id: number;
1712
+ account_name?: string;
1713
+ currency: string;
1714
+ /** Format: date-time */
1715
+ effective_from: string;
1716
+ /** Format: date-time */
1717
+ effective_to?: string | null;
1718
+ };
1719
+ ProjectBindingList: {
1720
+ items: components["schemas"]["ProjectBinding"][];
1721
+ /** Format: int64 */
1722
+ total_count?: number;
1723
+ };
1724
+ ProjectPayerSet: {
1725
+ /** Format: int64 */
1726
+ billing_account_id: number;
1727
+ };
1728
+ /**
1729
+ * @description A narrow view of the paying account, restricted to what a project member needs in order
1730
+ * to know whether the project's resources will keep running.
1731
+ */
1732
+ ProjectPayer: {
1733
+ /**
1734
+ * Format: int64
1735
+ * @description Identifies the payer. Use it to link into the billing centre.
1736
+ */
1737
+ billing_account_id: number;
1738
+ name: string;
1739
+ /**
1740
+ * @description Everything this project is charged is in this currency, and it cannot change while
1741
+ * the account exists.
1742
+ */
1743
+ currency: string;
1744
+ /**
1745
+ * @description What remains to be spent. It already accounts for this month's uninvoiced usage, so
1746
+ * it is what will be available at checkout rather than the cash figure shown in the
1747
+ * billing centre. It goes negative when usage has exceeded the balance.
1748
+ */
1749
+ spendable_amount: components["schemas"]["Money"];
1750
+ /**
1751
+ * @description `active` — nothing is owed. `past_due` — the account owes money and resources are
1752
+ * still running. `suspended` — resources have been stopped for non-payment.
1753
+ * @enum {string}
1754
+ */
1755
+ status: "active" | "past_due" | "suspended";
1756
+ /**
1757
+ * Format: date-time
1758
+ * @description When this project's resources will be stopped unless the account is topped up.
1759
+ * Absent while `status` is `active`.
1760
+ */
1761
+ suspends_at?: string | null;
1762
+ };
1763
+ SettleResult: {
1764
+ /** Format: uuid */
1765
+ invoice_id?: string | null;
1766
+ /** @description Zero when there was nothing outstanding, in which case no invoice is created. */
1767
+ invoiced_amount: components["schemas"]["Money"];
1768
+ currency: string;
1769
+ };
1770
+ TopUp: {
1771
+ /** Format: uuid */
1772
+ id: string;
1773
+ /** Format: int64 */
1774
+ billing_account_id: number;
1775
+ /** @description What is credited to the account, in the account's own currency. */
1776
+ amount: components["schemas"]["Money"];
1777
+ currency: string;
1778
+ /**
1779
+ * @description How much of this top-up has not been spent yet. This is the part that can still be
1780
+ * returned to where it was paid from.
1781
+ */
1782
+ remaining_amount?: components["schemas"]["Money"];
1783
+ /**
1784
+ * @description `pending` until the payment provider confirms. The balance increases on `succeeded`.
1785
+ *
1786
+ * A checkout the payer abandoned ends up `failed` too, with `failure_reason` saying
1787
+ * so. Nothing was charged in that case.
1788
+ * @enum {string}
1789
+ */
1790
+ status: "pending" | "requires_action" | "succeeded" | "failed";
1791
+ /** @description Which payment provider collected it. */
1792
+ provider?: string;
1793
+ /**
1794
+ * @description The currency the payer was actually charged in, when the checkout page collected a
1795
+ * local one. Absent when it was the same as the account's.
1796
+ */
1797
+ presentment_currency?: string;
1798
+ /**
1799
+ * @description What was charged, in `presentment_currency`. It will not equal `amount`, and it is
1800
+ * the figure that appears on the payer's card or wallet statement.
1801
+ */
1802
+ presentment_amount?: components["schemas"]["Money"];
1803
+ /** @description Why it did not go through. Present with `failed`. */
1804
+ failure_reason?: string;
1805
+ /** @description Where the payer completes the payment. Absent once it has completed. */
1806
+ checkout_url?: string;
1807
+ /** @description Provider client secret for completing this same payment attempt in the browser. */
1808
+ client_secret?: string;
1809
+ /** @description Provider publishable key used with client_secret. */
1810
+ publishable_key?: string;
1811
+ /** Format: date-time */
1812
+ created_at: string;
1813
+ /**
1814
+ * Format: date-time
1815
+ * @description When the funds arrived. Later than `created_at` — by days for a bank transfer — so
1816
+ * reconciling against a statement uses this rather than the moment it was started.
1817
+ * Absent until the payment completes.
1818
+ */
1819
+ settled_at?: string | null;
1820
+ };
1821
+ TopUpCreate: {
1822
+ /** Format: int64 */
1823
+ billing_account_id: number;
1824
+ /**
1825
+ * @description In the account's currency, and no finer than that currency's smallest unit:
1826
+ * two decimals for most, none for the yen. A finer amount is refused here rather
1827
+ * than at the checkout page, where the payer would see the provider's own wording
1828
+ * instead of an explanation.
1829
+ *
1830
+ * There is a minimum, which differs by currency. Below it the provider's fee
1831
+ * exceeds the top-up itself, so such a payment costs more to accept than it brings.
1832
+ * The minimum in force is returned with the rejection.
1833
+ */
1834
+ amount: components["schemas"]["Money"];
1835
+ /**
1836
+ * Format: uuid
1837
+ * @description Charge a saved method instead of opening a checkout page.
1838
+ */
1839
+ payment_method_id?: string;
1840
+ /** @description Where to send the payer after checkout. */
1841
+ return_url?: string;
1842
+ /**
1843
+ * @description Retrying with the same key returns the original top-up rather than starting a
1844
+ * second one.
1845
+ */
1846
+ idempotency_key: string;
1847
+ };
1848
+ TopUpList: {
1849
+ items: components["schemas"]["TopUp"][];
1850
+ /** Format: int64 */
1851
+ total_count?: number;
1852
+ };
1853
+ PaymentMethod: {
1854
+ /** Format: uuid */
1855
+ id: string;
1856
+ /** Format: int64 */
1857
+ billing_account_id: number;
1858
+ provider: string;
1859
+ brand?: string;
1860
+ last4?: string;
1861
+ exp_month?: number | null;
1862
+ exp_year?: number | null;
1863
+ is_default: boolean;
1864
+ /** @enum {string} */
1865
+ status: "active" | "expired" | "removed";
1866
+ };
1867
+ PaymentMethodList: {
1868
+ items: components["schemas"]["PaymentMethod"][];
1869
+ /** Format: int64 */
1870
+ total_count?: number;
1871
+ };
1872
+ PaymentMethodSetup: {
1873
+ /** Format: int64 */
1874
+ billing_account_id: number;
1875
+ return_url?: string;
1876
+ };
1877
+ /**
1878
+ * @description What the payment provider's browser library needs in order to collect a card. There is
1879
+ * no address to redirect to: the form is rendered in the page, and the card goes straight
1880
+ * from the browser to the provider.
1881
+ */
1882
+ PaymentMethodSetupResult: {
1883
+ /**
1884
+ * @description The provider's identifier for this attempt. Use it to tell a reloaded page apart
1885
+ * from a second attempt.
1886
+ */
1887
+ setup_id: string;
1888
+ /**
1889
+ * @description Authorises this one attempt with the provider, and nothing else. Pass it to the
1890
+ * provider's library; it is not an API credential and grants no access here.
1891
+ */
1892
+ client_secret: string;
1893
+ /**
1894
+ * @description The provider's public key to initialise its library with. It differs between test
1895
+ * and live, so read it from here rather than compiling it in.
1896
+ */
1897
+ publishable_key: string;
1898
+ /** Format: date-time */
1899
+ expires_at?: string;
1900
+ };
1901
+ /**
1902
+ * @description Safe to call again. While an attempt is still with the payment provider, calling this
1903
+ * returns that attempt rather than starting a second one, so a customer who reloads the
1904
+ * page is not charged twice.
1905
+ *
1906
+ * A new attempt is started only once the previous one has failed.
1907
+ */
1908
+ PayRequest: {
1909
+ /**
1910
+ * Format: uuid
1911
+ * @description Which method to charge the remainder to. The default is used when omitted.
1912
+ */
1913
+ payment_method_id?: string;
1914
+ /**
1915
+ * @description Whether to apply the account balance first. Set it to `false` to charge the full
1916
+ * amount to a payment method.
1917
+ * @default true
1918
+ */
1919
+ use_balance?: boolean;
1920
+ return_url?: string;
1921
+ };
1922
+ /**
1923
+ * @description Name at least one invoice or order. They must all belong to the same account and share
1924
+ * its currency; anything else is refused rather than partly paid.
1925
+ */
1926
+ PayTogetherRequest: {
1927
+ invoice_ids?: string[];
1928
+ order_ids?: string[];
1929
+ return_url?: string;
1930
+ /**
1931
+ * @description Required when the provider is involved, because that is where the money moves. The
1932
+ * same key returns the same checkout address instead of opening a second one.
1933
+ */
1934
+ idempotency_key?: string;
1935
+ };
1936
+ /**
1937
+ * @description Where the payment has got to.
1938
+ *
1939
+ * `succeeded` — collected in full. Nothing further is owed.
1940
+ *
1941
+ * `processing` — submitted to the payment provider and awaiting its answer. **Do not
1942
+ * submit it again**; poll the invoice or order, or wait to be notified. Some methods take
1943
+ * minutes and a few take days.
1944
+ *
1945
+ * `requires_action` — the payer has to finish it at `checkout_url`, typically by
1946
+ * confirming with their bank. It becomes `processing` once they do.
1947
+ *
1948
+ * `failed` — this attempt did not go through. `failure_reason` says why, and paying again
1949
+ * starts a fresh attempt.
1950
+ *
1951
+ * The provider's own answer is what decides: an attempt is only `succeeded` once the
1952
+ * provider says so, never because this call returned.
1953
+ * @enum {string}
1954
+ */
1955
+ PaymentStatus: "succeeded" | "processing" | "requires_action" | "failed";
1956
+ PaymentResult: {
1957
+ /**
1958
+ * Format: uuid
1959
+ * @description This attempt. The same identifier comes back while it is still in flight, which is
1960
+ * how a repeated call is told apart from a genuine second payment.
1961
+ */
1962
+ payment_attempt_id: string;
1963
+ status: components["schemas"]["PaymentStatus"];
1964
+ amount_paid: components["schemas"]["Money"];
1965
+ /**
1966
+ * @description What is still outstanding. Zero once the payment succeeds. Unchanged while
1967
+ * `processing`: nothing is collected until the provider confirms it.
1968
+ */
1969
+ amount_due: components["schemas"]["Money"];
1970
+ currency: string;
1971
+ /**
1972
+ * @description How much came from the account balance. Applied immediately, and released again if
1973
+ * the rest of the payment fails, so a failed card does not leave part of the balance
1974
+ * consumed against an unpaid invoice.
1975
+ */
1976
+ balance_applied?: components["schemas"]["Money"];
1977
+ /** @description Present with `requires_action`. */
1978
+ checkout_url?: string;
1979
+ /** @description Provider client secret for completing this same payment attempt in the browser. */
1980
+ client_secret?: string;
1981
+ /** @description Provider publishable key used with client_secret. */
1982
+ publishable_key?: string;
1983
+ /**
1984
+ * @description Whether paying again is worth attempting. False for a refusal that will keep
1985
+ * happening — a closed account, an amount over a limit — so that a client does not
1986
+ * retry in a loop.
1987
+ */
1988
+ retriable?: boolean;
1989
+ /**
1990
+ * Format: date-time
1991
+ * @description The earliest sensible moment to try again. Present when the provider asked for a
1992
+ * wait.
1993
+ */
1994
+ retry_after?: string | null;
1995
+ /** Format: uuid */
1996
+ invoice_id?: string | null;
1997
+ /** Format: uuid */
1998
+ order_id?: string | null;
1999
+ failure_reason?: string;
2000
+ };
2001
+ /** @enum {string} */
2002
+ InvoiceStatus: "draft" | "open" | "paid" | "void" | "uncollectible";
2003
+ Invoice: {
2004
+ /**
2005
+ * Format: uuid
2006
+ * @description The purchase that produced this invoice. Absent on usage invoices.
2007
+ */
2008
+ order_id?: string;
2009
+ /** Format: uuid */
2010
+ id: string;
2011
+ /** Format: int64 */
2012
+ billing_account_id: number;
2013
+ /** @description Numbered per account and per month. */
2014
+ number: string;
2015
+ /**
2016
+ * @description What produced it — metered usage for a period, a purchase, or a correction.
2017
+ * @enum {string}
2018
+ */
2019
+ type?: "usage" | "order" | "adjustment";
2020
+ currency: string;
2021
+ status: components["schemas"]["InvoiceStatus"];
2022
+ subtotal?: components["schemas"]["Money"];
2023
+ discount_amount?: components["schemas"]["Money"];
2024
+ tax_amount?: components["schemas"]["Money"];
2025
+ /** @description Paid from credit or a voucher. */
2026
+ credit_applied?: components["schemas"]["Money"];
2027
+ /** @description Subtotal less discount, plus tax, less credit applied. */
2028
+ total: components["schemas"]["Money"];
2029
+ amount_paid?: components["schemas"]["Money"];
2030
+ /** Format: date-time */
2031
+ period_start: string;
2032
+ /**
2033
+ * Format: date-time
2034
+ * @description Exclusive.
2035
+ */
2036
+ period_end: string;
2037
+ /**
2038
+ * @description Who this was billed to, as recorded when the invoice was issued. Later changes to
2039
+ * the account do not alter it.
2040
+ */
2041
+ customer_name?: string;
2042
+ customer_email?: string;
2043
+ customer_tax_id?: string;
2044
+ customer_address_line1?: string;
2045
+ customer_address_line2?: string;
2046
+ customer_address_city?: string;
2047
+ customer_address_state?: string;
2048
+ customer_address_postal_code?: string;
2049
+ customer_address_country?: string;
2050
+ /** Format: date-time */
2051
+ paid_at?: string | null;
2052
+ };
2053
+ InvoiceList: {
2054
+ items: components["schemas"]["Invoice"][];
2055
+ /** Format: int64 */
2056
+ total_count?: number;
2057
+ };
2058
+ InvoiceItem: {
2059
+ /** @description Discount applied to this line before tax. */
2060
+ discount_amount?: string;
2061
+ /** @description Tax on the discounted line, including tax already included in the price. */
2062
+ tax_amount?: string;
2063
+ /** @description The part of tax_amount already included in amount. */
2064
+ tax_included_amount?: string;
2065
+ /**
2066
+ * Format: uuid
2067
+ * @description The original order line. Refunds follow that line's original payment sources.
2068
+ */
2069
+ order_item_id?: string;
2070
+ /** Format: uuid */
2071
+ id: string;
2072
+ /** @enum {string} */
2073
+ type?: "usage" | "subscription" | "one_time" | "adjustment" | "credit";
2074
+ /** Format: uuid */
2075
+ project_id?: string | null;
2076
+ resource_id?: string;
2077
+ /**
2078
+ * @description The wording as recorded when the invoice was issued. It is not re-translated
2079
+ * afterwards, so that an invoice continues to read as it did when it was sent.
2080
+ */
2081
+ description: string;
2082
+ unit?: string;
2083
+ quantity?: string;
2084
+ /** @description The part covered by an included allowance, and therefore not charged. */
2085
+ deducted_quantity?: string;
2086
+ unit_amount?: components["schemas"]["Money"];
2087
+ amount: components["schemas"]["Money"];
2088
+ currency: string;
2089
+ /** Format: date-time */
2090
+ period_start?: string | null;
2091
+ /** Format: date-time */
2092
+ period_end?: string | null;
2093
+ };
2094
+ InvoiceItemList: {
2095
+ items: components["schemas"]["InvoiceItem"][];
2096
+ /** Format: int64 */
2097
+ total_count?: number;
2098
+ };
2099
+ /**
2100
+ * @description What moved the money. These are the events that change the account's cash balance.
2101
+ *
2102
+ * Charges for usage and amounts reserved by orders are not here: usage appears among the
2103
+ * charges and on invoices, and a reservation appears as an allocation.
2104
+ * @enum {string}
2105
+ */
2106
+ TransactionType: "topup" | "refund" | "payout" | "adjustment";
2107
+ Transaction: {
2108
+ /** Format: uuid */
2109
+ id: string;
2110
+ /** Format: int64 */
2111
+ billing_account_id?: number;
2112
+ type: components["schemas"]["TransactionType"];
2113
+ /** @description Signed. Positive increases the balance, negative reduces it. */
2114
+ amount: components["schemas"]["Money"];
2115
+ currency: string;
2116
+ /** @description Why the money moved, on a manual adjustment. */
2117
+ reason?: string;
2118
+ /** Format: uuid */
2119
+ invoice_id?: string | null;
2120
+ /** Format: uuid */
2121
+ order_id?: string | null;
2122
+ /**
2123
+ * @description `pending` is a payment still with the provider. Only one may be pending against any
2124
+ * one invoice or order.
2125
+ *
2126
+ * `failed` covers a payment the provider refused and one the payer walked away from
2127
+ * alike; `failure_reason` says which. There is no separate cancelled state, because
2128
+ * what to do next is the same either way — start a new one.
2129
+ * @enum {string}
2130
+ */
2131
+ status: "pending" | "succeeded" | "failed";
2132
+ /** Format: date-time */
2133
+ created_at: string;
2134
+ };
2135
+ TransactionList: {
2136
+ items: components["schemas"]["Transaction"][];
2137
+ /** Format: int64 */
2138
+ total_count?: number;
2139
+ };
2140
+ CreditGrant: {
2141
+ /** Format: uuid */
2142
+ id: string;
2143
+ /** Format: int64 */
2144
+ billing_account_id?: number;
2145
+ /**
2146
+ * @description Where it came from. `voucher` was redeemed from a code and carries its own
2147
+ * restrictions; `manual` was issued directly, typically to put something right.
2148
+ * @enum {string}
2149
+ */
2150
+ source_type?: "promotion" | "voucher" | "manual" | "membership";
2151
+ name: string;
2152
+ amount: components["schemas"]["Money"];
2153
+ remaining_amount: components["schemas"]["Money"];
2154
+ currency: string;
2155
+ /** @description What this credit may pay for. No restrictions means anything on the account. */
2156
+ applies_to?: components["schemas"]["Applicability"];
2157
+ /** @description The restrictions in one sentence, ready to display. */
2158
+ applies_to_summary?: string;
2159
+ /** @enum {string} */
2160
+ status: "active" | "depleted" | "expired" | "voided";
2161
+ /** Format: date-time */
2162
+ valid_from: string;
2163
+ /** Format: date-time */
2164
+ valid_until?: string | null;
2165
+ };
2166
+ CreditGrantList: {
2167
+ items: components["schemas"]["CreditGrant"][];
2168
+ /** Format: int64 */
2169
+ total_count?: number;
2170
+ };
2171
+ Allocation: {
2172
+ /** Format: uuid */
2173
+ id: string;
2174
+ /** @enum {string} */
2175
+ source_type: "transaction" | "credit_grant";
2176
+ /** Format: uuid */
2177
+ source_id: string;
2178
+ /** @enum {string} */
2179
+ target_type: "hold" | "order_item" | "invoice_item";
2180
+ /** Format: uuid */
2181
+ target_id: string;
2182
+ amount: components["schemas"]["Money"];
2183
+ currency: string;
2184
+ /** Format: date-time */
2185
+ allocated_at: string;
2186
+ /** Format: date-time */
2187
+ reversed_at?: string | null;
2188
+ };
2189
+ AllocationList: {
2190
+ items: components["schemas"]["Allocation"][];
2191
+ /** Format: int64 */
2192
+ total_count?: number;
2193
+ };
2194
+ /**
2195
+ * @description Name exactly one of the three targets. Naming none leaves the amount undecided;
2196
+ * naming two leaves it ambiguous, and both would have to be resolved by guessing.
2197
+ */
2198
+ RefundRequest: {
2199
+ /** Format: uuid */
2200
+ invoice_id?: string;
2201
+ /** Format: uuid */
2202
+ order_id?: string;
2203
+ /**
2204
+ * Format: uuid
2205
+ * @description The period to end early. Use this to give back a prepaid term that still has
2206
+ * time left on it.
2207
+ */
2208
+ subscription_period_id?: string;
2209
+ /**
2210
+ * @description How much to give back. Absent asks for everything still refundable on the target.
2211
+ *
2212
+ * More than what remains is refused rather than reduced to the remainder: a caller
2213
+ * asking for more than it can have has miscounted, and quietly giving it less
2214
+ * hides that.
2215
+ */
2216
+ amount?: components["schemas"]["Money"];
2217
+ reason: string;
2218
+ idempotency_key: string;
2219
+ };
2220
+ Refund: {
2221
+ /** Format: uuid */
2222
+ id: string;
2223
+ /** Format: int64 */
2224
+ billing_account_id?: number;
2225
+ /** Format: uuid */
2226
+ invoice_id?: string | null;
2227
+ /** Format: uuid */
2228
+ order_id?: string | null;
2229
+ requested_amount: components["schemas"]["Money"];
2230
+ /** @description What has actually been returned. */
2231
+ settled_amount?: components["schemas"]["Money"];
2232
+ /**
2233
+ * @description Withheld from what reaches the payer. It applies only to cash returned to a payment
2234
+ * method, so it is zero when `destination` is `balance`, and it is never taken out of
2235
+ * credit or a voucher.
2236
+ *
2237
+ * `settled_amount` is the amount put back against what was paid; the payer receives
2238
+ * that less this.
2239
+ */
2240
+ fee_amount?: components["schemas"]["Money"];
2241
+ currency: string;
2242
+ /**
2243
+ * @description Where the cash went.
2244
+ * @enum {string}
2245
+ */
2246
+ destination?: "balance" | "provider";
2247
+ /**
2248
+ * @description `pending` — accepted, not yet sent to the payment provider. `processing` — with the
2249
+ * provider and awaiting its answer, which takes days for some methods. Neither is
2250
+ * final, and neither means the money has moved.
2251
+ * @enum {string}
2252
+ */
2253
+ status: "pending" | "processing" | "succeeded" | "failed";
2254
+ reason?: string;
2255
+ /** Format: date-time */
2256
+ created_at: string;
2257
+ };
2258
+ RefundList: {
2259
+ items: components["schemas"]["Refund"][];
2260
+ /** Format: int64 */
2261
+ total_count?: number;
2262
+ };
2263
+ RefundSource: {
2264
+ /**
2265
+ * @description Where this part of the money came from, and therefore where it goes back to.
2266
+ * Only `cash` can reach a card or a spendable balance; credit and vouchers return
2267
+ * to themselves and never become cash.
2268
+ * @enum {string}
2269
+ */
2270
+ type: "cash" | "credit" | "voucher";
2271
+ amount: components["schemas"]["Money"];
2272
+ };
2273
+ /** @description What a full refund would return, and where each part of it would go. */
2274
+ RefundQuote: {
2275
+ /** @description The most that can still be returned, before any fee. */
2276
+ refundable_amount: components["schemas"]["Money"];
2277
+ /**
2278
+ * @description Withheld from the cash part. Zero when `destination` is `balance`, and never taken
2279
+ * out of credit or a voucher.
2280
+ */
2281
+ fee_amount: components["schemas"]["Money"];
2282
+ /** @description `refundable_amount` less `fee_amount`. */
2283
+ net_amount: components["schemas"]["Money"];
2284
+ currency: string;
2285
+ /**
2286
+ * @description Where the cash part would go. `provider` returns it to the method it was paid
2287
+ * with; `balance` credits the account instead, which is the answer whenever the cash
2288
+ * came from more than one place or never went through a provider at all.
2289
+ * @enum {string}
2290
+ */
2291
+ destination: "balance" | "provider";
2292
+ /**
2293
+ * @description How `refundable_amount` splits by where the money came from. The amounts sum to it.
2294
+ *
2295
+ * Show this rather than a single figure. A part returned as credit or as a voucher
2296
+ * does not appear on a card statement, so a customer told only the net amount will
2297
+ * ask why less than that arrived.
2298
+ */
2299
+ sources: components["schemas"]["RefundSource"][];
2300
+ /**
2301
+ * Format: date-time
2302
+ * @description The last moment a refund can be asked for here. Measured from when the purchase was
2303
+ * paid for, not from today. Absent when this cannot be refunded without support at
2304
+ * all — metered usage, for one, which is never self-service.
2305
+ */
2306
+ self_service_until?: string | null;
2307
+ };
2308
+ UsageCharge: {
2309
+ /** Format: uuid */
2310
+ id: string;
2311
+ /** Format: uuid */
2312
+ project_id?: string;
2313
+ product: components["schemas"]["ObjectIdentity"];
2314
+ /** @description Which resource this was charged for. Empty for charges not tied to one. */
2315
+ resource_id?: string;
2316
+ meter: components["schemas"]["ObjectIdentity"];
2317
+ unit?: string;
2318
+ /** @description The attributes the rate was chosen by, such as region and machine type. */
2319
+ dimensions?: {
2320
+ [key: string]: string;
2321
+ };
2322
+ /** Format: date-time */
2323
+ window_start: string;
2324
+ /**
2325
+ * Format: date-time
2326
+ * @description Exclusive.
2327
+ */
2328
+ window_end: string;
2329
+ /** @description How much was used, before any included allowance. */
2330
+ gross_quantity?: string;
2331
+ /** @description How much of that was covered by an allowance. */
2332
+ deducted_quantity?: string;
2333
+ /** @description What was charged for — the gross quantity less the part covered. */
2334
+ quantity: string;
2335
+ unit_amount?: components["schemas"]["Money"];
2336
+ amount?: components["schemas"]["Money"];
2337
+ currency: string;
2338
+ /**
2339
+ * Format: uuid
2340
+ * @description Absent until the period is invoiced.
2341
+ */
2342
+ invoice_id?: string | null;
2343
+ };
2344
+ UsageChargeList: {
2345
+ items: components["schemas"]["UsageCharge"][];
2346
+ /** Format: int64 */
2347
+ total_count?: number;
2348
+ };
2349
+ SpendRow: {
2350
+ product?: components["schemas"]["ObjectIdentity"];
2351
+ /** Format: uuid */
2352
+ plan_id?: string;
2353
+ plan_name?: string;
2354
+ /** @description Present only when grouped by resource. */
2355
+ resource_id?: string;
2356
+ amount: components["schemas"]["Money"];
2357
+ currency: string;
2358
+ };
2359
+ SpendRowList: {
2360
+ items: components["schemas"]["SpendRow"][];
2361
+ /** @description The sum over the whole period, not only the page returned. */
2362
+ total: components["schemas"]["Money"];
2363
+ currency: string;
2364
+ /** Format: int64 */
2365
+ total_count?: number;
2366
+ };
2367
+ Subscription: {
2368
+ /** Format: uuid */
2369
+ id: string;
2370
+ /**
2371
+ * Format: uuid
2372
+ * @description Which project this is for. Absent when it was bought at account level, such as a
2373
+ * membership, which belongs to no single project.
2374
+ */
2375
+ project_id?: string | null;
2376
+ /** Format: int64 */
2377
+ billing_account_id?: number;
2378
+ /** Format: uuid */
2379
+ product_id: string;
2380
+ product?: components["schemas"]["ObjectIdentity"];
2381
+ /**
2382
+ * @description `pending` is a subscription created by an order that has not completed, so it
2383
+ * appears in the list before anything under it is running.
2384
+ * @enum {string}
2385
+ */
2386
+ status: "pending" | "active" | "suspended" | "canceled" | "terminated";
2387
+ /** Format: int64 */
2388
+ item_count?: number;
2389
+ };
2390
+ SubscriptionList: {
2391
+ items: components["schemas"]["Subscription"][];
2392
+ /** Format: int64 */
2393
+ total_count?: number;
2394
+ };
2395
+ SubscriptionItem: {
2396
+ /** Format: uuid */
2397
+ id: string;
2398
+ /** Format: uuid */
2399
+ subscription_id?: string;
2400
+ /**
2401
+ * Format: uuid
2402
+ * @description Which project this is for. Absent when it was bought at account level, such as a
2403
+ * membership, which belongs to no single project.
2404
+ */
2405
+ project_id?: string | null;
2406
+ product?: components["schemas"]["ObjectIdentity"];
2407
+ /** Format: uuid */
2408
+ plan_id: string;
2409
+ plan_name?: string;
2410
+ /** Format: uuid */
2411
+ price_id: string;
2412
+ resource_id?: string;
2413
+ quantity: string;
2414
+ /**
2415
+ * Format: date-time
2416
+ * @description Present for prepaid items. Absent for metered ones, which have no end date.
2417
+ */
2418
+ paid_until?: string | null;
2419
+ auto_renew?: boolean;
2420
+ /** @enum {string} */
2421
+ status: "pending" | "active" | "suspended" | "canceled" | "terminated";
2422
+ /** Format: date-time */
2423
+ started_at?: string | null;
2424
+ /** Format: date-time */
2425
+ ended_at?: string | null;
2426
+ };
2427
+ SubscriptionItemList: {
2428
+ items: components["schemas"]["SubscriptionItem"][];
2429
+ /** Format: int64 */
2430
+ total_count?: number;
2431
+ };
2432
+ RenewRequest: {
2433
+ /**
2434
+ * @description How many further periods to buy.
2435
+ * @default 1
2436
+ */
2437
+ periods?: number;
2438
+ /** Format: uuid */
2439
+ payment_method_id?: string;
2440
+ /** @default true */
2441
+ use_balance?: boolean;
2442
+ return_url?: string;
2443
+ idempotency_key: string;
2444
+ };
2445
+ AutoRenewSet: {
2446
+ auto_renew: boolean;
2447
+ };
2448
+ /** @description A resource currently accruing charges by the second. */
2449
+ ActiveResource: {
2450
+ /**
2451
+ * Format: uuid
2452
+ * @description The metered subscription item charged for this resource; null for shared service usage.
2453
+ */
2454
+ subscription_item_id?: string | null;
2455
+ resource_id: string;
2456
+ product: components["schemas"]["ObjectIdentity"];
2457
+ /** @description What it is, as its own service names it. */
2458
+ resource_type?: string;
2459
+ meter: components["schemas"]["ObjectIdentity"];
2460
+ unit?: string;
2461
+ /** @description How much is held — cores, MiB, cards. Not how much has been used. */
2462
+ quantity: string;
2463
+ dimensions?: {
2464
+ [key: string]: string;
2465
+ };
2466
+ /** @enum {string} */
2467
+ status: "active" | "suspended";
2468
+ /** Format: date-time */
2469
+ started_at: string;
2470
+ /**
2471
+ * Format: date-time
2472
+ * @description Charges are settled up to this moment.
2473
+ */
2474
+ last_billed_until?: string;
2475
+ };
2476
+ ActiveResourceList: {
2477
+ items: components["schemas"]["ActiveResource"][];
2478
+ /** Format: int64 */
2479
+ total_count?: number;
2480
+ };
2481
+ /** @enum {string} */
2482
+ OrderState: "pending" | "paid" | "fulfilled" | "failed" | "canceled";
2483
+ Order: {
2484
+ /** @description Total tax after discounts, including any tax already included in the price. */
2485
+ tax_amount?: string;
2486
+ /** @description The part of tax_amount already included in gross_amount; it is not charged again. */
2487
+ tax_included_amount?: string;
2488
+ /** Format: uuid */
2489
+ id: string;
2490
+ /**
2491
+ * Format: uuid
2492
+ * @description Which project it was bought for. Absent for a purchase made at account level, such
2493
+ * as a membership.
2494
+ */
2495
+ project_id?: string | null;
2496
+ /** Format: int64 */
2497
+ billing_account_id?: number;
2498
+ currency: string;
2499
+ /**
2500
+ * @description `adopt` brings a resource that already existed under billing. It charges nothing at
2501
+ * the time and starts billing from the moment agreed.
2502
+ * @enum {string}
2503
+ */
2504
+ type: "purchase" | "renew" | "change" | "adopt";
2505
+ state: components["schemas"]["OrderState"];
2506
+ gross_amount?: components["schemas"]["Money"];
2507
+ discount_amount?: components["schemas"]["Money"];
2508
+ amount: components["schemas"]["Money"];
2509
+ /** @description What is still outstanding. Zero once paid. */
2510
+ amount_due?: components["schemas"]["Money"];
2511
+ /** @description How much of `refundable_amount` has already gone back. */
2512
+ refunded_amount?: components["schemas"]["Money"];
2513
+ /**
2514
+ * @description When a plan change takes effect. `none` on anything that is not a change.
2515
+ *
2516
+ * `period_end` orders stay pending until the current paid period runs out. Renewing in
2517
+ * the meantime moves that moment along with it.
2518
+ * @enum {string}
2519
+ */
2520
+ change_effective?: "none" | "immediate" | "period_end";
2521
+ /**
2522
+ * @description What a downgrade gives back. It is returned to the sources that originally paid
2523
+ * rather than deducted from `amount`, so paying with granted credit gives back credit.
2524
+ *
2525
+ * Always "0" on a `period_end` change: nothing is left of the period at its end.
2526
+ */
2527
+ refundable_amount?: components["schemas"]["Money"];
2528
+ /**
2529
+ * Format: date-time
2530
+ * @description When the funds and any stock held for this order are released. After this it can no
2531
+ * longer be paid and has to be placed again. Absent once the order is settled.
2532
+ */
2533
+ reservation_expires_at?: string | null;
2534
+ /** Format: date-time */
2535
+ created_at: string;
2536
+ /**
2537
+ * @description What was bought. Present on a single order and on every order in a list, so a list
2538
+ * can be rendered without a further request per row.
2539
+ */
2540
+ items?: components["schemas"]["OrderItem"][];
2541
+ };
2542
+ OrderList: {
2543
+ items: components["schemas"]["Order"][];
2544
+ /** Format: int64 */
2545
+ total_count?: number;
2546
+ };
2547
+ /**
2548
+ * @description Give a purchase — `lines`, `changes` or `renewal_of` — to find out whether the code
2549
+ * applies to it and what it would take off. Without one the reply describes the code's
2550
+ * own terms but cannot say whether it applies, because most codes are restricted to
2551
+ * certain items or purchase actions.
2552
+ *
2553
+ * The purchase action is worked out from what is given rather than taken on trust: a
2554
+ * change is an upgrade or a downgrade according to what it costs for the remainder of
2555
+ * the period.
2556
+ */
2557
+ CodeRequest: {
2558
+ /** Format: int64 */
2559
+ billing_account_id: number;
2560
+ code: string;
2561
+ /**
2562
+ * Format: uuid
2563
+ * @description The project the purchase would be for.
2564
+ */
2565
+ project_id?: string;
2566
+ /** @description New purchases to test against, in the same shape as a quote. */
2567
+ lines?: components["schemas"]["QuoteLine"][];
2568
+ /**
2569
+ * @description Changes to existing subscriptions to test against, in the same shape as a quote.
2570
+ *
2571
+ * Give these rather than declaring an operation: whether a change counts as an
2572
+ * upgrade or a downgrade follows from what it costs, which cannot be determined
2573
+ * without the subscription item and the moment it takes effect.
2574
+ */
2575
+ changes?: components["schemas"]["QuoteChange"][];
2576
+ /** @description Subscription items being renewed, when testing a renewal. */
2577
+ renewal_of?: string[];
2578
+ };
2579
+ CodePreview: {
2580
+ /**
2581
+ * @description Whether the code itself is usable — it exists, has not expired, has not been used
2582
+ * up, and matches the account's currency. It says nothing about a particular
2583
+ * purchase; `applicable` does.
2584
+ */
2585
+ valid: boolean;
2586
+ reason?: components["schemas"]["CodeRejection"];
2587
+ /** @enum {string} */
2588
+ type: "voucher" | "discount";
2589
+ name?: string;
2590
+ /** @description For a voucher, the amount it adds. */
2591
+ amount?: components["schemas"]["Money"];
2592
+ /** @description For a percentage discount. */
2593
+ percent_off?: string;
2594
+ max_discount?: components["schemas"]["Money"];
2595
+ currency?: string;
2596
+ /**
2597
+ * @description What it may be used for. Present whether or not a purchase was given, so that the
2598
+ * terms can be shown before anything is chosen.
2599
+ */
2600
+ applies_to?: components["schemas"]["Applicability"];
2601
+ /**
2602
+ * @description The terms in one sentence, ready to display — for example "Compute, new purchases
2603
+ * only, from 100.00" or "No restriction on product or purchase type".
2604
+ */
2605
+ summary?: string;
2606
+ /** Format: date-time */
2607
+ valid_until?: string | null;
2608
+ /**
2609
+ * @description Whether it applies to the purchase given in `lines`. Absent when no purchase was
2610
+ * given.
2611
+ */
2612
+ applicable?: boolean;
2613
+ applicable_reason?: components["schemas"]["CodeRejection"];
2614
+ /**
2615
+ * @description The total of the lines that match the restrictions. This is what the threshold is
2616
+ * measured against, not the order total.
2617
+ */
2618
+ qualifying_amount?: components["schemas"]["Money"];
2619
+ /**
2620
+ * @description How much more of a qualifying purchase is needed to reach the threshold. `"0"` once
2621
+ * it is met.
2622
+ */
2623
+ shortfall?: components["schemas"]["Money"];
2624
+ /**
2625
+ * @description What it would take off this purchase. An estimate: the amount is settled at the
2626
+ * moment the order is placed.
2627
+ */
2628
+ estimated_discount?: components["schemas"]["Money"];
2629
+ };
2630
+ /**
2631
+ * @description Why a code cannot be used. `none` when it can.
2632
+ *
2633
+ * `operation_not_covered` means the code is limited to certain purchase actions — a
2634
+ * first-purchase code presented for a renewal, for example.
2635
+ *
2636
+ * `below_minimum` is accompanied by `shortfall`.
2637
+ * @enum {string}
2638
+ */
2639
+ CodeRejection: "none" | "not_found" | "expired" | "not_yet_valid" | "exhausted" | "already_redeemed" | "currency_mismatch" | "product_not_covered" | "plan_not_covered" | "price_type_not_covered" | "operation_not_covered" | "not_first_purchase" | "below_minimum";
2640
+ /**
2641
+ * @description Which purchase this applies to. `upgrade` and `downgrade` are told apart by money: a change
2642
+ * that costs more for the remainder of the period is an upgrade, one that returns money
2643
+ * is a downgrade. A change that costs neither more nor less is neither.
2644
+ *
2645
+ * `new` means a new purchase as opposed to a renewal or a change. It does not mean the
2646
+ * account's first purchase.
2647
+ * @enum {string}
2648
+ */
2649
+ PurchaseOperation: "purchase" | "renew" | "upgrade" | "downgrade";
2650
+ /**
2651
+ * @description What something may be used for. A field that is absent places no restriction on that
2652
+ * dimension; all of them absent means no restriction at all.
2653
+ *
2654
+ * A line qualifies when it satisfies every field that is set. `min_amount` is then
2655
+ * measured against **the qualifying lines only**, not the order total.
2656
+ */
2657
+ Applicability: {
2658
+ product_ids?: string[];
2659
+ plan_ids?: string[];
2660
+ price_types?: string[];
2661
+ operations?: components["schemas"]["PurchaseOperation"][];
2662
+ /** @description Restricted to your first purchase of a covered product. */
2663
+ first_purchase_only?: boolean;
2664
+ min_amount?: components["schemas"]["Money"];
2665
+ };
2666
+ CodeRedeem: {
2667
+ /** Format: int64 */
2668
+ billing_account_id: number;
2669
+ code: string;
2670
+ idempotency_key: string;
2671
+ };
2672
+ CodeRedeemResult: {
2673
+ /** @enum {string} */
2674
+ type: "voucher" | "discount";
2675
+ /**
2676
+ * Format: uuid
2677
+ * @description For a voucher, the credit that was added.
2678
+ */
2679
+ credit_grant_id?: string | null;
2680
+ amount?: components["schemas"]["Money"];
2681
+ currency?: string;
2682
+ /**
2683
+ * @description For a discount, what will happen — it is applied to the next qualifying purchase
2684
+ * rather than added to the balance.
2685
+ */
2686
+ message?: string;
2687
+ };
2688
+ Tier: {
2689
+ /** @description The upper bound of this band. Null on the last band, which has no bound. */
2690
+ up_to?: string | null;
2691
+ unit_amount: components["schemas"]["Money"];
2692
+ /** @description Charged once when this band is reached, in addition to the per-unit amount. */
2693
+ flat_amount?: components["schemas"]["Money"];
2694
+ };
2695
+ OrderItem: {
2696
+ /**
2697
+ * @description The payment timing of the selected price.
2698
+ * @enum {string}
2699
+ */
2700
+ price_type?: "metered" | "prepaid" | "one_time";
2701
+ /** @description Total tax after discounts, including any tax already included in the price. */
2702
+ tax_amount?: string;
2703
+ /** @description The part of tax_amount already included in gross_amount; it is not charged again. */
2704
+ tax_included_amount?: string;
2705
+ /** Format: uuid */
2706
+ id: string;
2707
+ /** Format: uuid */
2708
+ order_id?: string;
2709
+ /** Format: uuid */
2710
+ price_id: string;
2711
+ /**
2712
+ * Format: uuid
2713
+ * @description Which service this line belongs to.
2714
+ */
2715
+ product_id?: string;
2716
+ product?: components["schemas"]["ObjectIdentity"];
2717
+ /**
2718
+ * Format: uuid
2719
+ * @description Which plan was bought.
2720
+ */
2721
+ plan_id?: string;
2722
+ /**
2723
+ * @description What it was called when bought. It does not follow later catalogue renames and is
2724
+ * not translated.
2725
+ */
2726
+ plan_name?: string;
2727
+ resource_id?: string;
2728
+ quantity: string;
2729
+ unit_amount?: components["schemas"]["Money"];
2730
+ gross_amount?: components["schemas"]["Money"];
2731
+ discount_amount?: components["schemas"]["Money"];
2732
+ amount: components["schemas"]["Money"];
2733
+ currency: string;
2734
+ /** Format: date-time */
2735
+ service_period_start?: string | null;
2736
+ /** Format: date-time */
2737
+ service_period_end?: string | null;
2738
+ };
2739
+ OrderItemList: {
2740
+ items: components["schemas"]["OrderItem"][];
2741
+ /** Format: int64 */
2742
+ total_count?: number;
2743
+ };
2744
+ Allowance: {
2745
+ /**
2746
+ * @description Allowed values for selected meter dimensions, such as region or storage class.
2747
+ * Every specified dimension must match one listed value. Omitted dimensions are
2748
+ * unrestricted. An empty map covers all dimensions of this meter.
2749
+ */
2750
+ dimension_values?: {
2751
+ [key: string]: string[];
2752
+ };
2753
+ /** Format: uuid */
2754
+ id: string;
2755
+ /** Format: int64 */
2756
+ billing_account_id?: number;
2757
+ product: components["schemas"]["ObjectIdentity"];
2758
+ meter: components["schemas"]["ObjectIdentity"];
2759
+ /** @description The unit it is counted in, such as `MiB`. */
2760
+ unit?: string;
2761
+ /**
2762
+ * @description `included` came with a recurring purchase, `package` was bought on its own such as a
2763
+ * traffic pack, `promotional` was granted.
2764
+ * @enum {string}
2765
+ */
2766
+ source_type: "included" | "package" | "promotional";
2767
+ name: string;
2768
+ /** @description How much was granted. */
2769
+ quantity: string;
2770
+ /** @description How much is left. */
2771
+ remaining_quantity: string;
2772
+ /** @description Lower is drawn on first. Included quantities sit ahead of purchased packs. */
2773
+ priority?: number;
2774
+ /** @enum {string} */
2775
+ status: "active" | "depleted" | "expired" | "voided";
2776
+ /** Format: date-time */
2777
+ valid_from: string;
2778
+ /**
2779
+ * Format: date-time
2780
+ * @description When it lapses. Anything unused at that point is lost; it is not refunded and does
2781
+ * not carry over. Absent when it does not expire on its own.
2782
+ */
2783
+ valid_until?: string | null;
2784
+ };
2785
+ AllowanceList: {
2786
+ items: components["schemas"]["Allowance"][];
2787
+ /** Format: int64 */
2788
+ total_count?: number;
2789
+ };
2790
+ AllowanceConsumption: {
2791
+ /** Format: uuid */
2792
+ id: string;
2793
+ /** Format: uuid */
2794
+ usage_charge_id?: string;
2795
+ meter?: components["schemas"]["ObjectIdentity"];
2796
+ quantity: string;
2797
+ /** Format: date-time */
2798
+ consumed_at: string;
2799
+ /** Format: date-time */
2800
+ reversed_at?: string | null;
2801
+ };
2802
+ AllowanceConsumptionList: {
2803
+ items: components["schemas"]["AllowanceConsumption"][];
2804
+ /** Format: int64 */
2805
+ total_count?: number;
2806
+ };
2807
+ IncludedAllowance: {
2808
+ /**
2809
+ * @description Allowed values for selected meter dimensions, such as region or storage class.
2810
+ * Every specified dimension must match one listed value. Omitted dimensions are
2811
+ * unrestricted. An empty map covers all dimensions of this meter.
2812
+ */
2813
+ dimension_values?: {
2814
+ [key: string]: string[];
2815
+ };
2816
+ meter: components["schemas"]["ObjectIdentity"];
2817
+ unit?: string;
2818
+ /** @description How much is included. */
2819
+ quantity: string;
2820
+ /**
2821
+ * @description `period_end` lasts as long as the period it came with. `days` lasts a fixed number
2822
+ * of days from purchase. `never` does not lapse.
2823
+ * @enum {string}
2824
+ */
2825
+ expiry: "period_end" | "days" | "never";
2826
+ /** @description Only meaningful when `expiry` is `days`. */
2827
+ valid_days?: number;
2828
+ };
2829
+ IncludedFeature: {
2830
+ feature: components["schemas"]["ObjectIdentity"];
2831
+ name: string;
2832
+ name_translations?: components["schemas"]["Translations"];
2833
+ description?: string;
2834
+ /**
2835
+ * @description Whether this price grants the capability without a cap.
2836
+ *
2837
+ * **This is what says whether it is capped, not the presence of an included
2838
+ * quantity.** A capped capability whose quantity has run out would otherwise be
2839
+ * indistinguishable from one that was never capped.
2840
+ *
2841
+ * `true` for a capability that is simply available or not, with nothing to count.
2842
+ */
2843
+ unlimited: boolean;
2844
+ /** @description How much is included, as a decimal string. Present when `unlimited` is false. */
2845
+ included_quantity?: string;
2846
+ /** @description The unit that quantity is counted in, such as `request`. */
2847
+ unit?: string;
2848
+ };
2849
+ Entitlement: {
2850
+ product: components["schemas"]["ObjectIdentity"];
2851
+ feature: components["schemas"]["ObjectIdentity"];
2852
+ name?: string;
2853
+ enabled: boolean;
2854
+ /**
2855
+ * @description Whether its use is counted. **`false` means no limit** — the plan providing it
2856
+ * grants it without a cap — and `remaining_quantity` should not be read in that case.
2857
+ *
2858
+ * A capped capability whose quantity has run out keeps `metered` true with
2859
+ * `remaining_quantity` of `"0"`. Exhausted and uncapped are therefore always
2860
+ * distinguishable.
2861
+ */
2862
+ metered: boolean;
2863
+ /**
2864
+ * @description How much is left, as a decimal string. Meaningful only when `metered` is true.
2865
+ * `"0"` once exhausted, never negative.
2866
+ *
2867
+ * This is the figure at the moment of the reply, and quantities are drawn down at
2868
+ * settlement rather than on each call. It is suitable for display and for a soft
2869
+ * warning, but it cannot enforce a strict limit: concurrent requests all see the same
2870
+ * figure. A hard limit has to be counted by the service that owns the capability, in
2871
+ * the same transaction as the operation it is limiting.
2872
+ */
2873
+ remaining_quantity?: string;
2874
+ unit?: string;
2875
+ /**
2876
+ * Format: date-time
2877
+ * @description When the subscription providing it ends. Absent for a metered subscription, which
2878
+ * has no end date.
2879
+ */
2880
+ expires_at?: string | null;
2881
+ };
2882
+ EntitlementList: {
2883
+ items: components["schemas"]["Entitlement"][];
2884
+ /** Format: int64 */
2885
+ total_count?: number;
2886
+ };
2887
+ /** @description Identify an object by ID or lookup key, exactly one. A lookup key requires the owning product. */
2888
+ ObjectReference: {
2889
+ /** Format: uuid */
2890
+ id?: string;
2891
+ lookup_key?: string;
2892
+ };
2893
+ ObjectIdentity: {
2894
+ /** Format: uuid */
2895
+ id: string;
2896
+ lookup_key?: string;
2897
+ };
2898
+ };
2899
+ responses: {
2900
+ /** @description Unchanged since the `ETag` that was sent. No body. */
2901
+ NotModified: {
2902
+ headers: {
2903
+ /** @description The same entity tag that was sent. */
2904
+ ETag?: string;
2905
+ [name: string]: unknown;
2906
+ };
2907
+ content?: never;
2908
+ };
2909
+ /** @description Error */
2910
+ Error: {
2911
+ headers: {
2912
+ [name: string]: unknown;
2913
+ };
2914
+ content: {
2915
+ "application/json": components["schemas"]["Error"];
2916
+ };
2917
+ };
2918
+ };
2919
+ parameters: {
2920
+ /**
2921
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
2922
+ * answer is `304` with no body.
2923
+ *
2924
+ * Worth sending on every catalogue read: the listings are public, unauthenticated and
2925
+ * cached at the edge, so a repeat read costs one round trip and no transfer.
2926
+ */
2927
+ IfNoneMatch: string;
2928
+ /** @description 1-based page number; the first page when omitted. */
2929
+ Page: number;
2930
+ /** @description How many per page, 100 at most. */
2931
+ PageSize: number;
2932
+ From: string;
2933
+ /** @description Exclusive. */
2934
+ To: string;
2935
+ /** @description Restrict to one of your accounts. All of them when omitted. */
2936
+ AccountIdQuery: number;
2937
+ AccountId: number;
2938
+ ProjectId: string;
2939
+ ProductId: string;
2940
+ PlanId: string;
2941
+ RateCardId: string;
2942
+ InvoiceId: string;
2943
+ OrderId: string;
2944
+ ItemId: string;
2945
+ PaymentMethodId: string;
2946
+ FromRequired: string;
2947
+ /** @description Exclusive. One month is `[2026-09-01, 2026-10-01)`. */
2948
+ ToRequired: string;
2949
+ };
2950
+ requestBodies: never;
2951
+ headers: never;
2952
+ pathItems: never;
2953
+ }
2954
+ export type $defs = Record<string, never>;
2955
+ export interface operations {
2956
+ "list-catalog-products": {
2957
+ parameters: {
2958
+ query?: {
2959
+ /** @description 1-based page number; the first page when omitted. */
2960
+ page?: components["parameters"]["Page"];
2961
+ /** @description How many per page, 100 at most. */
2962
+ page_size?: components["parameters"]["PageSize"];
2963
+ };
2964
+ header?: {
2965
+ /**
2966
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
2967
+ * answer is `304` with no body.
2968
+ *
2969
+ * Worth sending on every catalogue read: the listings are public, unauthenticated and
2970
+ * cached at the edge, so a repeat read costs one round trip and no transfer.
2971
+ */
2972
+ "If-None-Match"?: components["parameters"]["IfNoneMatch"];
2973
+ };
2974
+ path?: never;
2975
+ cookie?: never;
2976
+ };
2977
+ requestBody?: never;
2978
+ responses: {
2979
+ /** @description OK */
2980
+ 200: {
2981
+ headers: {
2982
+ /**
2983
+ * @description Changes whenever the catalogue changes. Send it back as `If-None-Match`
2984
+ * to be told `304` instead of receiving the same listing again.
2985
+ */
2986
+ ETag?: string;
2987
+ [name: string]: unknown;
2988
+ };
2989
+ content: {
2990
+ "application/json": components["schemas"]["CatalogProductList"];
2991
+ };
2992
+ };
2993
+ 304: components["responses"]["NotModified"];
2994
+ default: components["responses"]["Error"];
2995
+ };
2996
+ };
2997
+ "list-catalog-plans": {
2998
+ parameters: {
2999
+ query?: {
3000
+ /** @description 1-based page number; the first page when omitted. */
3001
+ page?: components["parameters"]["Page"];
3002
+ /** @description How many per page, 100 at most. */
3003
+ page_size?: components["parameters"]["PageSize"];
3004
+ };
3005
+ header?: {
3006
+ /**
3007
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
3008
+ * answer is `304` with no body.
3009
+ *
3010
+ * Worth sending on every catalogue read: the listings are public, unauthenticated and
3011
+ * cached at the edge, so a repeat read costs one round trip and no transfer.
3012
+ */
3013
+ "If-None-Match"?: components["parameters"]["IfNoneMatch"];
3014
+ };
3015
+ path: {
3016
+ productId: components["parameters"]["ProductId"];
3017
+ };
3018
+ cookie?: never;
3019
+ };
3020
+ requestBody?: never;
3021
+ responses: {
3022
+ /** @description OK */
3023
+ 200: {
3024
+ headers: {
3025
+ /**
3026
+ * @description Changes whenever the catalogue changes. Send it back as `If-None-Match`
3027
+ * to be told `304` instead of receiving the same listing again.
3028
+ */
3029
+ ETag?: string;
3030
+ [name: string]: unknown;
3031
+ };
3032
+ content: {
3033
+ "application/json": components["schemas"]["CatalogPlanList"];
3034
+ };
3035
+ };
3036
+ 304: components["responses"]["NotModified"];
3037
+ default: components["responses"]["Error"];
3038
+ };
3039
+ };
3040
+ "list-catalog-prices": {
3041
+ parameters: {
3042
+ query?: {
3043
+ /** @description 1-based page number; the first page when omitted. */
3044
+ page?: components["parameters"]["Page"];
3045
+ /** @description How many per page, 100 at most. */
3046
+ page_size?: components["parameters"]["PageSize"];
3047
+ currency?: string;
3048
+ };
3049
+ header?: {
3050
+ /**
3051
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
3052
+ * answer is `304` with no body.
3053
+ *
3054
+ * Worth sending on every catalogue read: the listings are public, unauthenticated and
3055
+ * cached at the edge, so a repeat read costs one round trip and no transfer.
3056
+ */
3057
+ "If-None-Match"?: components["parameters"]["IfNoneMatch"];
3058
+ };
3059
+ path: {
3060
+ planId: components["parameters"]["PlanId"];
3061
+ };
3062
+ cookie?: never;
3063
+ };
3064
+ requestBody?: never;
3065
+ responses: {
3066
+ /** @description OK */
3067
+ 200: {
3068
+ headers: {
3069
+ /**
3070
+ * @description Changes whenever the catalogue changes. Send it back as `If-None-Match`
3071
+ * to be told `304` instead of receiving the same listing again.
3072
+ */
3073
+ ETag?: string;
3074
+ [name: string]: unknown;
3075
+ };
3076
+ content: {
3077
+ "application/json": components["schemas"]["CatalogPriceList"];
3078
+ };
3079
+ };
3080
+ 304: components["responses"]["NotModified"];
3081
+ default: components["responses"]["Error"];
3082
+ };
3083
+ };
3084
+ "list-catalog-rates": {
3085
+ parameters: {
3086
+ query?: {
3087
+ /** @description 1-based page number; the first page when omitted. */
3088
+ page?: components["parameters"]["Page"];
3089
+ /** @description How many per page, 100 at most. */
3090
+ page_size?: components["parameters"]["PageSize"];
3091
+ /** @description Filter by ID or lookup key. A lookup key is scoped to the product. */
3092
+ meter?: components["schemas"]["ObjectReference"];
3093
+ /** @description Return the rates in effect at this moment. Defaults to now. */
3094
+ at?: string;
3095
+ };
3096
+ header?: {
3097
+ /**
3098
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
3099
+ * answer is `304` with no body.
3100
+ *
3101
+ * Worth sending on every catalogue read: the listings are public, unauthenticated and
3102
+ * cached at the edge, so a repeat read costs one round trip and no transfer.
3103
+ */
3104
+ "If-None-Match"?: components["parameters"]["IfNoneMatch"];
3105
+ };
3106
+ path: {
3107
+ rateCardId: components["parameters"]["RateCardId"];
3108
+ };
3109
+ cookie?: never;
3110
+ };
3111
+ requestBody?: never;
3112
+ responses: {
3113
+ /** @description OK */
3114
+ 200: {
3115
+ headers: {
3116
+ /**
3117
+ * @description Changes whenever the catalogue changes. Send it back as `If-None-Match`
3118
+ * to be told `304` instead of receiving the same listing again.
3119
+ */
3120
+ ETag?: string;
3121
+ [name: string]: unknown;
3122
+ };
3123
+ content: {
3124
+ "application/json": components["schemas"]["CatalogRateList"];
3125
+ };
3126
+ };
3127
+ 304: components["responses"]["NotModified"];
3128
+ default: components["responses"]["Error"];
3129
+ };
3130
+ };
3131
+ "create-estimate": {
3132
+ parameters: {
3133
+ query?: never;
3134
+ header?: never;
3135
+ path?: never;
3136
+ cookie?: never;
3137
+ };
3138
+ requestBody: {
3139
+ content: {
3140
+ "application/json": components["schemas"]["EstimateRequest"];
3141
+ };
3142
+ };
3143
+ responses: {
3144
+ /** @description OK */
3145
+ 200: {
3146
+ headers: {
3147
+ [name: string]: unknown;
3148
+ };
3149
+ content: {
3150
+ "application/json": components["schemas"]["Quote"];
3151
+ };
3152
+ };
3153
+ default: components["responses"]["Error"];
3154
+ };
3155
+ };
3156
+ "list-billing-accounts": {
3157
+ parameters: {
3158
+ query?: {
3159
+ /** @description 1-based page number; the first page when omitted. */
3160
+ page?: components["parameters"]["Page"];
3161
+ /** @description How many per page, 100 at most. */
3162
+ page_size?: components["parameters"]["PageSize"];
3163
+ };
3164
+ header?: never;
3165
+ path?: never;
3166
+ cookie?: never;
3167
+ };
3168
+ requestBody?: never;
3169
+ responses: {
3170
+ /** @description OK */
3171
+ 200: {
3172
+ headers: {
3173
+ [name: string]: unknown;
3174
+ };
3175
+ content: {
3176
+ "application/json": components["schemas"]["BillingAccountList"];
3177
+ };
3178
+ };
3179
+ default: components["responses"]["Error"];
3180
+ };
3181
+ };
3182
+ "create-billing-account": {
3183
+ parameters: {
3184
+ query?: never;
3185
+ header?: never;
3186
+ path?: never;
3187
+ cookie?: never;
3188
+ };
3189
+ requestBody: {
3190
+ content: {
3191
+ "application/json": components["schemas"]["BillingAccountCreate"];
3192
+ };
3193
+ };
3194
+ responses: {
3195
+ /** @description Created */
3196
+ 201: {
3197
+ headers: {
3198
+ [name: string]: unknown;
3199
+ };
3200
+ content: {
3201
+ "application/json": components["schemas"]["BillingAccount"];
3202
+ };
3203
+ };
3204
+ default: components["responses"]["Error"];
3205
+ };
3206
+ };
3207
+ "get-billing-account": {
3208
+ parameters: {
3209
+ query?: never;
3210
+ header?: never;
3211
+ path: {
3212
+ accountId: components["parameters"]["AccountId"];
3213
+ };
3214
+ cookie?: never;
3215
+ };
3216
+ requestBody?: never;
3217
+ responses: {
3218
+ /** @description OK */
3219
+ 200: {
3220
+ headers: {
3221
+ [name: string]: unknown;
3222
+ };
3223
+ content: {
3224
+ "application/json": components["schemas"]["BillingAccount"];
3225
+ };
3226
+ };
3227
+ default: components["responses"]["Error"];
3228
+ };
3229
+ };
3230
+ "update-billing-account": {
3231
+ parameters: {
3232
+ query?: never;
3233
+ header?: never;
3234
+ path: {
3235
+ accountId: components["parameters"]["AccountId"];
3236
+ };
3237
+ cookie?: never;
3238
+ };
3239
+ requestBody: {
3240
+ content: {
3241
+ "application/json": components["schemas"]["BillingAccountUpdate"];
3242
+ };
3243
+ };
3244
+ responses: {
3245
+ /** @description OK */
3246
+ 200: {
3247
+ headers: {
3248
+ [name: string]: unknown;
3249
+ };
3250
+ content: {
3251
+ "application/json": components["schemas"]["BillingAccount"];
3252
+ };
3253
+ };
3254
+ default: components["responses"]["Error"];
3255
+ };
3256
+ };
3257
+ "get-account-balance": {
3258
+ parameters: {
3259
+ query?: never;
3260
+ header?: never;
3261
+ path: {
3262
+ accountId: components["parameters"]["AccountId"];
3263
+ };
3264
+ cookie?: never;
3265
+ };
3266
+ requestBody?: never;
3267
+ responses: {
3268
+ /** @description OK */
3269
+ 200: {
3270
+ headers: {
3271
+ [name: string]: unknown;
3272
+ };
3273
+ content: {
3274
+ "application/json": components["schemas"]["AccountBalance"];
3275
+ };
3276
+ };
3277
+ default: components["responses"]["Error"];
3278
+ };
3279
+ };
3280
+ "list-paid-projects": {
3281
+ parameters: {
3282
+ query?: {
3283
+ /** @description 1-based page number; the first page when omitted. */
3284
+ page?: components["parameters"]["Page"];
3285
+ /** @description How many per page, 100 at most. */
3286
+ page_size?: components["parameters"]["PageSize"];
3287
+ billing_account_id?: number;
3288
+ };
3289
+ header?: never;
3290
+ path?: never;
3291
+ cookie?: never;
3292
+ };
3293
+ requestBody?: never;
3294
+ responses: {
3295
+ /** @description OK */
3296
+ 200: {
3297
+ headers: {
3298
+ [name: string]: unknown;
3299
+ };
3300
+ content: {
3301
+ "application/json": components["schemas"]["ProjectBindingList"];
3302
+ };
3303
+ };
3304
+ default: components["responses"]["Error"];
3305
+ };
3306
+ };
3307
+ "find-project-payer": {
3308
+ parameters: {
3309
+ query?: never;
3310
+ header?: never;
3311
+ path: {
3312
+ projectId: components["parameters"]["ProjectId"];
3313
+ };
3314
+ cookie?: never;
3315
+ };
3316
+ requestBody?: never;
3317
+ responses: {
3318
+ /** @description OK */
3319
+ 200: {
3320
+ headers: {
3321
+ [name: string]: unknown;
3322
+ };
3323
+ content: {
3324
+ "application/json": components["schemas"]["ProjectBinding"];
3325
+ };
3326
+ };
3327
+ default: components["responses"]["Error"];
3328
+ };
3329
+ };
3330
+ "set-project-payer": {
3331
+ parameters: {
3332
+ query?: never;
3333
+ header?: never;
3334
+ path: {
3335
+ projectId: components["parameters"]["ProjectId"];
3336
+ };
3337
+ cookie?: never;
3338
+ };
3339
+ requestBody: {
3340
+ content: {
3341
+ "application/json": components["schemas"]["ProjectPayerSet"];
3342
+ };
3343
+ };
3344
+ responses: {
3345
+ /** @description OK */
3346
+ 200: {
3347
+ headers: {
3348
+ [name: string]: unknown;
3349
+ };
3350
+ content: {
3351
+ "application/json": components["schemas"]["ProjectBinding"];
3352
+ };
3353
+ };
3354
+ default: components["responses"]["Error"];
3355
+ };
3356
+ };
3357
+ "unbind-project-payer": {
3358
+ parameters: {
3359
+ query?: never;
3360
+ header?: never;
3361
+ path: {
3362
+ projectId: components["parameters"]["ProjectId"];
3363
+ };
3364
+ cookie?: never;
3365
+ };
3366
+ requestBody?: never;
3367
+ responses: {
3368
+ /** @description Unbound */
3369
+ 204: {
3370
+ headers: {
3371
+ [name: string]: unknown;
3372
+ };
3373
+ content?: never;
3374
+ };
3375
+ default: components["responses"]["Error"];
3376
+ };
3377
+ };
3378
+ "settle-project-usage": {
3379
+ parameters: {
3380
+ query?: never;
3381
+ header?: never;
3382
+ path: {
3383
+ projectId: components["parameters"]["ProjectId"];
3384
+ };
3385
+ cookie?: never;
3386
+ };
3387
+ requestBody?: never;
3388
+ responses: {
3389
+ /** @description OK */
3390
+ 200: {
3391
+ headers: {
3392
+ [name: string]: unknown;
3393
+ };
3394
+ content: {
3395
+ "application/json": components["schemas"]["SettleResult"];
3396
+ };
3397
+ };
3398
+ default: components["responses"]["Error"];
3399
+ };
3400
+ };
3401
+ "list-top-ups": {
3402
+ parameters: {
3403
+ query?: {
3404
+ /** @description 1-based page number; the first page when omitted. */
3405
+ page?: components["parameters"]["Page"];
3406
+ /** @description How many per page, 100 at most. */
3407
+ page_size?: components["parameters"]["PageSize"];
3408
+ /** @description Restrict to one of your accounts. All of them when omitted. */
3409
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
3410
+ };
3411
+ header?: never;
3412
+ path?: never;
3413
+ cookie?: never;
3414
+ };
3415
+ requestBody?: never;
3416
+ responses: {
3417
+ /** @description OK */
3418
+ 200: {
3419
+ headers: {
3420
+ [name: string]: unknown;
3421
+ };
3422
+ content: {
3423
+ "application/json": components["schemas"]["TopUpList"];
3424
+ };
3425
+ };
3426
+ default: components["responses"]["Error"];
3427
+ };
3428
+ };
3429
+ "create-top-up": {
3430
+ parameters: {
3431
+ query?: never;
3432
+ header?: never;
3433
+ path?: never;
3434
+ cookie?: never;
3435
+ };
3436
+ requestBody: {
3437
+ content: {
3438
+ "application/json": components["schemas"]["TopUpCreate"];
3439
+ };
3440
+ };
3441
+ responses: {
3442
+ /** @description Created */
3443
+ 201: {
3444
+ headers: {
3445
+ [name: string]: unknown;
3446
+ };
3447
+ content: {
3448
+ "application/json": components["schemas"]["TopUp"];
3449
+ };
3450
+ };
3451
+ default: components["responses"]["Error"];
3452
+ };
3453
+ };
3454
+ "get-top-up": {
3455
+ parameters: {
3456
+ query?: never;
3457
+ header?: never;
3458
+ path: {
3459
+ topUpId: string;
3460
+ };
3461
+ cookie?: never;
3462
+ };
3463
+ requestBody?: never;
3464
+ responses: {
3465
+ /** @description OK */
3466
+ 200: {
3467
+ headers: {
3468
+ [name: string]: unknown;
3469
+ };
3470
+ content: {
3471
+ "application/json": components["schemas"]["TopUp"];
3472
+ };
3473
+ };
3474
+ default: components["responses"]["Error"];
3475
+ };
3476
+ };
3477
+ "list-payment-methods": {
3478
+ parameters: {
3479
+ query?: {
3480
+ /** @description 1-based page number; the first page when omitted. */
3481
+ page?: components["parameters"]["Page"];
3482
+ /** @description How many per page, 100 at most. */
3483
+ page_size?: components["parameters"]["PageSize"];
3484
+ /** @description Restrict to one of your accounts. All of them when omitted. */
3485
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
3486
+ };
3487
+ header?: never;
3488
+ path?: never;
3489
+ cookie?: never;
3490
+ };
3491
+ requestBody?: never;
3492
+ responses: {
3493
+ /** @description OK */
3494
+ 200: {
3495
+ headers: {
3496
+ [name: string]: unknown;
3497
+ };
3498
+ content: {
3499
+ "application/json": components["schemas"]["PaymentMethodList"];
3500
+ };
3501
+ };
3502
+ default: components["responses"]["Error"];
3503
+ };
3504
+ };
3505
+ "create-payment-method-setup": {
3506
+ parameters: {
3507
+ query?: never;
3508
+ header?: never;
3509
+ path?: never;
3510
+ cookie?: never;
3511
+ };
3512
+ requestBody: {
3513
+ content: {
3514
+ "application/json": components["schemas"]["PaymentMethodSetup"];
3515
+ };
3516
+ };
3517
+ responses: {
3518
+ /** @description Created */
3519
+ 201: {
3520
+ headers: {
3521
+ [name: string]: unknown;
3522
+ };
3523
+ content: {
3524
+ "application/json": components["schemas"]["PaymentMethodSetupResult"];
3525
+ };
3526
+ };
3527
+ default: components["responses"]["Error"];
3528
+ };
3529
+ };
3530
+ "set-default-payment-method": {
3531
+ parameters: {
3532
+ query?: never;
3533
+ header?: never;
3534
+ path: {
3535
+ paymentMethodId: components["parameters"]["PaymentMethodId"];
3536
+ };
3537
+ cookie?: never;
3538
+ };
3539
+ requestBody?: never;
3540
+ responses: {
3541
+ /** @description OK */
3542
+ 200: {
3543
+ headers: {
3544
+ [name: string]: unknown;
3545
+ };
3546
+ content: {
3547
+ "application/json": components["schemas"]["PaymentMethod"];
3548
+ };
3549
+ };
3550
+ default: components["responses"]["Error"];
3551
+ };
3552
+ };
3553
+ "delete-payment-method": {
3554
+ parameters: {
3555
+ query?: never;
3556
+ header?: never;
3557
+ path: {
3558
+ paymentMethodId: components["parameters"]["PaymentMethodId"];
3559
+ };
3560
+ cookie?: never;
3561
+ };
3562
+ requestBody?: never;
3563
+ responses: {
3564
+ /** @description Removed */
3565
+ 204: {
3566
+ headers: {
3567
+ [name: string]: unknown;
3568
+ };
3569
+ content?: never;
3570
+ };
3571
+ default: components["responses"]["Error"];
3572
+ };
3573
+ };
3574
+ "pay-invoice": {
3575
+ parameters: {
3576
+ query?: never;
3577
+ header?: never;
3578
+ path: {
3579
+ invoiceId: components["parameters"]["InvoiceId"];
3580
+ };
3581
+ cookie?: never;
3582
+ };
3583
+ requestBody?: {
3584
+ content: {
3585
+ "application/json": components["schemas"]["PayRequest"];
3586
+ };
3587
+ };
3588
+ responses: {
3589
+ /** @description OK */
3590
+ 200: {
3591
+ headers: {
3592
+ [name: string]: unknown;
3593
+ };
3594
+ content: {
3595
+ "application/json": components["schemas"]["PaymentResult"];
3596
+ };
3597
+ };
3598
+ default: components["responses"]["Error"];
3599
+ };
3600
+ };
3601
+ "pay-together": {
3602
+ parameters: {
3603
+ query?: never;
3604
+ header?: never;
3605
+ path?: never;
3606
+ cookie?: never;
3607
+ };
3608
+ requestBody: {
3609
+ content: {
3610
+ "application/json": components["schemas"]["PayTogetherRequest"];
3611
+ };
3612
+ };
3613
+ responses: {
3614
+ /** @description OK */
3615
+ 200: {
3616
+ headers: {
3617
+ [name: string]: unknown;
3618
+ };
3619
+ content: {
3620
+ "application/json": components["schemas"]["PaymentResult"];
3621
+ };
3622
+ };
3623
+ default: components["responses"]["Error"];
3624
+ };
3625
+ };
3626
+ "pay-order": {
3627
+ parameters: {
3628
+ query?: never;
3629
+ header?: never;
3630
+ path: {
3631
+ orderId: components["parameters"]["OrderId"];
3632
+ };
3633
+ cookie?: never;
3634
+ };
3635
+ requestBody?: {
3636
+ content: {
3637
+ "application/json": components["schemas"]["PayRequest"];
3638
+ };
3639
+ };
3640
+ responses: {
3641
+ /** @description OK */
3642
+ 200: {
3643
+ headers: {
3644
+ [name: string]: unknown;
3645
+ };
3646
+ content: {
3647
+ "application/json": components["schemas"]["PaymentResult"];
3648
+ };
3649
+ };
3650
+ default: components["responses"]["Error"];
3651
+ };
3652
+ };
3653
+ "list-invoices": {
3654
+ parameters: {
3655
+ query?: {
3656
+ /** @description 1-based page number; the first page when omitted. */
3657
+ page?: components["parameters"]["Page"];
3658
+ /** @description How many per page, 100 at most. */
3659
+ page_size?: components["parameters"]["PageSize"];
3660
+ /** @description Restrict to one of your accounts. All of them when omitted. */
3661
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
3662
+ status?: components["schemas"]["InvoiceStatus"];
3663
+ from?: components["parameters"]["From"];
3664
+ /** @description Exclusive. */
3665
+ to?: components["parameters"]["To"];
3666
+ };
3667
+ header?: never;
3668
+ path?: never;
3669
+ cookie?: never;
3670
+ };
3671
+ requestBody?: never;
3672
+ responses: {
3673
+ /** @description OK */
3674
+ 200: {
3675
+ headers: {
3676
+ [name: string]: unknown;
3677
+ };
3678
+ content: {
3679
+ "application/json": components["schemas"]["InvoiceList"];
3680
+ };
3681
+ };
3682
+ default: components["responses"]["Error"];
3683
+ };
3684
+ };
3685
+ "get-invoice": {
3686
+ parameters: {
3687
+ query?: never;
3688
+ header?: never;
3689
+ path: {
3690
+ invoiceId: components["parameters"]["InvoiceId"];
3691
+ };
3692
+ cookie?: never;
3693
+ };
3694
+ requestBody?: never;
3695
+ responses: {
3696
+ /** @description OK */
3697
+ 200: {
3698
+ headers: {
3699
+ [name: string]: unknown;
3700
+ };
3701
+ content: {
3702
+ "application/json": components["schemas"]["Invoice"];
3703
+ };
3704
+ };
3705
+ default: components["responses"]["Error"];
3706
+ };
3707
+ };
3708
+ "list-invoice-items": {
3709
+ parameters: {
3710
+ query?: {
3711
+ /** @description 1-based page number; the first page when omitted. */
3712
+ page?: components["parameters"]["Page"];
3713
+ /** @description How many per page, 100 at most. */
3714
+ page_size?: components["parameters"]["PageSize"];
3715
+ };
3716
+ header?: never;
3717
+ path: {
3718
+ invoiceId: components["parameters"]["InvoiceId"];
3719
+ };
3720
+ cookie?: never;
3721
+ };
3722
+ requestBody?: never;
3723
+ responses: {
3724
+ /** @description OK */
3725
+ 200: {
3726
+ headers: {
3727
+ [name: string]: unknown;
3728
+ };
3729
+ content: {
3730
+ "application/json": components["schemas"]["InvoiceItemList"];
3731
+ };
3732
+ };
3733
+ default: components["responses"]["Error"];
3734
+ };
3735
+ };
3736
+ "get-invoice-refund-quote": {
3737
+ parameters: {
3738
+ query?: never;
3739
+ header?: never;
3740
+ path: {
3741
+ invoiceId: components["parameters"]["InvoiceId"];
3742
+ };
3743
+ cookie?: never;
3744
+ };
3745
+ requestBody?: never;
3746
+ responses: {
3747
+ /** @description OK */
3748
+ 200: {
3749
+ headers: {
3750
+ [name: string]: unknown;
3751
+ };
3752
+ content: {
3753
+ "application/json": components["schemas"]["RefundQuote"];
3754
+ };
3755
+ };
3756
+ default: components["responses"]["Error"];
3757
+ };
3758
+ };
3759
+ "list-transactions": {
3760
+ parameters: {
3761
+ query?: {
3762
+ /** @description 1-based page number; the first page when omitted. */
3763
+ page?: components["parameters"]["Page"];
3764
+ /** @description How many per page, 100 at most. */
3765
+ page_size?: components["parameters"]["PageSize"];
3766
+ /** @description Restrict to one of your accounts. All of them when omitted. */
3767
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
3768
+ from?: components["parameters"]["From"];
3769
+ /** @description Exclusive. */
3770
+ to?: components["parameters"]["To"];
3771
+ };
3772
+ header?: never;
3773
+ path?: never;
3774
+ cookie?: never;
3775
+ };
3776
+ requestBody?: never;
3777
+ responses: {
3778
+ /** @description OK */
3779
+ 200: {
3780
+ headers: {
3781
+ [name: string]: unknown;
3782
+ };
3783
+ content: {
3784
+ "application/json": components["schemas"]["TransactionList"];
3785
+ };
3786
+ };
3787
+ default: components["responses"]["Error"];
3788
+ };
3789
+ };
3790
+ "list-credit-grants": {
3791
+ parameters: {
3792
+ query?: {
3793
+ /** @description 1-based page number; the first page when omitted. */
3794
+ page?: components["parameters"]["Page"];
3795
+ /** @description How many per page, 100 at most. */
3796
+ page_size?: components["parameters"]["PageSize"];
3797
+ /** @description Restrict to one of your accounts. All of them when omitted. */
3798
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
3799
+ status?: "active" | "depleted" | "expired" | "voided";
3800
+ };
3801
+ header?: never;
3802
+ path?: never;
3803
+ cookie?: never;
3804
+ };
3805
+ requestBody?: never;
3806
+ responses: {
3807
+ /** @description OK */
3808
+ 200: {
3809
+ headers: {
3810
+ [name: string]: unknown;
3811
+ };
3812
+ content: {
3813
+ "application/json": components["schemas"]["CreditGrantList"];
3814
+ };
3815
+ };
3816
+ default: components["responses"]["Error"];
3817
+ };
3818
+ };
3819
+ "list-allocations": {
3820
+ parameters: {
3821
+ query?: {
3822
+ /** @description 1-based page number; the first page when omitted. */
3823
+ page?: components["parameters"]["Page"];
3824
+ /** @description How many per page, 100 at most. */
3825
+ page_size?: components["parameters"]["PageSize"];
3826
+ /** @description Restrict to one of your accounts. All of them when omitted. */
3827
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
3828
+ /** @description `transaction` is money paid in, `credit_grant` is granted credit or a voucher. */
3829
+ source_type?: "transaction" | "credit_grant";
3830
+ source_id?: string;
3831
+ target_id?: string;
3832
+ };
3833
+ header?: never;
3834
+ path?: never;
3835
+ cookie?: never;
3836
+ };
3837
+ requestBody?: never;
3838
+ responses: {
3839
+ /** @description OK */
3840
+ 200: {
3841
+ headers: {
3842
+ [name: string]: unknown;
3843
+ };
3844
+ content: {
3845
+ "application/json": components["schemas"]["AllocationList"];
3846
+ };
3847
+ };
3848
+ default: components["responses"]["Error"];
3849
+ };
3850
+ };
3851
+ "list-refunds": {
3852
+ parameters: {
3853
+ query?: {
3854
+ /** @description 1-based page number; the first page when omitted. */
3855
+ page?: components["parameters"]["Page"];
3856
+ /** @description How many per page, 100 at most. */
3857
+ page_size?: components["parameters"]["PageSize"];
3858
+ /** @description Restrict to one of your accounts. All of them when omitted. */
3859
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
3860
+ };
3861
+ header?: never;
3862
+ path?: never;
3863
+ cookie?: never;
3864
+ };
3865
+ requestBody?: never;
3866
+ responses: {
3867
+ /** @description OK */
3868
+ 200: {
3869
+ headers: {
3870
+ [name: string]: unknown;
3871
+ };
3872
+ content: {
3873
+ "application/json": components["schemas"]["RefundList"];
3874
+ };
3875
+ };
3876
+ default: components["responses"]["Error"];
3877
+ };
3878
+ };
3879
+ "request-refund": {
3880
+ parameters: {
3881
+ query?: never;
3882
+ header?: never;
3883
+ path?: never;
3884
+ cookie?: never;
3885
+ };
3886
+ requestBody: {
3887
+ content: {
3888
+ "application/json": components["schemas"]["RefundRequest"];
3889
+ };
3890
+ };
3891
+ responses: {
3892
+ /** @description Accepted for processing */
3893
+ 201: {
3894
+ headers: {
3895
+ [name: string]: unknown;
3896
+ };
3897
+ content: {
3898
+ "application/json": components["schemas"]["Refund"];
3899
+ };
3900
+ };
3901
+ default: components["responses"]["Error"];
3902
+ };
3903
+ };
3904
+ "list-usage-charges": {
3905
+ parameters: {
3906
+ query?: {
3907
+ /** @description 1-based page number; the first page when omitted. */
3908
+ page?: components["parameters"]["Page"];
3909
+ /** @description How many per page, 100 at most. */
3910
+ page_size?: components["parameters"]["PageSize"];
3911
+ /** @description Restrict to one of your accounts. All of them when omitted. */
3912
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
3913
+ project_id?: string;
3914
+ /** @description Filter by ID or lookup key. A lookup key is scoped to the product. */
3915
+ product?: components["schemas"]["ObjectReference"];
3916
+ resource_id?: string;
3917
+ from?: components["parameters"]["From"];
3918
+ /** @description Exclusive. */
3919
+ to?: components["parameters"]["To"];
3920
+ };
3921
+ header?: never;
3922
+ path?: never;
3923
+ cookie?: never;
3924
+ };
3925
+ requestBody?: never;
3926
+ responses: {
3927
+ /** @description OK */
3928
+ 200: {
3929
+ headers: {
3930
+ [name: string]: unknown;
3931
+ };
3932
+ content: {
3933
+ "application/json": components["schemas"]["UsageChargeList"];
3934
+ };
3935
+ };
3936
+ default: components["responses"]["Error"];
3937
+ };
3938
+ };
3939
+ "list-subscriptions": {
3940
+ parameters: {
3941
+ query?: {
3942
+ /** @description 1-based page number; the first page when omitted. */
3943
+ page?: components["parameters"]["Page"];
3944
+ /** @description How many per page, 100 at most. */
3945
+ page_size?: components["parameters"]["PageSize"];
3946
+ /** @description Restrict to one of your accounts. All of them when omitted. */
3947
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
3948
+ project_id?: string;
3949
+ };
3950
+ header?: never;
3951
+ path?: never;
3952
+ cookie?: never;
3953
+ };
3954
+ requestBody?: never;
3955
+ responses: {
3956
+ /** @description OK */
3957
+ 200: {
3958
+ headers: {
3959
+ [name: string]: unknown;
3960
+ };
3961
+ content: {
3962
+ "application/json": components["schemas"]["SubscriptionList"];
3963
+ };
3964
+ };
3965
+ default: components["responses"]["Error"];
3966
+ };
3967
+ };
3968
+ "list-subscription-items": {
3969
+ parameters: {
3970
+ query?: {
3971
+ /** @description 1-based page number; the first page when omitted. */
3972
+ page?: components["parameters"]["Page"];
3973
+ /** @description How many per page, 100 at most. */
3974
+ page_size?: components["parameters"]["PageSize"];
3975
+ /** @description Restrict to one of your accounts. All of them when omitted. */
3976
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
3977
+ project_id?: string;
3978
+ expiring_before?: string;
3979
+ };
3980
+ header?: never;
3981
+ path?: never;
3982
+ cookie?: never;
3983
+ };
3984
+ requestBody?: never;
3985
+ responses: {
3986
+ /** @description OK */
3987
+ 200: {
3988
+ headers: {
3989
+ [name: string]: unknown;
3990
+ };
3991
+ content: {
3992
+ "application/json": components["schemas"]["SubscriptionItemList"];
3993
+ };
3994
+ };
3995
+ default: components["responses"]["Error"];
3996
+ };
3997
+ };
3998
+ "renew-subscription-item": {
3999
+ parameters: {
4000
+ query?: never;
4001
+ header?: never;
4002
+ path: {
4003
+ itemId: components["parameters"]["ItemId"];
4004
+ };
4005
+ cookie?: never;
4006
+ };
4007
+ requestBody: {
4008
+ content: {
4009
+ "application/json": components["schemas"]["RenewRequest"];
4010
+ };
4011
+ };
4012
+ responses: {
4013
+ /** @description OK */
4014
+ 200: {
4015
+ headers: {
4016
+ [name: string]: unknown;
4017
+ };
4018
+ content: {
4019
+ "application/json": components["schemas"]["PaymentResult"];
4020
+ };
4021
+ };
4022
+ default: components["responses"]["Error"];
4023
+ };
4024
+ };
4025
+ "set-auto-renew": {
4026
+ parameters: {
4027
+ query?: never;
4028
+ header?: never;
4029
+ path: {
4030
+ itemId: components["parameters"]["ItemId"];
4031
+ };
4032
+ cookie?: never;
4033
+ };
4034
+ requestBody: {
4035
+ content: {
4036
+ "application/json": components["schemas"]["AutoRenewSet"];
4037
+ };
4038
+ };
4039
+ responses: {
4040
+ /** @description OK */
4041
+ 200: {
4042
+ headers: {
4043
+ [name: string]: unknown;
4044
+ };
4045
+ content: {
4046
+ "application/json": components["schemas"]["SubscriptionItem"];
4047
+ };
4048
+ };
4049
+ default: components["responses"]["Error"];
4050
+ };
4051
+ };
4052
+ "preview-code": {
4053
+ parameters: {
4054
+ query?: never;
4055
+ header?: never;
4056
+ path?: never;
4057
+ cookie?: never;
4058
+ };
4059
+ requestBody: {
4060
+ content: {
4061
+ "application/json": components["schemas"]["CodeRequest"];
4062
+ };
4063
+ };
4064
+ responses: {
4065
+ /** @description OK */
4066
+ 200: {
4067
+ headers: {
4068
+ [name: string]: unknown;
4069
+ };
4070
+ content: {
4071
+ "application/json": components["schemas"]["CodePreview"];
4072
+ };
4073
+ };
4074
+ default: components["responses"]["Error"];
4075
+ };
4076
+ };
4077
+ "redeem-code": {
4078
+ parameters: {
4079
+ query?: never;
4080
+ header?: never;
4081
+ path?: never;
4082
+ cookie?: never;
4083
+ };
4084
+ requestBody: {
4085
+ content: {
4086
+ "application/json": components["schemas"]["CodeRedeem"];
4087
+ };
4088
+ };
4089
+ responses: {
4090
+ /** @description OK */
4091
+ 200: {
4092
+ headers: {
4093
+ [name: string]: unknown;
4094
+ };
4095
+ content: {
4096
+ "application/json": components["schemas"]["CodeRedeemResult"];
4097
+ };
4098
+ };
4099
+ default: components["responses"]["Error"];
4100
+ };
4101
+ };
4102
+ "get-project-billing-account": {
4103
+ parameters: {
4104
+ query?: never;
4105
+ header?: never;
4106
+ path: {
4107
+ projectId: components["parameters"]["ProjectId"];
4108
+ };
4109
+ cookie?: never;
4110
+ };
4111
+ requestBody?: never;
4112
+ responses: {
4113
+ /** @description OK */
4114
+ 200: {
4115
+ headers: {
4116
+ [name: string]: unknown;
4117
+ };
4118
+ content: {
4119
+ "application/json": components["schemas"]["ProjectPayer"];
4120
+ };
4121
+ };
4122
+ default: components["responses"]["Error"];
4123
+ };
4124
+ };
4125
+ "list-project-spend": {
4126
+ parameters: {
4127
+ query: {
4128
+ from: components["parameters"]["FromRequired"];
4129
+ /** @description Exclusive. One month is `[2026-09-01, 2026-10-01)`. */
4130
+ to: components["parameters"]["ToRequired"];
4131
+ /**
4132
+ * @description `resource` groups by the resource each charge names. Items billed under their own
4133
+ * identifier — a disk, a public address — appear as their own rows rather than under
4134
+ * the machine they are attached to, since the relationship between them is known to
4135
+ * the owning service and not here.
4136
+ */
4137
+ group_by?: "product" | "plan" | "resource";
4138
+ /** @description Filter by ID or lookup key. A lookup key is scoped to the product. */
4139
+ product?: components["schemas"]["ObjectReference"];
4140
+ /** @description 1-based page number; the first page when omitted. */
4141
+ page?: components["parameters"]["Page"];
4142
+ /** @description How many per page, 100 at most. */
4143
+ page_size?: components["parameters"]["PageSize"];
4144
+ };
4145
+ header?: never;
4146
+ path: {
4147
+ projectId: components["parameters"]["ProjectId"];
4148
+ };
4149
+ cookie?: never;
4150
+ };
4151
+ requestBody?: never;
4152
+ responses: {
4153
+ /** @description OK */
4154
+ 200: {
4155
+ headers: {
4156
+ [name: string]: unknown;
4157
+ };
4158
+ content: {
4159
+ "application/json": components["schemas"]["SpendRowList"];
4160
+ };
4161
+ };
4162
+ default: components["responses"]["Error"];
4163
+ };
4164
+ };
4165
+ "list-project-usage-charges": {
4166
+ parameters: {
4167
+ query?: {
4168
+ /** @description 1-based page number; the first page when omitted. */
4169
+ page?: components["parameters"]["Page"];
4170
+ /** @description How many per page, 100 at most. */
4171
+ page_size?: components["parameters"]["PageSize"];
4172
+ resource_id?: string;
4173
+ /** @description Filter by ID or lookup key. A lookup key is scoped to the product. */
4174
+ product?: components["schemas"]["ObjectReference"];
4175
+ /** @description Filter by ID or lookup key. A lookup key is scoped to the product. */
4176
+ meter?: components["schemas"]["ObjectReference"];
4177
+ from?: components["parameters"]["From"];
4178
+ /** @description Exclusive. */
4179
+ to?: components["parameters"]["To"];
4180
+ };
4181
+ header?: never;
4182
+ path: {
4183
+ projectId: components["parameters"]["ProjectId"];
4184
+ };
4185
+ cookie?: never;
4186
+ };
4187
+ requestBody?: never;
4188
+ responses: {
4189
+ /** @description OK */
4190
+ 200: {
4191
+ headers: {
4192
+ [name: string]: unknown;
4193
+ };
4194
+ content: {
4195
+ "application/json": components["schemas"]["UsageChargeList"];
4196
+ };
4197
+ };
4198
+ default: components["responses"]["Error"];
4199
+ };
4200
+ };
4201
+ "list-project-subscriptions": {
4202
+ parameters: {
4203
+ query?: {
4204
+ /** @description 1-based page number; the first page when omitted. */
4205
+ page?: components["parameters"]["Page"];
4206
+ /** @description How many per page, 100 at most. */
4207
+ page_size?: components["parameters"]["PageSize"];
4208
+ };
4209
+ header?: never;
4210
+ path: {
4211
+ projectId: components["parameters"]["ProjectId"];
4212
+ };
4213
+ cookie?: never;
4214
+ };
4215
+ requestBody?: never;
4216
+ responses: {
4217
+ /** @description OK */
4218
+ 200: {
4219
+ headers: {
4220
+ [name: string]: unknown;
4221
+ };
4222
+ content: {
4223
+ "application/json": components["schemas"]["SubscriptionList"];
4224
+ };
4225
+ };
4226
+ default: components["responses"]["Error"];
4227
+ };
4228
+ };
4229
+ "list-project-subscription-items": {
4230
+ parameters: {
4231
+ query?: {
4232
+ /** @description 1-based page number; the first page when omitted. */
4233
+ page?: components["parameters"]["Page"];
4234
+ /** @description How many per page, 100 at most. */
4235
+ page_size?: components["parameters"]["PageSize"];
4236
+ expiring_before?: string;
4237
+ };
4238
+ header?: never;
4239
+ path: {
4240
+ projectId: components["parameters"]["ProjectId"];
4241
+ };
4242
+ cookie?: never;
4243
+ };
4244
+ requestBody?: never;
4245
+ responses: {
4246
+ /** @description OK */
4247
+ 200: {
4248
+ headers: {
4249
+ [name: string]: unknown;
4250
+ };
4251
+ content: {
4252
+ "application/json": components["schemas"]["SubscriptionItemList"];
4253
+ };
4254
+ };
4255
+ default: components["responses"]["Error"];
4256
+ };
4257
+ };
4258
+ "set-project-auto-renew": {
4259
+ parameters: {
4260
+ query?: never;
4261
+ header?: never;
4262
+ path: {
4263
+ projectId: components["parameters"]["ProjectId"];
4264
+ itemId: components["parameters"]["ItemId"];
4265
+ };
4266
+ cookie?: never;
4267
+ };
4268
+ requestBody: {
4269
+ content: {
4270
+ "application/json": components["schemas"]["AutoRenewSet"];
4271
+ };
4272
+ };
4273
+ responses: {
4274
+ /** @description OK */
4275
+ 200: {
4276
+ headers: {
4277
+ [name: string]: unknown;
4278
+ };
4279
+ content: {
4280
+ "application/json": components["schemas"]["SubscriptionItem"];
4281
+ };
4282
+ };
4283
+ default: components["responses"]["Error"];
4284
+ };
4285
+ };
4286
+ "list-project-orders": {
4287
+ parameters: {
4288
+ query?: {
4289
+ /** @description 1-based page number; the first page when omitted. */
4290
+ page?: components["parameters"]["Page"];
4291
+ /** @description How many per page, 100 at most. */
4292
+ page_size?: components["parameters"]["PageSize"];
4293
+ state?: components["schemas"]["OrderState"];
4294
+ from?: components["parameters"]["From"];
4295
+ /** @description Exclusive. */
4296
+ to?: components["parameters"]["To"];
4297
+ };
4298
+ header?: never;
4299
+ path: {
4300
+ projectId: components["parameters"]["ProjectId"];
4301
+ };
4302
+ cookie?: never;
4303
+ };
4304
+ requestBody?: never;
4305
+ responses: {
4306
+ /** @description OK */
4307
+ 200: {
4308
+ headers: {
4309
+ [name: string]: unknown;
4310
+ };
4311
+ content: {
4312
+ "application/json": components["schemas"]["OrderList"];
4313
+ };
4314
+ };
4315
+ default: components["responses"]["Error"];
4316
+ };
4317
+ };
4318
+ "get-project-order": {
4319
+ parameters: {
4320
+ query?: never;
4321
+ header?: never;
4322
+ path: {
4323
+ projectId: components["parameters"]["ProjectId"];
4324
+ orderId: components["parameters"]["OrderId"];
4325
+ };
4326
+ cookie?: never;
4327
+ };
4328
+ requestBody?: never;
4329
+ responses: {
4330
+ /** @description OK */
4331
+ 200: {
4332
+ headers: {
4333
+ [name: string]: unknown;
4334
+ };
4335
+ content: {
4336
+ "application/json": components["schemas"]["Order"];
4337
+ };
4338
+ };
4339
+ default: components["responses"]["Error"];
4340
+ };
4341
+ };
4342
+ "list-project-active-resources": {
4343
+ parameters: {
4344
+ query?: {
4345
+ /** @description 1-based page number; the first page when omitted. */
4346
+ page?: components["parameters"]["Page"];
4347
+ /** @description How many per page, 100 at most. */
4348
+ page_size?: components["parameters"]["PageSize"];
4349
+ resource_id?: string;
4350
+ };
4351
+ header?: never;
4352
+ path: {
4353
+ projectId: components["parameters"]["ProjectId"];
4354
+ };
4355
+ cookie?: never;
4356
+ };
4357
+ requestBody?: never;
4358
+ responses: {
4359
+ /** @description OK */
4360
+ 200: {
4361
+ headers: {
4362
+ [name: string]: unknown;
4363
+ };
4364
+ content: {
4365
+ "application/json": components["schemas"]["ActiveResourceList"];
4366
+ };
4367
+ };
4368
+ default: components["responses"]["Error"];
4369
+ };
4370
+ };
4371
+ "create-project-quote": {
4372
+ parameters: {
4373
+ query?: never;
4374
+ header?: never;
4375
+ path: {
4376
+ projectId: components["parameters"]["ProjectId"];
4377
+ };
4378
+ cookie?: never;
4379
+ };
4380
+ requestBody: {
4381
+ content: {
4382
+ "application/json": components["schemas"]["QuoteRequest"];
4383
+ };
4384
+ };
4385
+ responses: {
4386
+ /** @description OK */
4387
+ 200: {
4388
+ headers: {
4389
+ [name: string]: unknown;
4390
+ };
4391
+ content: {
4392
+ "application/json": components["schemas"]["Quote"];
4393
+ };
4394
+ };
4395
+ default: components["responses"]["Error"];
4396
+ };
4397
+ };
4398
+ "list-allowances": {
4399
+ parameters: {
4400
+ query?: {
4401
+ /** @description 1-based page number; the first page when omitted. */
4402
+ page?: components["parameters"]["Page"];
4403
+ /** @description How many per page, 100 at most. */
4404
+ page_size?: components["parameters"]["PageSize"];
4405
+ /** @description Restrict to one of your accounts. All of them when omitted. */
4406
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
4407
+ /** @description Filter by ID or lookup key. A lookup key is scoped to the product. */
4408
+ meter?: components["schemas"]["ObjectReference"];
4409
+ status?: "active" | "depleted" | "expired" | "voided";
4410
+ /** @description Filter by ID or lookup key. A lookup key is scoped to the product. */
4411
+ product?: components["schemas"]["ObjectReference"];
4412
+ };
4413
+ header?: never;
4414
+ path?: never;
4415
+ cookie?: never;
4416
+ };
4417
+ requestBody?: never;
4418
+ responses: {
4419
+ /** @description OK */
4420
+ 200: {
4421
+ headers: {
4422
+ [name: string]: unknown;
4423
+ };
4424
+ content: {
4425
+ "application/json": components["schemas"]["AllowanceList"];
4426
+ };
4427
+ };
4428
+ default: components["responses"]["Error"];
4429
+ };
4430
+ };
4431
+ "list-allowance-consumptions": {
4432
+ parameters: {
4433
+ query?: {
4434
+ /** @description 1-based page number; the first page when omitted. */
4435
+ page?: components["parameters"]["Page"];
4436
+ /** @description How many per page, 100 at most. */
4437
+ page_size?: components["parameters"]["PageSize"];
4438
+ };
4439
+ header?: never;
4440
+ path: {
4441
+ allowanceId: string;
4442
+ };
4443
+ cookie?: never;
4444
+ };
4445
+ requestBody?: never;
4446
+ responses: {
4447
+ /** @description OK */
4448
+ 200: {
4449
+ headers: {
4450
+ [name: string]: unknown;
4451
+ };
4452
+ content: {
4453
+ "application/json": components["schemas"]["AllowanceConsumptionList"];
4454
+ };
4455
+ };
4456
+ default: components["responses"]["Error"];
4457
+ };
4458
+ };
4459
+ "list-orders": {
4460
+ parameters: {
4461
+ query?: {
4462
+ /** @description 1-based page number; the first page when omitted. */
4463
+ page?: components["parameters"]["Page"];
4464
+ /** @description How many per page, 100 at most. */
4465
+ page_size?: components["parameters"]["PageSize"];
4466
+ /** @description Restrict to one of your accounts. All of them when omitted. */
4467
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
4468
+ project_id?: string;
4469
+ state?: components["schemas"]["OrderState"];
4470
+ from?: components["parameters"]["From"];
4471
+ /** @description Exclusive. */
4472
+ to?: components["parameters"]["To"];
4473
+ };
4474
+ header?: never;
4475
+ path?: never;
4476
+ cookie?: never;
4477
+ };
4478
+ requestBody?: never;
4479
+ responses: {
4480
+ /** @description OK */
4481
+ 200: {
4482
+ headers: {
4483
+ [name: string]: unknown;
4484
+ };
4485
+ content: {
4486
+ "application/json": components["schemas"]["OrderList"];
4487
+ };
4488
+ };
4489
+ default: components["responses"]["Error"];
4490
+ };
4491
+ };
4492
+ "get-order": {
4493
+ parameters: {
4494
+ query?: never;
4495
+ header?: never;
4496
+ path: {
4497
+ orderId: components["parameters"]["OrderId"];
4498
+ };
4499
+ cookie?: never;
4500
+ };
4501
+ requestBody?: never;
4502
+ responses: {
4503
+ /** @description OK */
4504
+ 200: {
4505
+ headers: {
4506
+ [name: string]: unknown;
4507
+ };
4508
+ content: {
4509
+ "application/json": components["schemas"]["Order"];
4510
+ };
4511
+ };
4512
+ default: components["responses"]["Error"];
4513
+ };
4514
+ };
4515
+ "cancel-scheduled-change": {
4516
+ parameters: {
4517
+ query?: never;
4518
+ header?: never;
4519
+ path: {
4520
+ orderId: components["parameters"]["OrderId"];
4521
+ };
4522
+ cookie?: never;
4523
+ };
4524
+ requestBody?: never;
4525
+ responses: {
4526
+ /** @description OK */
4527
+ 200: {
4528
+ headers: {
4529
+ [name: string]: unknown;
4530
+ };
4531
+ content: {
4532
+ "application/json": components["schemas"]["Order"];
4533
+ };
4534
+ };
4535
+ default: components["responses"]["Error"];
4536
+ };
4537
+ };
4538
+ "list-order-items": {
4539
+ parameters: {
4540
+ query?: {
4541
+ /** @description 1-based page number; the first page when omitted. */
4542
+ page?: components["parameters"]["Page"];
4543
+ /** @description How many per page, 100 at most. */
4544
+ page_size?: components["parameters"]["PageSize"];
4545
+ };
4546
+ header?: never;
4547
+ path: {
4548
+ orderId: components["parameters"]["OrderId"];
4549
+ };
4550
+ cookie?: never;
4551
+ };
4552
+ requestBody?: never;
4553
+ responses: {
4554
+ /** @description OK */
4555
+ 200: {
4556
+ headers: {
4557
+ [name: string]: unknown;
4558
+ };
4559
+ content: {
4560
+ "application/json": components["schemas"]["OrderItemList"];
4561
+ };
4562
+ };
4563
+ default: components["responses"]["Error"];
4564
+ };
4565
+ };
4566
+ "get-order-refund-quote": {
4567
+ parameters: {
4568
+ query?: never;
4569
+ header?: never;
4570
+ path: {
4571
+ orderId: components["parameters"]["OrderId"];
4572
+ };
4573
+ cookie?: never;
4574
+ };
4575
+ requestBody?: never;
4576
+ responses: {
4577
+ /** @description OK */
4578
+ 200: {
4579
+ headers: {
4580
+ [name: string]: unknown;
4581
+ };
4582
+ content: {
4583
+ "application/json": components["schemas"]["RefundQuote"];
4584
+ };
4585
+ };
4586
+ default: components["responses"]["Error"];
4587
+ };
4588
+ };
4589
+ "list-project-order-items": {
4590
+ parameters: {
4591
+ query?: {
4592
+ /** @description 1-based page number; the first page when omitted. */
4593
+ page?: components["parameters"]["Page"];
4594
+ /** @description How many per page, 100 at most. */
4595
+ page_size?: components["parameters"]["PageSize"];
4596
+ };
4597
+ header?: never;
4598
+ path: {
4599
+ projectId: components["parameters"]["ProjectId"];
4600
+ orderId: components["parameters"]["OrderId"];
4601
+ };
4602
+ cookie?: never;
4603
+ };
4604
+ requestBody?: never;
4605
+ responses: {
4606
+ /** @description OK */
4607
+ 200: {
4608
+ headers: {
4609
+ [name: string]: unknown;
4610
+ };
4611
+ content: {
4612
+ "application/json": components["schemas"]["OrderItemList"];
4613
+ };
4614
+ };
4615
+ default: components["responses"]["Error"];
4616
+ };
4617
+ };
4618
+ "list-project-allowances": {
4619
+ parameters: {
4620
+ query?: {
4621
+ /** @description 1-based page number; the first page when omitted. */
4622
+ page?: components["parameters"]["Page"];
4623
+ /** @description How many per page, 100 at most. */
4624
+ page_size?: components["parameters"]["PageSize"];
4625
+ /** @description Filter by ID or lookup key. A lookup key is scoped to the product. */
4626
+ meter?: components["schemas"]["ObjectReference"];
4627
+ /** @description Filter by ID or lookup key. A lookup key is scoped to the product. */
4628
+ product?: components["schemas"]["ObjectReference"];
4629
+ };
4630
+ header?: never;
4631
+ path: {
4632
+ projectId: components["parameters"]["ProjectId"];
4633
+ };
4634
+ cookie?: never;
4635
+ };
4636
+ requestBody?: never;
4637
+ responses: {
4638
+ /** @description OK */
4639
+ 200: {
4640
+ headers: {
4641
+ [name: string]: unknown;
4642
+ };
4643
+ content: {
4644
+ "application/json": components["schemas"]["AllowanceList"];
4645
+ };
4646
+ };
4647
+ default: components["responses"]["Error"];
4648
+ };
4649
+ };
4650
+ "list-entitlements": {
4651
+ parameters: {
4652
+ query?: {
4653
+ /** @description 1-based page number; the first page when omitted. */
4654
+ page?: components["parameters"]["Page"];
4655
+ /** @description How many per page, 100 at most. */
4656
+ page_size?: components["parameters"]["PageSize"];
4657
+ /** @description Restrict to one of your accounts. All of them when omitted. */
4658
+ billing_account_id?: components["parameters"]["AccountIdQuery"];
4659
+ /**
4660
+ * @description Restrict to one project. Anything bought at account level, such as a membership,
4661
+ * appears regardless.
4662
+ */
4663
+ project_id?: string;
4664
+ };
4665
+ header?: never;
4666
+ path?: never;
4667
+ cookie?: never;
4668
+ };
4669
+ requestBody?: never;
4670
+ responses: {
4671
+ /** @description OK */
4672
+ 200: {
4673
+ headers: {
4674
+ [name: string]: unknown;
4675
+ };
4676
+ content: {
4677
+ "application/json": components["schemas"]["EntitlementList"];
4678
+ };
4679
+ };
4680
+ default: components["responses"]["Error"];
4681
+ };
4682
+ };
4683
+ "list-project-entitlements": {
4684
+ parameters: {
4685
+ query?: {
4686
+ /** @description 1-based page number; the first page when omitted. */
4687
+ page?: components["parameters"]["Page"];
4688
+ /** @description How many per page, 100 at most. */
4689
+ page_size?: components["parameters"]["PageSize"];
4690
+ /** @description Filter by ID or lookup key. A lookup key is scoped to the product. */
4691
+ product?: components["schemas"]["ObjectReference"];
4692
+ };
4693
+ header?: never;
4694
+ path: {
4695
+ projectId: components["parameters"]["ProjectId"];
4696
+ };
4697
+ cookie?: never;
4698
+ };
4699
+ requestBody?: never;
4700
+ responses: {
4701
+ /** @description OK */
4702
+ 200: {
4703
+ headers: {
4704
+ [name: string]: unknown;
4705
+ };
4706
+ content: {
4707
+ "application/json": components["schemas"]["EntitlementList"];
4708
+ };
4709
+ };
4710
+ default: components["responses"]["Error"];
4711
+ };
4712
+ };
4713
+ }