@leaflow/sdk 0.53.0 → 0.54.1

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.
@@ -82,7 +82,10 @@ export interface paths {
82
82
  path?: never;
83
83
  cookie?: never;
84
84
  };
85
- /** List disk types on sale */
85
+ /**
86
+ * List disk types on sale
87
+ * @description Only disk types currently on sale are listed. A withdrawn one disappears from here and can no longer be bought, while the disks already on it keep working and can still be resized.
88
+ */
86
89
  get: operations["list-disk-types"];
87
90
  put?: never;
88
91
  post?: never;
@@ -102,6 +105,8 @@ export interface paths {
102
105
  /**
103
106
  * List images on sale
104
107
  * @description An image whose `min_ram_mb` exceeds the memory of the selected instance type cannot boot. Filter the options accordingly.
108
+ *
109
+ * Only images currently on sale are listed. An image the platform withdraws disappears from here and can no longer install new instances, while the instances already running it keep running and can still be rebuilt onto it.
105
110
  */
106
111
  get: operations["list-images"];
107
112
  put?: never;
@@ -119,7 +124,10 @@ export interface paths {
119
124
  path?: never;
120
125
  cookie?: never;
121
126
  };
122
- /** List instance types on sale */
127
+ /**
128
+ * List instance types on sale
129
+ * @description Only instance types currently on sale are listed. A withdrawn one disappears from here and can no longer be ordered, while the instances already running it keep running.
130
+ */
123
131
  get: operations["list-instance-types"];
124
132
  put?: never;
125
133
  post?: never;
@@ -182,6 +190,8 @@ export interface paths {
182
190
  /**
183
191
  * Create a disk
184
192
  * @description The disk is created in the availability zone of the selected disk type, and an instance must reside in the same zone to attach it. Choosing the disk type therefore determines the zone.
193
+ *
194
+ * A disk type that has been withdrawn is rejected with `DISK_TYPE_RETIRED`, even though its identifier still resolves. Withdrawn types stop appearing in the disk type listing; disks already bought on one keep working and can still be resized.
185
195
  */
186
196
  post: operations["create-disk"];
187
197
  delete?: never;
@@ -230,6 +240,12 @@ export interface paths {
230
240
  /**
231
241
  * Resize a disk
232
242
  * @description Capacity can only be increased; shrinking is not supported. Extend the file system inside the instance once the resize completes.
243
+ *
244
+ * **A data disk whose performance grows with its size has to be detached first.** The storage backend decides a volume's limit when the volume is attached and never revisits it, so growing one that is attached would give you the capacity immediately and leave the speed at the old size's figure — indefinitely, and stopping the instance does not help. Rather than take the money for performance that does not arrive, this is refused with `DISK_RESIZE_NEEDS_DETACH`; detach the disk, resize it, and attach it again.
245
+ *
246
+ * It is only refused when the two sizes really would differ in speed. A disk whose type has no QoS level, or whose performance has already reached the type's ceiling, grows online as before.
247
+ *
248
+ * **A system disk is the exception and grows online**, because a root volume cannot be detached at all. Its performance does not change with size for exactly that reason — system disk types are required to carry a level that does not scale.
233
249
  */
234
250
  post: operations["resize-disk"];
235
251
  delete?: never;
@@ -317,6 +333,8 @@ export interface paths {
317
333
  /**
318
334
  * Set the bandwidth limit
319
335
  * @description Limits both directions at once. Limiting egress alone does not prevent ingress traffic from saturating the uplink.
336
+ *
337
+ * While the address is bound to an instance, the ceiling has to fit that instance type's `max_bandwidth_mbps`; asking for more is refused with `INSTANCE_BANDWIDTH_CEILING`. An address bound to nothing is not checked against any type — there is none to check against — and is checked again when it is attached.
320
338
  */
321
339
  put: operations["set-floating-ip-bandwidth"];
322
340
  post?: never;
@@ -370,6 +388,8 @@ export interface paths {
370
388
  *
371
389
  * Exactly one source must be given: `image_id` for a platform image, `private_image_id` for a private image, or `boot_disk_id` to boot a disk you already have. Supplying more than one, or none, is rejected.
372
390
  *
391
+ * A platform image that has been withdrawn is rejected with `IMAGE_RETIRED`, and an instance type that has been withdrawn with `INSTANCE_TYPE_RETIRED` — in both cases the identifier still resolves. Withdrawn entries stop appearing in their listing, so an identifier held in a script, a template or an earlier order is the way this is usually hit: reread the listing and pick another. Instances already running either are unaffected, and one on a withdrawn image can still be rebuilt onto it.
392
+ *
373
393
  * `boot_disk_id` recovers an instance that can no longer be repaired from the inside. Snapshot its disk, restore that snapshot into a new disk, attach the new disk to another instance and repair it there, then create an instance from it. That disk is not deleted when the instance is released; it is detached and returned to you.
374
394
  *
375
395
  * Instances are created in the availability zone of the instance type. Disks to be attached later must reside in the same zone.
@@ -605,6 +625,8 @@ export interface paths {
605
625
  /**
606
626
  * Rebuild an instance
607
627
  * @description **All data on the system disk is erased and cannot be recovered.** Attached data disks are unaffected.
628
+ *
629
+ * The image this instance already runs is accepted even after the platform has withdrawn it, since rebuilding is the only way back into an instance broken from the inside. Any *other* withdrawn image is rejected with `IMAGE_RETIRED`, which is a change of image and therefore a new order.
608
630
  */
609
631
  post: operations["rebuild-instance"];
610
632
  delete?: never;
@@ -1310,7 +1332,7 @@ export interface components {
1310
1332
  RestoreBackupRequestBody: {
1311
1333
  /**
1312
1334
  * Format: uuid
1313
- * @description May differ from the availability zone of the source disk, but must be in the same region
1335
+ * @description May differ from the availability zone of the source disk, but must be in the same region. It has to be on sale — restoring creates a new disk, so a withdrawn type is rejected here as well
1314
1336
  */
1315
1337
  disk_type_id: string;
1316
1338
  name: string;
@@ -1338,14 +1360,52 @@ export interface components {
1338
1360
  region_code: string;
1339
1361
  /** Format: int64 */
1340
1362
  size_gb: number;
1363
+ /**
1364
+ * Format: int64
1365
+ * @description IOPS this disk is allowed. Null when its type is not rate-limited.
1366
+ *
1367
+ * Computed from the disk's own capacity, so it grows when the disk is grown — but see the
1368
+ * note on the resize endpoint: growing a disk that is attached is refused, precisely because
1369
+ * the new figure would not take effect until it was attached again.
1370
+ */
1371
+ iops: number | null;
1372
+ /**
1373
+ * Format: int64
1374
+ * @description Throughput this disk is allowed, in bytes per second. Null when its type is not rate-limited
1375
+ */
1376
+ throughput_bytes_per_sec: number | null;
1341
1377
  /** @enum {string} */
1342
1378
  status: "provisioning" | "available" | "attaching" | "in_use" | "detaching" | "resizing" | "reverting" | "restoring" | "releasing" | "deleting" | "error";
1379
+ /**
1380
+ * @description How this disk is paid for. `postpaid` is billed by the hour for as long as it exists;
1381
+ * `prepaid` was bought outright for a term.
1382
+ *
1383
+ * **Not the term.** How long it was bought for belongs to the order, not to the disk:
1384
+ * renewing can change it, and a machine bought for a year and then renewed for a month is
1385
+ * still a prepaid machine. Ask billing for the term and the expiry — they live there, and
1386
+ * they are the only two values a renewal moves.
1387
+ * @enum {string}
1388
+ */
1389
+ charge_type: "postpaid" | "prepaid";
1343
1390
  };
1344
1391
  DiskTypeResource: {
1345
1392
  availability_zone_code: string;
1346
1393
  /** Format: uuid */
1347
1394
  id: string;
1348
- iops_display: string;
1395
+ /**
1396
+ * Format: int64
1397
+ * @description IOPS a disk of `min_size_gb` gets. Null when this type is not rate-limited.
1398
+ *
1399
+ * Performance grows with capacity, so this and `iops_at_max_size` are the two ends of the
1400
+ * range. The exact figure for the size actually bought appears on the disk itself once it
1401
+ * exists.
1402
+ */
1403
+ iops_at_min_size: number | null;
1404
+ /**
1405
+ * Format: int64
1406
+ * @description IOPS a disk of `max_size_gb` gets. Null when this type is not rate-limited
1407
+ */
1408
+ iops_at_max_size: number | null;
1349
1409
  /** Format: int64 */
1350
1410
  max_size_gb: number;
1351
1411
  /** @enum {string} */
@@ -1356,7 +1416,62 @@ export interface components {
1356
1416
  region_code: string;
1357
1417
  /** Format: int64 */
1358
1418
  step_gb: number;
1359
- throughput_display: string;
1419
+ /**
1420
+ * Format: int64
1421
+ * @description Throughput a disk of `min_size_gb` gets, in **bytes per second**. Null when this type is
1422
+ * not rate-limited.
1423
+ *
1424
+ * Bytes rather than MiB so the number needs no rounding on the way out; divide by 1048576
1425
+ * for MiB/s at the point of display.
1426
+ */
1427
+ throughput_at_min_size: number | null;
1428
+ /**
1429
+ * Format: int64
1430
+ * @description Throughput a disk of `max_size_gb` gets, in bytes per second. Null when this type is not rate-limited
1431
+ */
1432
+ throughput_at_max_size: number | null;
1433
+ /**
1434
+ * @description Whether any capacity is left in this type's pool.
1435
+ *
1436
+ * The same shape as on an instance type, but it answers less here: a disk is sold by the
1437
+ * GiB, so "not sold out" does not mean the size being asked for fits. `remaining` is the
1438
+ * field that decides that, and this one only says whether the pool is empty outright.
1439
+ *
1440
+ * It reflects a limit set by operations, not what the storage backend physically has —
1441
+ * raising the limit does not create capacity, and a type that is not sold out can still fail
1442
+ * to create if the backend is full.
1443
+ *
1444
+ * Advisory: it is read when the list is built, and capacity can be taken between that read
1445
+ * and the order. The order is what actually refuses.
1446
+ */
1447
+ sold_out: boolean;
1448
+ /**
1449
+ * Format: int64
1450
+ * @description How much capacity is left, **in GiB**. Absent when this type is not limited at all.
1451
+ *
1452
+ * Unlike an instance type, where this is a count of machines, here it is an amount of
1453
+ * storage — and it is the number that bounds the size a customer may ask for. A picker that
1454
+ * offers sizes above it produces orders that are refused after the customer has chosen
1455
+ * everything else.
1456
+ *
1457
+ * Absent is not zero and not "unknown": a type with no limit simply has no number to show.
1458
+ * Reporting it as a number would need a sentinel, and any sentinel eventually gets compared
1459
+ * against a real size.
1460
+ */
1461
+ remaining?: number;
1462
+ /**
1463
+ * @description What buying this type outright costs, per term. Empty means this type is only sold by the
1464
+ * hour.
1465
+ *
1466
+ * **The amount is per GiB for the whole term**, not the price of one disk: a disk's size is
1467
+ * chosen by the customer, so the total is this figure times the size. That differs from an
1468
+ * instance type, where the same field is the price of one machine — the unit follows what
1469
+ * the product is sold by, and the order is priced the same way.
1470
+ *
1471
+ * Advisory, like `sold_out`: it is read when the list is built. The order is what fixes the
1472
+ * price, and it refuses rather than falling back to hourly if the term is not sold.
1473
+ */
1474
+ prepaid_prices?: components["schemas"]["PrepaidPrice"][];
1360
1475
  };
1361
1476
  DiskTypeListResponseBody: {
1362
1477
  items: components["schemas"]["DiskTypeResource"][] | null;
@@ -1399,8 +1514,29 @@ export interface components {
1399
1514
  availability_zone_code: string;
1400
1515
  /** Format: uuid */
1401
1516
  id: string;
1402
- /** Format: int64 */
1517
+ /**
1518
+ * Format: int64
1519
+ * @description The most public bandwidth a machine of this type may be given, in Mbps. Asking for more
1520
+ * when creating a machine, or raising a bound address past it, is refused.
1521
+ *
1522
+ * A ceiling on what can be bought, not a speed. How fast the machine's own interfaces run is
1523
+ * `network_egress_kbps` / `network_ingress_kbps`.
1524
+ */
1403
1525
  max_bandwidth_mbps: number;
1526
+ /**
1527
+ * Format: int64
1528
+ * @description Outbound ceiling of **each** network interface, in kbps. Null when this type is not
1529
+ * rate-limited.
1530
+ *
1531
+ * Per interface rather than per machine: a machine with two interfaces has this ceiling on
1532
+ * each of them, not shared between them. `max_ports` says how many it may have.
1533
+ */
1534
+ network_egress_kbps: number | null;
1535
+ /**
1536
+ * Format: int64
1537
+ * @description Inbound ceiling of each network interface, in kbps. Null when this type is not rate-limited
1538
+ */
1539
+ network_ingress_kbps: number | null;
1404
1540
  /** Format: int64 */
1405
1541
  max_floating_ips: number;
1406
1542
  /** Format: int64 */
@@ -1467,7 +1603,34 @@ export interface components {
1467
1603
  items: components["schemas"]["DiskResource"][] | null;
1468
1604
  };
1469
1605
  CreateDiskRequestBody: {
1470
- /** Format: uuid */
1606
+ /**
1607
+ * @description A promotion code to apply to this order. Case and surrounding whitespace do not matter.
1608
+ *
1609
+ * An unusable code is rejected outright rather than quietly ignored: somebody who typed a
1610
+ * code is buying at the discounted price, and letting it through silently means they pay
1611
+ * full price expecting the discount, with nothing anywhere saying so.
1612
+ *
1613
+ * The discount applies to the lines the campaign covers, not the whole order — typically
1614
+ * the instance type and memory, not the system disk, the address, or traffic. Preview it
1615
+ * first at `POST /account/v1/billing-accounts/{accountKey}/promotion-codes/preview` to
1616
+ * show the customer what will actually be charged.
1617
+ *
1618
+ * Metered orders reject any code: there is no amount to discount at this point.
1619
+ */
1620
+ promotion_code?: string;
1621
+ /**
1622
+ * @description "This is the same click". Generate one when the dialog opens — not when it is submitted —
1623
+ * and send the same one on every retry of that action.
1624
+ *
1625
+ * Optional, and what happens without it is worth knowing: two identical requests inside the
1626
+ * same minute are treated as one, because there is nothing else to tell a double-click apart
1627
+ * from a deliberate second order. Sending your own key removes that guess entirely.
1628
+ */
1629
+ idempotency_key?: string;
1630
+ /**
1631
+ * Format: uuid
1632
+ * @description A disk type currently on sale. A withdrawn one is rejected even though its identifier still resolves
1633
+ */
1471
1634
  disk_type_id: string;
1472
1635
  name: string;
1473
1636
  /** Format: int64 */
@@ -1545,6 +1708,18 @@ export interface components {
1545
1708
  AllocateFloatingIPRequestBody: {
1546
1709
  /** @description The address to allocate. Allocated by the platform when omitted */
1547
1710
  address?: string;
1711
+ /**
1712
+ * Format: int64
1713
+ * @description The bandwidth ceiling of this address, in Mbit/s, applied to both directions.
1714
+ *
1715
+ * Required, and there is no "unlimited": an address with no ceiling runs at line rate and is
1716
+ * charged nothing for the traffic, while the address itself bills normally — so the invoice
1717
+ * looks correct and nothing anywhere reports it.
1718
+ *
1719
+ * It is billed separately from the address, per Mbit/s-hour, and appears as its own line on
1720
+ * the order. Changing it later goes through the bandwidth endpoint.
1721
+ */
1722
+ bandwidth_mbps: number;
1548
1723
  /** Format: uuid */
1549
1724
  private_network_id: string;
1550
1725
  };
@@ -1628,11 +1803,100 @@ export interface components {
1628
1803
  suspended_at: string | null;
1629
1804
  /** Format: date-time */
1630
1805
  updated_at: string;
1806
+ /**
1807
+ * @description How this instance is paid for. `postpaid` is billed by the hour for as long as it exists;
1808
+ * `prepaid` was bought outright for a term.
1809
+ *
1810
+ * **Not the term.** How long it was bought for belongs to the order, not to the instance:
1811
+ * renewing can change it, and a machine bought for a year and then renewed for a month is
1812
+ * still a prepaid machine. Ask billing for the term and the expiry — they live there, and
1813
+ * they are the only two values a renewal moves.
1814
+ * @enum {string}
1815
+ */
1816
+ charge_type: "postpaid" | "prepaid";
1817
+ /**
1818
+ * @description The order this instance was bought under, in billing's own identifiers. Empty when the
1819
+ * deployment has no billing wired in.
1820
+ *
1821
+ * Kept so the question can be answered later. "Why was I charged for this" is asked days
1822
+ * after the fact, and an order id handed back only in the launch response is one the
1823
+ * person who needs it never had.
1824
+ */
1825
+ billing_order_id: string;
1631
1826
  };
1632
1827
  InstanceListResponseBody: {
1633
1828
  items: components["schemas"]["InstanceResource"][] | null;
1634
1829
  };
1635
1830
  LaunchInstanceRequestBody: {
1831
+ /**
1832
+ * @description A promotion code to apply to this order. Case and surrounding whitespace do not matter.
1833
+ *
1834
+ * An unusable code is rejected outright rather than quietly ignored: somebody who typed a
1835
+ * code is buying at the discounted price, and letting it through silently means they pay
1836
+ * full price expecting the discount, with nothing anywhere saying so.
1837
+ *
1838
+ * The discount applies to the lines the campaign covers, not the whole order — typically
1839
+ * the instance type and memory, not the system disk, the address, or traffic. Preview it
1840
+ * first at `POST /account/v1/billing-accounts/{accountKey}/promotion-codes/preview` to
1841
+ * show the customer what will actually be charged.
1842
+ *
1843
+ * Metered orders reject any code: there is no amount to discount at this point.
1844
+ */
1845
+ promotion_code?: string;
1846
+ /**
1847
+ * @description "This is the same click". Generate one when the dialog opens — not when it is submitted —
1848
+ * and send the same one on every retry of that action.
1849
+ *
1850
+ * Optional, and what happens without it is worth knowing: two identical requests inside the
1851
+ * same minute are treated as one, because there is nothing else to tell a double-click apart
1852
+ * from a deliberate second order. Sending your own key removes that guess entirely.
1853
+ */
1854
+ idempotency_key?: string;
1855
+ /**
1856
+ * Format: uuid
1857
+ * @description Bind a floating IP you already hold, instead of allocating a new one. It must be idle and in
1858
+ * the same region.
1859
+ *
1860
+ * Mutually exclusive with `bandwidth_mbps`: an address you already hold has its own bandwidth
1861
+ * ceiling, set when it was allocated, and changing it is a separate operation.
1862
+ *
1863
+ * Like `bandwidth_mbps`, this happens **inside the creation**: if binding fails, no instance is
1864
+ * created. Binding afterwards is still possible from the instance page, but then it is two
1865
+ * operations and a failure in between leaves an instance you cannot reach.
1866
+ *
1867
+ * Only one instance can be created when it is used — one address binds to one interface.
1868
+ */
1869
+ floating_ip_id?: string;
1870
+ /**
1871
+ * Format: int64
1872
+ * @description Give this instance a public address with this much bandwidth, in Mbit/s. Omitted or 0 means
1873
+ * no public address.
1874
+ *
1875
+ * Mutually exclusive with `floating_ip_id`, which binds one you already hold.
1876
+ *
1877
+ * The bandwidth is what says whether an address is wanted, rather than a separate flag,
1878
+ * because an address with no ceiling would run at line rate and be charged nothing for the
1879
+ * traffic — while the address itself bills normally and the invoice looks correct.
1880
+ *
1881
+ * The address and its bandwidth are two lines on the same order as the instance and its
1882
+ * system disk — one purchase with one total — and everything is created together or not at
1883
+ * all: if any step fails, the address goes back to the pool and no instance is created.
1884
+ * Asking for an address separately afterwards is still possible, but then they are separate
1885
+ * purchases, and a failure in between leaves an instance you cannot reach.
1886
+ *
1887
+ * Both lines are always billed by the hour, even when the instance is bought outright for a
1888
+ * term: a public IPv4 is a scarce resource the platform keeps holding for as long as you have
1889
+ * it, so it is not something that can be paid for once.
1890
+ *
1891
+ * Which address you get is not a choice here. Use the floating IP endpoints to claim a
1892
+ * particular address and bind it, which is what getting a known address back after a
1893
+ * migration needs.
1894
+ *
1895
+ * Rejected together with `port_id` when that interface already has a floating IP: an
1896
+ * interface carries one IPv4, and one IPv4 takes one floating IP. Attach another interface to
1897
+ * hold a second address.
1898
+ */
1899
+ bandwidth_mbps?: number;
1636
1900
  /**
1637
1901
  * Format: int64
1638
1902
  * @description Number of instances to create; 1 when omitted. Names are numbered automatically for several
@@ -1647,10 +1911,13 @@ export interface components {
1647
1911
  boot_disk_id?: string;
1648
1912
  /**
1649
1913
  * Format: uuid
1650
- * @description A platform image. Exactly one of this, `private_image_id` and `boot_disk_id`
1914
+ * @description A platform image, and it must be one currently on sale. Exactly one of this, `private_image_id` and `boot_disk_id`
1651
1915
  */
1652
1916
  image_id?: string;
1653
- /** Format: uuid */
1917
+ /**
1918
+ * Format: uuid
1919
+ * @description An instance type currently on sale. A withdrawn one is rejected even though its identifier still resolves
1920
+ */
1654
1921
  instance_type_id: string;
1655
1922
  /** @description The account the disk lets you log in as. Required with `boot_disk_id`, and rejected without it since an image states its own */
1656
1923
  login_username?: string;
@@ -1692,9 +1959,13 @@ export interface components {
1692
1959
  * refused — it is never quietly sold by the hour instead, because the customer who asked for
1693
1960
  * a year would find out only from the bill.
1694
1961
  *
1695
- * The system disk is bought for the same term: it is the same purchase, and one order cannot
1696
- * be half outright and half hourly. A term is therefore refused together with `boot_disk_id`,
1697
- * where the disk already exists and is already billed its own way.
1962
+ * The system disk is bought for the same term, because it is the same purchase: an instance
1963
+ * bought for a year whose disk is billed hourly is a bill nobody would predict from what they
1964
+ * clicked. A term is therefore refused together with `boot_disk_id`, where the disk already
1965
+ * exists and is already billed its own way.
1966
+ *
1967
+ * A public address asked for with `assign_public_ip` stays hourly regardless — it cannot be
1968
+ * bought outright — so one order can carry both.
1698
1969
  *
1699
1970
  * When the term runs out the instance is stopped, not deleted, and starts again once it is
1700
1971
  * renewed. Renewal lives in the billing console, across every product, because what a
@@ -1715,6 +1986,23 @@ export interface components {
1715
1986
  subnet_id?: string;
1716
1987
  };
1717
1988
  LaunchInstanceResponseBody: {
1989
+ /**
1990
+ * @description The orders these instances were bought under, in the same order as `instances`.
1991
+ *
1992
+ * **One per instance, not one per request.** A batch of three places three orders, because
1993
+ * each machine is ordered as it is created — stopping halfway leaves the machines already
1994
+ * made, and they each have to be paid for. A caller showing "your order" for a batch has to
1995
+ * show all of them.
1996
+ *
1997
+ * Empty when the deployment has no billing wired in, and on the `checkout_url` branch where
1998
+ * nothing was created yet.
1999
+ *
2000
+ * Given so the caller can point at the transaction. Creating a resource takes money — by
2001
+ * the hour from that moment for a metered one, in full from the balance for a prepaid one —
2002
+ * and until now the only thing handed back was the resource itself. Somebody asking "why
2003
+ * was I charged" had nothing to open.
2004
+ */
2005
+ order_ids?: string[] | null;
1718
2006
  /** @description Non-empty when only some of the instances were created, stating why the sequence stopped */
1719
2007
  failure: string | null;
1720
2008
  /** @description Returned in request order; an array even for a single instance */
@@ -1792,7 +2080,7 @@ export interface components {
1792
2080
  generate_password?: boolean;
1793
2081
  /**
1794
2082
  * Format: uuid
1795
- * @description A platform image. Exactly one of this and `private_image_id`
2083
+ * @description A platform image, which must be on sale unless it is the one this instance already runs. Exactly one of this and `private_image_id`
1796
2084
  */
1797
2085
  image_id?: string;
1798
2086
  password?: string;
@@ -444,11 +444,6 @@ export interface components {
444
444
  /** Format: uuid */
445
445
  id: string;
446
446
  name: string;
447
- /**
448
- * Format: date-time
449
- * @description 欠费的起始时间
450
- */
451
- overdue_at: string | null;
452
447
  /** @enum {string} */
453
448
  status: "ACTIVE" | "SUSPENDED" | "BANNED" | "DELETING" | "DELETED";
454
449
  /** @description 给人看的,不参与任何查询 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leaflow/sdk",
3
- "version": "0.53.0",
3
+ "version": "0.54.1",
4
4
  "description": "Leaflow 平台 API 的 TypeScript SDK",
5
5
  "license": "MIT",
6
6
  "repository": {