@leaflow/sdk 0.0.0-dev.25.g6c5751f → 0.0.0-dev.252.gbe25f3b

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 (79) hide show
  1. package/README.md +22 -1
  2. package/dist/account/v1/client.d.ts +4 -0
  3. package/dist/account/v1/client.js +7 -0
  4. package/dist/account/v1/index.d.ts +33 -22
  5. package/dist/account/v1/index.js +4 -4
  6. package/dist/account/v1/schema.d.ts +307 -89
  7. package/dist/assistant/v1/client.d.ts +4 -0
  8. package/dist/assistant/v1/client.js +7 -0
  9. package/dist/assistant/v1/index.d.ts +71 -40
  10. package/dist/assistant/v1/index.js +4 -4
  11. package/dist/assistant/v1/schema.d.ts +1204 -139
  12. package/dist/billing/account/v1/client.d.ts +4 -0
  13. package/dist/billing/account/v1/client.js +7 -0
  14. package/dist/billing/account/v1/index.d.ts +169 -0
  15. package/dist/billing/account/v1/index.js +5 -0
  16. package/dist/billing/account/v1/schema.d.ts +4385 -0
  17. package/dist/billing/account/v1/schema.js +5 -0
  18. package/dist/billing/catalog/v1/client.d.ts +4 -0
  19. package/dist/billing/catalog/v1/client.js +7 -0
  20. package/dist/billing/catalog/v1/index.d.ts +33 -0
  21. package/dist/billing/catalog/v1/index.js +5 -0
  22. package/dist/billing/catalog/v1/schema.d.ts +915 -0
  23. package/dist/billing/catalog/v1/schema.js +5 -0
  24. package/dist/billing/index.d.ts +3 -0
  25. package/dist/billing/index.js +6 -0
  26. package/dist/billing/project/v1/client.d.ts +4 -0
  27. package/dist/billing/project/v1/client.js +7 -0
  28. package/dist/billing/project/v1/index.d.ts +59 -0
  29. package/dist/billing/project/v1/index.js +5 -0
  30. package/dist/billing/project/v1/schema.d.ts +1892 -0
  31. package/dist/billing/project/v1/schema.js +5 -0
  32. package/dist/canopy/v1/client.d.ts +4 -0
  33. package/dist/canopy/v1/client.js +7 -0
  34. package/dist/canopy/v1/index.d.ts +24 -23
  35. package/dist/canopy/v1/index.js +4 -4
  36. package/dist/canopy/v1/schema.d.ts +113 -109
  37. package/dist/compute/v1/client.d.ts +4 -0
  38. package/dist/compute/v1/client.js +7 -0
  39. package/dist/compute/v1/index.d.ts +207 -134
  40. package/dist/compute/v1/index.js +4 -4
  41. package/dist/compute/v1/schema.d.ts +1944 -553
  42. package/dist/dns/v1/client.d.ts +4 -0
  43. package/dist/dns/v1/client.js +7 -0
  44. package/dist/dns/v1/index.d.ts +43 -0
  45. package/dist/dns/v1/index.js +5 -0
  46. package/dist/dns/v1/schema.d.ts +887 -0
  47. package/dist/dns/v1/schema.js +5 -0
  48. package/dist/iam/v1/client.d.ts +4 -0
  49. package/dist/iam/v1/client.js +7 -0
  50. package/dist/iam/v1/index.d.ts +55 -32
  51. package/dist/iam/v1/index.js +4 -4
  52. package/dist/iam/v1/schema.d.ts +521 -88
  53. package/dist/index.d.ts +11 -7
  54. package/dist/index.js +19 -5
  55. package/dist/monitoring/v1/client.d.ts +4 -0
  56. package/dist/monitoring/v1/client.js +7 -0
  57. package/dist/monitoring/v1/index.d.ts +130 -49
  58. package/dist/monitoring/v1/index.js +4 -4
  59. package/dist/monitoring/v1/schema.d.ts +2420 -527
  60. package/dist/notification/v1/client.d.ts +4 -0
  61. package/dist/notification/v1/client.js +7 -0
  62. package/dist/notification/v1/index.d.ts +81 -0
  63. package/dist/notification/v1/index.js +5 -0
  64. package/dist/notification/v1/schema.d.ts +2048 -0
  65. package/dist/notification/v1/schema.js +5 -0
  66. package/dist/routes.d.ts +3234 -0
  67. package/dist/routes.js +3639 -0
  68. package/dist/support/v1/client.d.ts +4 -0
  69. package/dist/support/v1/client.js +7 -0
  70. package/dist/support/v1/index.d.ts +51 -0
  71. package/dist/support/v1/index.js +5 -0
  72. package/dist/support/v1/schema.d.ts +1082 -0
  73. package/dist/support/v1/schema.js +5 -0
  74. package/dist/tunnel/v1/client.d.ts +4 -0
  75. package/dist/tunnel/v1/client.js +7 -0
  76. package/dist/tunnel/v1/index.d.ts +8 -7
  77. package/dist/tunnel/v1/index.js +4 -4
  78. package/dist/tunnel/v1/schema.d.ts +40 -34
  79. package/package.json +34 -10
@@ -0,0 +1,915 @@
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/prices": {
7
+ parameters: {
8
+ query?: never;
9
+ header?: never;
10
+ path?: never;
11
+ cookie?: never;
12
+ };
13
+ /**
14
+ * List what is on sale, with prices
15
+ * @description Every sellable thing and what it costs, in one request. A plan appears once per price.
16
+ *
17
+ * `currency` is required: a plan has a price in each currency it is sold in, so "what does
18
+ * this cost" has no answer without one.
19
+ *
20
+ * Retired prices are left out. Existing subscriptions still reference them, so this is not
21
+ * the place to look up what an existing purchase is paying.
22
+ */
23
+ get: operations["list-prices"];
24
+ put?: never;
25
+ post?: never;
26
+ delete?: never;
27
+ options?: never;
28
+ head?: never;
29
+ patch?: never;
30
+ trace?: never;
31
+ };
32
+ "/catalog/v1/products": {
33
+ parameters: {
34
+ query?: never;
35
+ header?: never;
36
+ path?: never;
37
+ cookie?: never;
38
+ };
39
+ /** List catalog products */
40
+ get: operations["list-products"];
41
+ put?: never;
42
+ post?: never;
43
+ delete?: never;
44
+ options?: never;
45
+ head?: never;
46
+ patch?: never;
47
+ trace?: never;
48
+ };
49
+ "/catalog/v1/products/{productId}": {
50
+ parameters: {
51
+ query?: never;
52
+ header?: never;
53
+ path: {
54
+ productId: components["schemas"]["ProductID"];
55
+ };
56
+ cookie?: never;
57
+ };
58
+ /**
59
+ * Get a service
60
+ * @description Resolves an identifier that was stored elsewhere — on an order line, an invoice line, or
61
+ * the terms of a credit — into something that can be displayed.
62
+ */
63
+ get: operations["get-product"];
64
+ put?: never;
65
+ post?: never;
66
+ delete?: never;
67
+ options?: never;
68
+ head?: never;
69
+ patch?: never;
70
+ trace?: never;
71
+ };
72
+ "/catalog/v1/plans/{planId}": {
73
+ parameters: {
74
+ query?: never;
75
+ header?: never;
76
+ path: {
77
+ planId: string;
78
+ };
79
+ cookie?: never;
80
+ };
81
+ /**
82
+ * Get a sellable item
83
+ * @description Resolves a stored identifier into something that can be displayed. Returns items that are
84
+ * no longer on sale: an existing purchase still refers to one.
85
+ */
86
+ get: operations["get-plan"];
87
+ put?: never;
88
+ post?: never;
89
+ delete?: never;
90
+ options?: never;
91
+ head?: never;
92
+ patch?: never;
93
+ trace?: never;
94
+ };
95
+ "/catalog/v1/prices/{priceId}": {
96
+ parameters: {
97
+ query?: never;
98
+ header?: never;
99
+ path: {
100
+ priceId: string;
101
+ };
102
+ cookie?: never;
103
+ };
104
+ /**
105
+ * Get a price
106
+ * @description Returns the catalog price, including retired prices. Fixed purchase history and renewal agreements are shown on orders and subscriptions rather than reconstructed from today's catalog.
107
+ */
108
+ get: operations["get-price"];
109
+ put?: never;
110
+ post?: never;
111
+ delete?: never;
112
+ options?: never;
113
+ head?: never;
114
+ patch?: never;
115
+ trace?: never;
116
+ };
117
+ "/catalog/v1/plans": {
118
+ parameters: {
119
+ query: {
120
+ product_id: components["schemas"]["ProductID"];
121
+ };
122
+ header?: never;
123
+ path?: never;
124
+ cookie?: never;
125
+ };
126
+ /** List catalog plans */
127
+ get: operations["list-plans"];
128
+ put?: never;
129
+ post?: never;
130
+ delete?: never;
131
+ options?: never;
132
+ head?: never;
133
+ patch?: never;
134
+ trace?: never;
135
+ };
136
+ "/catalog/v1/plans/{planId}/prices": {
137
+ parameters: {
138
+ query?: never;
139
+ header?: never;
140
+ path: {
141
+ planId: components["parameters"]["PlanId"];
142
+ };
143
+ cookie?: never;
144
+ };
145
+ /**
146
+ * List catalog prices
147
+ * @description Public list prices only. An account holding a negotiated agreement may be charged less;
148
+ * it is never charged more.
149
+ */
150
+ get: operations["list-prices-by-plan"];
151
+ put?: never;
152
+ post?: never;
153
+ delete?: never;
154
+ options?: never;
155
+ head?: never;
156
+ patch?: never;
157
+ trace?: never;
158
+ };
159
+ "/catalog/v1/rate-cards/{rateCardId}/rules": {
160
+ parameters: {
161
+ query?: never;
162
+ header?: never;
163
+ path: {
164
+ rateCardId: components["parameters"]["RateCardId"];
165
+ };
166
+ cookie?: never;
167
+ };
168
+ /**
169
+ * List catalog rates
170
+ * @description Only public price lists are readable here. A list written for a single agreement is not,
171
+ * and its identifier cannot be used to reach it.
172
+ */
173
+ get: operations["list-rates"];
174
+ put?: never;
175
+ post?: never;
176
+ delete?: never;
177
+ options?: never;
178
+ head?: never;
179
+ patch?: never;
180
+ trace?: never;
181
+ };
182
+ "/catalog/v1/estimates": {
183
+ parameters: {
184
+ query?: never;
185
+ header?: never;
186
+ path?: never;
187
+ cookie?: never;
188
+ };
189
+ get?: never;
190
+ put?: never;
191
+ /**
192
+ * Estimate a basket
193
+ * @description Uses public list prices. Nothing is reserved and nothing is recorded, so this may be
194
+ * called as often as required.
195
+ *
196
+ * `POST` is used because the set of items to price does not fit in a query string. There is
197
+ * no corresponding `GET`, and no estimate is stored to retrieve.
198
+ *
199
+ * An account holding a negotiated agreement may be charged less than this. Tax and
200
+ * discounts are not included.
201
+ */
202
+ post: operations["create-estimate"];
203
+ delete?: never;
204
+ options?: never;
205
+ head?: never;
206
+ patch?: never;
207
+ trace?: never;
208
+ };
209
+ }
210
+ export type webhooks = Record<string, never>;
211
+ export interface components {
212
+ schemas: {
213
+ /**
214
+ * @description Whether a fulfilled purchase may end immediately or only after its paid term. Does not grant a refund. When absent, the terms are not configured and termination requires review.
215
+ * @enum {string}
216
+ */
217
+ TerminationPolicy: "immediate" | "period_end";
218
+ /**
219
+ * @description Prorated returns the unused value of paid service periods using integer-second duration ratios. Setup fees are excluded. Tax and funds follow the original invoice and payment sources.
220
+ * @enum {string}
221
+ */
222
+ RefundPolicy: "none" | "prorated";
223
+ Error: {
224
+ code?: string;
225
+ message: string;
226
+ /**
227
+ * @description What a given `code` carries alongside the message. The keys depend on the code,
228
+ * and a client that does not recognise one ignores it.
229
+ */
230
+ meta?: {
231
+ [key: string]: unknown;
232
+ };
233
+ /** Format: int64 */
234
+ status: number;
235
+ };
236
+ Product: {
237
+ id: components["schemas"]["ProductID"];
238
+ name: string;
239
+ description?: string;
240
+ };
241
+ /** @description Immutable platform service identifier, such as compute, canopy or assistant. */
242
+ ProductID: string;
243
+ ProductList: {
244
+ items: components["schemas"]["Product"][];
245
+ pagination: components["schemas"]["OffsetPagination"];
246
+ };
247
+ Plan: {
248
+ enabled: boolean;
249
+ lookup_key?: string;
250
+ product: components["schemas"]["Product"];
251
+ features: components["schemas"]["PlanFeature"][];
252
+ /** Format: uuid */
253
+ id: string;
254
+ product_id: components["schemas"]["ProductID"];
255
+ name: string;
256
+ description?: string;
257
+ };
258
+ PlanList: {
259
+ items: components["schemas"]["Plan"][];
260
+ pagination: components["schemas"]["OffsetPagination"];
261
+ };
262
+ Price: {
263
+ rate_card?: components["schemas"]["ObjectIdentity"];
264
+ lookup_key?: string;
265
+ product: components["schemas"]["Product"];
266
+ plan: components["schemas"]["ObjectIdentity"];
267
+ /** Format: uuid */
268
+ meter_id?: string;
269
+ meter?: components["schemas"]["ObjectIdentity"];
270
+ unit_quantity: string;
271
+ enabled?: boolean;
272
+ termination_policy?: components["schemas"]["TerminationPolicy"];
273
+ refund_policy?: components["schemas"]["RefundPolicy"];
274
+ product_id?: components["schemas"]["ProductID"];
275
+ /** Format: uuid */
276
+ id: string;
277
+ /** Format: uuid */
278
+ plan_id: string;
279
+ currency: string;
280
+ /**
281
+ * @description `postpaid` charges for what is used, `prepaid` buys a period in advance, `one_time`
282
+ * charges once.
283
+ * @enum {string}
284
+ */
285
+ type: "postpaid" | "prepaid" | "one_time";
286
+ /**
287
+ * @description How the amount is arrived at. `rated` means the rate depends on attributes such as
288
+ * region or machine type, and is looked up on a price list.
289
+ * @enum {string}
290
+ */
291
+ billing_scheme: "per_unit" | "tiered" | "rated";
292
+ /** @description Present for `per_unit`. */
293
+ unit_amount?: components["schemas"]["Money"];
294
+ /**
295
+ * @description `none` for a price that is not tiered, which is most of them.
296
+ *
297
+ * Otherwise `graduated` charges each band at its own rate, and `volume` charges
298
+ * everything at the rate of the band the total falls in.
299
+ * @enum {string}
300
+ */
301
+ tiers_mode?: "none" | "graduated" | "volume";
302
+ /** @description Present for `tiered`, in ascending order. */
303
+ tiers?: components["schemas"]["Tier"][];
304
+ /**
305
+ * Format: uuid
306
+ * @description For `rated` prices, the price list the rates are read from.
307
+ */
308
+ rate_card_id?: string;
309
+ /** @description The smallest quantity that can be bought. Absent means no lower bound. */
310
+ min_quantity?: string;
311
+ /**
312
+ * @description The largest purchasable quantity. Omitted when no maximum applies. A quantity above this limit is
313
+ * rejected with BILLING_PRICE_INVALID and field=max_quantity.
314
+ */
315
+ max_quantity?: string;
316
+ /** @description Quantities must be a multiple of this. Absent means any quantity within the bounds. */
317
+ quantity_step?: string;
318
+ /** @description For prepaid prices, how many periods one purchase covers. */
319
+ interval_count?: number;
320
+ /** @enum {string} */
321
+ interval: "none" | "day" | "month" | "year";
322
+ setup_fee?: components["schemas"]["Money"];
323
+ };
324
+ PriceList: {
325
+ items: components["schemas"]["Price"][];
326
+ pagination: components["schemas"]["OffsetPagination"];
327
+ };
328
+ Rate: {
329
+ meter: components["schemas"]["ObjectIdentity"];
330
+ /** @description The unit readings arrive in, such as `core-second`. */
331
+ unit?: string;
332
+ /** @description The attributes this rate applies to, such as region and machine type. */
333
+ dimensions: {
334
+ [key: string]: string;
335
+ };
336
+ /** @enum {string} */
337
+ pricing_model: "per_unit" | "graduated" | "volume";
338
+ /** @description Present for `per_unit`. Tiered rates carry their amounts on the tiers. */
339
+ unit_amount?: components["schemas"]["Money"];
340
+ /** @description Present for `graduated` and `volume`, in ascending order. */
341
+ tiers?: components["schemas"]["Tier"][];
342
+ /**
343
+ * @description How many measured units one amount covers. An hourly rate on a per-second meter is
344
+ * `"3600"`.
345
+ */
346
+ unit_quantity?: string;
347
+ currency: string;
348
+ /** Format: date-time */
349
+ effective_from: string;
350
+ /** Format: date-time */
351
+ effective_to?: string | null;
352
+ };
353
+ RateList: {
354
+ items: components["schemas"]["Rate"][];
355
+ pagination: components["schemas"]["OffsetPagination"];
356
+ };
357
+ /**
358
+ * @description Identify a price directly, or select a price for a plan. For each resource give its ID or lookup key, never both. Lookup keys require product_id.
359
+ *
360
+ * A line that gives a meter, `dimensions` or `duration_seconds` estimates usage and is
361
+ * priced only at a postpaid price. Such a line is refused with HTTP 400
362
+ * `BILLING_PURCHASE_INVALID` when `price_type` is `prepaid` or `one_time`, or when the price
363
+ * it names is not postpaid; `meta.field` is `price_type`, `price_id` or `price_lookup_key`
364
+ * accordingly. When the plan has no postpaid price, the line is returned unpriced with
365
+ * `no_price`.
366
+ */
367
+ QuoteLine: {
368
+ price_lookup_key?: string;
369
+ plan_lookup_key?: string;
370
+ meter_lookup_key?: string;
371
+ /** Format: uuid */
372
+ price_id?: string;
373
+ product_id?: components["schemas"]["ProductID"];
374
+ /** Format: uuid */
375
+ plan_id?: string;
376
+ /** Format: uuid */
377
+ meter_id?: string;
378
+ /**
379
+ * @description The attributes the price depends on — region, instance type, token class.
380
+ *
381
+ * Required when the price draws its rates from a price list, which is how anything
382
+ * sold by region or by machine type is priced. A price that carries a single unit
383
+ * amount, or a ladder, has no attributes to give and takes none.
384
+ *
385
+ * Every attribute the meter declares must be present. A combination with no rate
386
+ * covering it is refused rather than priced at zero.
387
+ */
388
+ dimensions?: {
389
+ [key: string]: string;
390
+ };
391
+ /**
392
+ * @description Narrows the selection when a plan offers more than one billing type.
393
+ * @enum {string}
394
+ */
395
+ price_type?: "postpaid" | "prepaid" | "one_time";
396
+ /** @enum {string} */
397
+ interval?: "none" | "day" | "month" | "year";
398
+ interval_count?: number;
399
+ quantity: string;
400
+ /**
401
+ * Format: int64
402
+ * @description For metered items, how long to price for. This allows an estimate such as "about
403
+ * this much per month" to be shown before anything exists. The priced quantity is
404
+ * `quantity` multiplied by this duration.
405
+ */
406
+ duration_seconds?: number;
407
+ };
408
+ EstimateRequest: {
409
+ /** @description Must be one the catalogue publishes. */
410
+ currency: string;
411
+ lines: components["schemas"]["QuoteLine"][];
412
+ };
413
+ QuoteLineResult: {
414
+ /** @description Tax included in the account quote. Absent in public catalogue estimates. */
415
+ tax_amount?: components["schemas"]["Money"];
416
+ /** @description Tax already included in the displayed price. */
417
+ tax_included_amount?: components["schemas"]["Money"];
418
+ /** @description Which line of the request this answers. */
419
+ index: number;
420
+ /**
421
+ * @description Whether a price was found for this line. Read this before anything else.
422
+ *
423
+ * A single item with no price no longer fails the whole request. A catalogue
424
+ * almost always has something not yet priced, and refusing the request would
425
+ * leave no way to render a list in which a few entries are simply not on sale.
426
+ *
427
+ * When false, `price_id`, `unit_amount` and `amount` are absent and
428
+ * `unpriced_reason` states what is missing.
429
+ */
430
+ priced: boolean;
431
+ /**
432
+ * @description Why no price was found; `none` while `priced` is true.
433
+ *
434
+ * The last four are told apart because their remedies differ: the price points
435
+ * at no price list, the list holds no rate for that meter, that exact combination
436
+ * of attributes is not configured, or it is configured but nothing is in effect
437
+ * at the moment asked about.
438
+ * @enum {string}
439
+ */
440
+ unpriced_reason?: "none" | "no_price" | "no_rate_card" | "no_meter" | "no_dimensions" | "no_effective_rule";
441
+ /**
442
+ * Format: uuid
443
+ * @description The price selected. Returned whenever `priced` is true, including when the
444
+ * request identified the item indirectly, so that the choice can be confirmed.
445
+ */
446
+ price_id?: string;
447
+ plan_name?: string;
448
+ unit_amount?: components["schemas"]["Money"];
449
+ /**
450
+ * @description The quantity actually priced. When `duration_seconds` is given, it is the requested
451
+ * `quantity` multiplied by that duration.
452
+ */
453
+ quantity?: string;
454
+ /** @description Not rounded. Round only for display. */
455
+ amount?: components["schemas"]["Money"];
456
+ currency: string;
457
+ };
458
+ Quote: {
459
+ lines?: components["schemas"]["QuoteLineResult"][];
460
+ /**
461
+ * @description What would be owed in total. Amounts to be returned are not netted off it.
462
+ *
463
+ * Null when any line could not be priced. What would be owed is not knowable then, and a
464
+ * total that silently left the unpriced lines out would read as a smaller bill rather than
465
+ * an incomplete one — the per-line `priced` flag is easy to skip, a missing total is not.
466
+ */
467
+ total?: components["schemas"]["Money"] | null;
468
+ currency: string;
469
+ };
470
+ Tier: {
471
+ /** @description The upper bound of this band. Null on the last band, which has no bound. */
472
+ up_to?: string | null;
473
+ unit_amount: components["schemas"]["Money"];
474
+ /** @description Charged once when this band is reached, in addition to the per-unit amount. */
475
+ flat_amount?: components["schemas"]["Money"];
476
+ };
477
+ PlanFeature: {
478
+ feature: components["schemas"]["ObjectIdentity"];
479
+ name: string;
480
+ };
481
+ /** @description A catalog object inlined for display. */
482
+ ObjectIdentity: {
483
+ lookup_key?: string;
484
+ /** Format: uuid */
485
+ id: string;
486
+ name: string;
487
+ };
488
+ /**
489
+ * @description A decimal string, in the currency stated alongside it.
490
+ *
491
+ * **The currency is not part of this type.** It is carried by a `currency` field next to the
492
+ * amount, or by the account the amount belongs to. Reading an amount without that field is
493
+ * reading a number with no unit.
494
+ *
495
+ * It is a string rather than a JSON number because a JSON number is a float in most parsers,
496
+ * and a float loses precision on the first arithmetic. Nothing on this platform puts an amount
497
+ * through a float.
498
+ * @example 10.2500000000
499
+ */
500
+ Money: string;
501
+ /** @description Pagination metadata for stable numbered pages. total_count is returned only when the operation can determine it without an unbounded scan. */
502
+ OffsetPagination: {
503
+ /** Format: int64 */
504
+ page: number;
505
+ /** Format: int64 */
506
+ page_size: number;
507
+ /** Format: int64 */
508
+ total_count?: number;
509
+ };
510
+ };
511
+ responses: {
512
+ /** @description Unchanged since the `ETag` that was sent. No body. */
513
+ NotModified: {
514
+ headers: {
515
+ /** @description The same entity tag that was sent. */
516
+ ETag?: string;
517
+ [name: string]: unknown;
518
+ };
519
+ content?: never;
520
+ };
521
+ /** @description Error */
522
+ Error: {
523
+ headers: {
524
+ [name: string]: unknown;
525
+ };
526
+ content: {
527
+ "application/json": components["schemas"]["Error"];
528
+ };
529
+ };
530
+ };
531
+ parameters: {
532
+ /**
533
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
534
+ * answer is `304` with no body.
535
+ *
536
+ * Send it on every catalogue read. An unchanged catalogue is answered without a body.
537
+ */
538
+ IfNoneMatch: string;
539
+ /** @description 1-based page number; the first page when omitted. */
540
+ Page: number;
541
+ /** @description How many per page, 100 at most. */
542
+ PageSize: number;
543
+ PlanId: string;
544
+ RateCardId: string;
545
+ };
546
+ requestBodies: never;
547
+ headers: never;
548
+ pathItems: never;
549
+ }
550
+ export type $defs = Record<string, never>;
551
+ export interface operations {
552
+ "list-prices": {
553
+ parameters: {
554
+ query: {
555
+ /** @description 1-based page number; the first page when omitted. */
556
+ page?: components["parameters"]["Page"];
557
+ /** @description How many per page, 100 at most. */
558
+ page_size?: components["parameters"]["PageSize"];
559
+ /** @description ISO 4217, three uppercase letters. */
560
+ currency: string;
561
+ product_id?: components["schemas"]["ProductID"];
562
+ /** @description Narrows to one payment timing. */
563
+ type?: "postpaid" | "prepaid" | "one_time";
564
+ };
565
+ header?: {
566
+ /**
567
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
568
+ * answer is `304` with no body.
569
+ *
570
+ * Send it on every catalogue read. An unchanged catalogue is answered without a body.
571
+ */
572
+ "If-None-Match"?: components["parameters"]["IfNoneMatch"];
573
+ };
574
+ path?: never;
575
+ cookie?: never;
576
+ };
577
+ requestBody?: never;
578
+ responses: {
579
+ /** @description OK */
580
+ 200: {
581
+ headers: {
582
+ /** @description Changes whenever this catalog representation changes. */
583
+ ETag?: string;
584
+ [name: string]: unknown;
585
+ };
586
+ content: {
587
+ "application/json": components["schemas"]["PriceList"];
588
+ };
589
+ };
590
+ /** @description Not Modified */
591
+ 304: {
592
+ headers: {
593
+ [name: string]: unknown;
594
+ };
595
+ content?: never;
596
+ };
597
+ default: components["responses"]["Error"];
598
+ };
599
+ };
600
+ "list-products": {
601
+ parameters: {
602
+ query?: {
603
+ /** @description 1-based page number; the first page when omitted. */
604
+ page?: components["parameters"]["Page"];
605
+ /** @description How many per page, 100 at most. */
606
+ page_size?: components["parameters"]["PageSize"];
607
+ };
608
+ header?: {
609
+ /**
610
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
611
+ * answer is `304` with no body.
612
+ *
613
+ * Send it on every catalogue read. An unchanged catalogue is answered without a body.
614
+ */
615
+ "If-None-Match"?: components["parameters"]["IfNoneMatch"];
616
+ };
617
+ path?: never;
618
+ cookie?: never;
619
+ };
620
+ requestBody?: never;
621
+ responses: {
622
+ /** @description OK */
623
+ 200: {
624
+ headers: {
625
+ /**
626
+ * @description Changes whenever the catalogue changes. Send it back as `If-None-Match`
627
+ * to be told `304` instead of receiving the same listing again.
628
+ */
629
+ ETag?: string;
630
+ [name: string]: unknown;
631
+ };
632
+ content: {
633
+ "application/json": components["schemas"]["ProductList"];
634
+ };
635
+ };
636
+ 304: components["responses"]["NotModified"];
637
+ default: components["responses"]["Error"];
638
+ };
639
+ };
640
+ "get-product": {
641
+ parameters: {
642
+ query?: never;
643
+ header?: {
644
+ /**
645
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
646
+ * answer is `304` with no body.
647
+ *
648
+ * Send it on every catalogue read. An unchanged catalogue is answered without a body.
649
+ */
650
+ "If-None-Match"?: components["parameters"]["IfNoneMatch"];
651
+ };
652
+ path: {
653
+ productId: components["schemas"]["ProductID"];
654
+ };
655
+ cookie?: never;
656
+ };
657
+ requestBody?: never;
658
+ responses: {
659
+ /** @description OK */
660
+ 200: {
661
+ headers: {
662
+ /** @description Changes whenever this catalog representation changes. */
663
+ ETag?: string;
664
+ [name: string]: unknown;
665
+ };
666
+ content: {
667
+ "application/json": components["schemas"]["Product"];
668
+ };
669
+ };
670
+ /** @description Not Modified */
671
+ 304: {
672
+ headers: {
673
+ [name: string]: unknown;
674
+ };
675
+ content?: never;
676
+ };
677
+ default: components["responses"]["Error"];
678
+ };
679
+ };
680
+ "get-plan": {
681
+ parameters: {
682
+ query?: never;
683
+ header?: {
684
+ /**
685
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
686
+ * answer is `304` with no body.
687
+ *
688
+ * Send it on every catalogue read. An unchanged catalogue is answered without a body.
689
+ */
690
+ "If-None-Match"?: components["parameters"]["IfNoneMatch"];
691
+ };
692
+ path: {
693
+ planId: string;
694
+ };
695
+ cookie?: never;
696
+ };
697
+ requestBody?: never;
698
+ responses: {
699
+ /** @description OK */
700
+ 200: {
701
+ headers: {
702
+ /** @description Changes whenever this catalog representation changes. */
703
+ ETag?: string;
704
+ [name: string]: unknown;
705
+ };
706
+ content: {
707
+ "application/json": components["schemas"]["Plan"];
708
+ };
709
+ };
710
+ /** @description Not Modified */
711
+ 304: {
712
+ headers: {
713
+ [name: string]: unknown;
714
+ };
715
+ content?: never;
716
+ };
717
+ default: components["responses"]["Error"];
718
+ };
719
+ };
720
+ "get-price": {
721
+ parameters: {
722
+ query?: never;
723
+ header?: {
724
+ /**
725
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
726
+ * answer is `304` with no body.
727
+ *
728
+ * Send it on every catalogue read. An unchanged catalogue is answered without a body.
729
+ */
730
+ "If-None-Match"?: components["parameters"]["IfNoneMatch"];
731
+ };
732
+ path: {
733
+ priceId: string;
734
+ };
735
+ cookie?: never;
736
+ };
737
+ requestBody?: never;
738
+ responses: {
739
+ /** @description OK */
740
+ 200: {
741
+ headers: {
742
+ /** @description Changes whenever this catalog listing changes. */
743
+ ETag?: string;
744
+ [name: string]: unknown;
745
+ };
746
+ content: {
747
+ "application/json": components["schemas"]["Price"];
748
+ };
749
+ };
750
+ /** @description Not Modified */
751
+ 304: {
752
+ headers: {
753
+ [name: string]: unknown;
754
+ };
755
+ content?: never;
756
+ };
757
+ default: components["responses"]["Error"];
758
+ };
759
+ };
760
+ "list-plans": {
761
+ parameters: {
762
+ query: {
763
+ product_id: components["schemas"]["ProductID"];
764
+ /** @description 1-based page number; the first page when omitted. */
765
+ page?: components["parameters"]["Page"];
766
+ /** @description How many per page, 100 at most. */
767
+ page_size?: components["parameters"]["PageSize"];
768
+ };
769
+ header?: {
770
+ /**
771
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
772
+ * answer is `304` with no body.
773
+ *
774
+ * Send it on every catalogue read. An unchanged catalogue is answered without a body.
775
+ */
776
+ "If-None-Match"?: components["parameters"]["IfNoneMatch"];
777
+ };
778
+ path?: never;
779
+ cookie?: never;
780
+ };
781
+ requestBody?: never;
782
+ responses: {
783
+ /** @description OK */
784
+ 200: {
785
+ headers: {
786
+ /**
787
+ * @description Changes whenever the catalogue changes. Send it back as `If-None-Match`
788
+ * to be told `304` instead of receiving the same listing again.
789
+ */
790
+ ETag?: string;
791
+ [name: string]: unknown;
792
+ };
793
+ content: {
794
+ "application/json": components["schemas"]["PlanList"];
795
+ };
796
+ };
797
+ 304: components["responses"]["NotModified"];
798
+ default: components["responses"]["Error"];
799
+ };
800
+ };
801
+ "list-prices-by-plan": {
802
+ parameters: {
803
+ query?: {
804
+ /** @description 1-based page number; the first page when omitted. */
805
+ page?: components["parameters"]["Page"];
806
+ /** @description How many per page, 100 at most. */
807
+ page_size?: components["parameters"]["PageSize"];
808
+ currency?: string;
809
+ };
810
+ header?: {
811
+ /**
812
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
813
+ * answer is `304` with no body.
814
+ *
815
+ * Send it on every catalogue read. An unchanged catalogue is answered without a body.
816
+ */
817
+ "If-None-Match"?: components["parameters"]["IfNoneMatch"];
818
+ };
819
+ path: {
820
+ planId: components["parameters"]["PlanId"];
821
+ };
822
+ cookie?: never;
823
+ };
824
+ requestBody?: never;
825
+ responses: {
826
+ /** @description OK */
827
+ 200: {
828
+ headers: {
829
+ /**
830
+ * @description Changes whenever the catalogue changes. Send it back as `If-None-Match`
831
+ * to be told `304` instead of receiving the same listing again.
832
+ */
833
+ ETag?: string;
834
+ [name: string]: unknown;
835
+ };
836
+ content: {
837
+ "application/json": components["schemas"]["PriceList"];
838
+ };
839
+ };
840
+ 304: components["responses"]["NotModified"];
841
+ default: components["responses"]["Error"];
842
+ };
843
+ };
844
+ "list-rates": {
845
+ parameters: {
846
+ query?: {
847
+ /** @description 1-based page number; the first page when omitted. */
848
+ page?: components["parameters"]["Page"];
849
+ /** @description How many per page, 100 at most. */
850
+ page_size?: components["parameters"]["PageSize"];
851
+ /** @description Filter by the meter UUID. */
852
+ meter_id?: string;
853
+ /** @description Return the rates in effect at this moment. Defaults to now. */
854
+ at?: string;
855
+ };
856
+ header?: {
857
+ /**
858
+ * @description The `ETag` from an earlier reply. When the catalogue has not changed since, the
859
+ * answer is `304` with no body.
860
+ *
861
+ * Send it on every catalogue read. An unchanged catalogue is answered without a body.
862
+ */
863
+ "If-None-Match"?: components["parameters"]["IfNoneMatch"];
864
+ };
865
+ path: {
866
+ rateCardId: components["parameters"]["RateCardId"];
867
+ };
868
+ cookie?: never;
869
+ };
870
+ requestBody?: never;
871
+ responses: {
872
+ /** @description OK */
873
+ 200: {
874
+ headers: {
875
+ /**
876
+ * @description Changes whenever the catalogue changes. Send it back as `If-None-Match`
877
+ * to be told `304` instead of receiving the same listing again.
878
+ */
879
+ ETag?: string;
880
+ [name: string]: unknown;
881
+ };
882
+ content: {
883
+ "application/json": components["schemas"]["RateList"];
884
+ };
885
+ };
886
+ 304: components["responses"]["NotModified"];
887
+ default: components["responses"]["Error"];
888
+ };
889
+ };
890
+ "create-estimate": {
891
+ parameters: {
892
+ query?: never;
893
+ header?: never;
894
+ path?: never;
895
+ cookie?: never;
896
+ };
897
+ requestBody: {
898
+ content: {
899
+ "application/json": components["schemas"]["EstimateRequest"];
900
+ };
901
+ };
902
+ responses: {
903
+ /** @description OK */
904
+ 200: {
905
+ headers: {
906
+ [name: string]: unknown;
907
+ };
908
+ content: {
909
+ "application/json": components["schemas"]["Quote"];
910
+ };
911
+ };
912
+ default: components["responses"]["Error"];
913
+ };
914
+ };
915
+ }