@leaflow/sdk 0.0.0-dev.13.g732c6b7 → 0.0.0-dev.130.g2ad4b23

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