@leaflow/sdk 0.0.0-dev.21.g192ee50 → 0.0.0-dev.212.gea1bf06

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 (69) hide show
  1. package/README.md +13 -1
  2. package/dist/account/v1/client.d.ts +4 -0
  3. package/dist/account/v1/client.js +7 -0
  4. package/dist/account/v1/index.d.ts +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/v1/client.d.ts +4 -0
  13. package/dist/billing/v1/client.js +7 -0
  14. package/dist/billing/v1/index.d.ts +45 -0
  15. package/dist/billing/v1/index.js +5 -0
  16. package/dist/billing/v1/schema.d.ts +1404 -0
  17. package/dist/billing/v1/schema.js +5 -0
  18. package/dist/billingaccount/v1/client.d.ts +4 -0
  19. package/dist/billingaccount/v1/client.js +7 -0
  20. package/dist/billingaccount/v1/index.d.ts +151 -0
  21. package/dist/billingaccount/v1/index.js +5 -0
  22. package/dist/billingaccount/v1/schema.d.ts +4265 -0
  23. package/dist/billingaccount/v1/schema.js +5 -0
  24. package/dist/canopy/v1/client.d.ts +4 -0
  25. package/dist/canopy/v1/client.js +7 -0
  26. package/dist/canopy/v1/index.d.ts +24 -23
  27. package/dist/canopy/v1/index.js +4 -4
  28. package/dist/canopy/v1/schema.d.ts +113 -109
  29. package/dist/compute/v1/client.d.ts +4 -0
  30. package/dist/compute/v1/client.js +7 -0
  31. package/dist/compute/v1/index.d.ts +188 -125
  32. package/dist/compute/v1/index.js +4 -4
  33. package/dist/compute/v1/schema.d.ts +1953 -281
  34. package/dist/dns/v1/client.d.ts +4 -0
  35. package/dist/dns/v1/client.js +7 -0
  36. package/dist/dns/v1/index.d.ts +43 -0
  37. package/dist/dns/v1/index.js +5 -0
  38. package/dist/dns/v1/schema.d.ts +887 -0
  39. package/dist/dns/v1/schema.js +5 -0
  40. package/dist/iam/v1/client.d.ts +4 -0
  41. package/dist/iam/v1/client.js +7 -0
  42. package/dist/iam/v1/index.d.ts +55 -32
  43. package/dist/iam/v1/index.js +4 -4
  44. package/dist/iam/v1/schema.d.ts +521 -88
  45. package/dist/index.d.ts +12 -7
  46. package/dist/index.js +20 -5
  47. package/dist/monitoring/v1/client.d.ts +4 -0
  48. package/dist/monitoring/v1/client.js +7 -0
  49. package/dist/monitoring/v1/index.d.ts +130 -49
  50. package/dist/monitoring/v1/index.js +4 -4
  51. package/dist/monitoring/v1/schema.d.ts +2420 -527
  52. package/dist/notification/v1/client.d.ts +4 -0
  53. package/dist/notification/v1/client.js +7 -0
  54. package/dist/notification/v1/index.d.ts +77 -0
  55. package/dist/notification/v1/index.js +5 -0
  56. package/dist/notification/v1/schema.d.ts +2048 -0
  57. package/dist/notification/v1/schema.js +5 -0
  58. package/dist/support/v1/client.d.ts +4 -0
  59. package/dist/support/v1/client.js +7 -0
  60. package/dist/support/v1/index.d.ts +51 -0
  61. package/dist/support/v1/index.js +5 -0
  62. package/dist/support/v1/schema.d.ts +1082 -0
  63. package/dist/support/v1/schema.js +5 -0
  64. package/dist/tunnel/v1/client.d.ts +4 -0
  65. package/dist/tunnel/v1/client.js +7 -0
  66. package/dist/tunnel/v1/index.d.ts +8 -7
  67. package/dist/tunnel/v1/index.js +4 -4
  68. package/dist/tunnel/v1/schema.d.ts +40 -34
  69. package/package.json +26 -10
@@ -19,7 +19,9 @@ export interface paths {
19
19
  *
20
20
  * Disks attached to a running instance, including system disks, can be backed up.
21
21
  *
22
- * The duration depends on the amount of data. The backup is not complete when this endpoint returns; poll the retrieve endpoint.
22
+ * The duration depends on the amount of data. The backup is not complete when this endpoint returns; track the returned task.
23
+ *
24
+ * Replays return HTTP 201 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
23
25
  */
24
26
  post: operations["create-backup"];
25
27
  delete?: never;
@@ -45,6 +47,8 @@ export interface paths {
45
47
  /**
46
48
  * Delete a backup
47
49
  * @description Independent of the source disk: deletion succeeds whether or not that disk still exists.
50
+ *
51
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
48
52
  */
49
53
  delete: operations["delete-backup"];
50
54
  options?: never;
@@ -66,7 +70,9 @@ export interface paths {
66
70
  * Restore from a backup
67
71
  * @description Restores onto a **newly created** disk. The source disk is unaffected and need not still exist.
68
72
  *
69
- * The target disk type may belong to another availability zone of the same region, and its capacity must not be smaller than the backup. The disk cannot be attached until the restore completes; poll the disk retrieve endpoint.
73
+ * The target disk type may belong to another availability zone of the same region, and its capacity must not be smaller than the backup. The disk cannot be attached until the restore completes; track the returned task.
74
+ *
75
+ * Replays return HTTP 201 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
70
76
  */
71
77
  post: operations["restore-backup"];
72
78
  delete?: never;
@@ -82,7 +88,10 @@ export interface paths {
82
88
  path?: never;
83
89
  cookie?: never;
84
90
  };
85
- /** List disk types on sale */
91
+ /**
92
+ * List disk types on sale
93
+ * @description Only disk types currently on sale are listed, both system disk types and data disk types; `for_system` narrows the list to one of the two. 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.
94
+ */
86
95
  get: operations["list-disk-types"];
87
96
  put?: never;
88
97
  post?: never;
@@ -92,6 +101,26 @@ export interface paths {
92
101
  patch?: never;
93
102
  trace?: never;
94
103
  };
104
+ "/api/v1/disk-types/{diskTypeId}": {
105
+ parameters: {
106
+ query?: never;
107
+ header?: never;
108
+ path?: never;
109
+ cookie?: never;
110
+ };
111
+ /**
112
+ * Get a disk type
113
+ * @description Retrieve capacity and performance constraints for an existing disk, including system disk types and types withdrawn from sale.
114
+ */
115
+ get: operations["get-disk-type"];
116
+ put?: never;
117
+ post?: never;
118
+ delete?: never;
119
+ options?: never;
120
+ head?: never;
121
+ patch?: never;
122
+ trace?: never;
123
+ };
95
124
  "/api/v1/images": {
96
125
  parameters: {
97
126
  query?: never;
@@ -102,6 +131,8 @@ export interface paths {
102
131
  /**
103
132
  * List images on sale
104
133
  * @description An image whose `min_ram_mb` exceeds the memory of the selected instance type cannot boot. Filter the options accordingly.
134
+ *
135
+ * 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
136
  */
106
137
  get: operations["list-images"];
107
138
  put?: never;
@@ -119,7 +150,10 @@ export interface paths {
119
150
  path?: never;
120
151
  cookie?: never;
121
152
  };
122
- /** List instance types on sale */
153
+ /**
154
+ * List instance types on sale
155
+ * @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.
156
+ */
123
157
  get: operations["list-instance-types"];
124
158
  put?: never;
125
159
  post?: never;
@@ -146,7 +180,7 @@ export interface paths {
146
180
  patch?: never;
147
181
  trace?: never;
148
182
  };
149
- "/api/v1/regions/{regionCode}/availability-zones": {
183
+ "/api/v1/regions/{regionId}/availability-zones": {
150
184
  parameters: {
151
185
  query?: never;
152
186
  header?: never;
@@ -182,6 +216,10 @@ export interface paths {
182
216
  /**
183
217
  * Create a disk
184
218
  * @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.
219
+ *
220
+ * A disk type that is off sale is rejected with `DISK_TYPE_OFF_SALE`, even though its identifier still resolves. Types that are off sale do not appear in the disk type listing; disks already bought on one keep working and can still be resized.
221
+ *
222
+ * Replays return HTTP 201 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
185
223
  */
186
224
  post: operations["create-disk"];
187
225
  delete?: never;
@@ -207,6 +245,8 @@ export interface paths {
207
245
  /**
208
246
  * Delete a disk
209
247
  * @description Deletion is rejected while the disk is attached, or while snapshots created from it still exist.
248
+ *
249
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
210
250
  */
211
251
  delete: operations["delete-disk"];
212
252
  options?: never;
@@ -229,7 +269,15 @@ export interface paths {
229
269
  put?: never;
230
270
  /**
231
271
  * Resize a disk
232
- * @description Capacity can only be increased; shrinking is not supported. Extend the file system inside the instance once the resize completes.
272
+ * @description Capacity can only be increased; shrinking is not supported. The resize is not complete when this endpoint returns; track the returned task, then extend the file system inside the instance.
273
+ *
274
+ * **An attached data disk whose performance scales with its size must be detached before it is resized.** The performance of an attached disk does not change until the disk is detached and attached again, so such a request is refused with `DISK_RESIZE_NEEDS_DETACH` rather than providing the new capacity at the performance of the previous size. Detach the disk, resize it, and attach it again.
275
+ *
276
+ * The request is refused only when the new size has a different performance level. A disk whose type has no QoS level, or whose performance has already reached the maximum of its type, can be resized while attached.
277
+ *
278
+ * **A system disk can be resized while attached**, because a system disk cannot be detached. System disk types use a performance level that does not scale with size, so resizing a system disk does not change its performance.
279
+ *
280
+ * Replays return HTTP 200 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
233
281
  */
234
282
  post: operations["resize-disk"];
235
283
  delete?: never;
@@ -254,6 +302,8 @@ export interface paths {
254
302
  * Three restrictions apply: only the most recent snapshot of the disk can be reverted to; the disk must be detached from its instance first; and a disk resized since the snapshot was taken cannot be reverted. To return to an earlier point in time, or to keep the existing disk, create a new disk from the snapshot instead.
255
303
  *
256
304
  * The revert is not complete when this endpoint returns; poll the retrieve endpoint.
305
+ *
306
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
257
307
  */
258
308
  post: operations["revert-disk"];
259
309
  delete?: never;
@@ -277,6 +327,8 @@ export interface paths {
277
327
  * @description If the private network is not yet connected to the internet, connectivity is established as part of this call.
278
328
  *
279
329
  * IPv6 is not requested through this endpoint. IPv6 addresses are assigned to instances by the private network; enable IPv6 on that network instead.
330
+ *
331
+ * Replays return HTTP 201 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
280
332
  */
281
333
  post: operations["allocate-floating-ip"];
282
334
  delete?: never;
@@ -298,7 +350,9 @@ export interface paths {
298
350
  post?: never;
299
351
  /**
300
352
  * Release a floating IP
301
- * @description A released address enters a cooldown period before it is allocated again, so that DNS records and allow-lists still pointing at it do not break immediately. **The same address therefore cannot be re-allocated** for some time after release. Proceed with care.
353
+ * @description Releases the floating IP after unbinding it. Completion is reported by the returned task.
354
+ *
355
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
302
356
  */
303
357
  delete: operations["release-floating-ip"];
304
358
  options?: never;
@@ -316,7 +370,11 @@ export interface paths {
316
370
  get?: never;
317
371
  /**
318
372
  * Set the bandwidth limit
319
- * @description Limits both directions at once. Limiting egress alone does not prevent ingress traffic from saturating the uplink.
373
+ * @description The limit applies to inbound and outbound traffic alike. The new limit is not in effect when this endpoint returns; track the returned task.
374
+ *
375
+ * While the address is bound to an instance, the limit must not exceed the `max_bandwidth_mbps` of that instance's type; a higher limit is refused with `INSTANCE_BANDWIDTH_CEILING`. The limit of an address that is not bound is checked when the address is bound to an instance.
376
+ *
377
+ * Replays return HTTP 200 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
320
378
  */
321
379
  put: operations["set-floating-ip-bandwidth"];
322
380
  post?: never;
@@ -354,22 +412,21 @@ export interface paths {
354
412
  path?: never;
355
413
  cookie?: never;
356
414
  };
357
- /** List instances */
415
+ /**
416
+ * List instances
417
+ * @description Every instance in the project, newest first. This endpoint does not query backend state; for the accurate state of one instance, use the retrieve endpoint.
418
+ */
358
419
  get: operations["list-instances"];
359
420
  put?: never;
360
421
  /**
361
422
  * Create instances
362
- * @description **A password must be set in the request.** The request is rejected otherwise, since the resulting instance would be unreachable. The platform can generate one, in which case it is returned only in this response.
363
- *
364
- * `count` creates several instances at once, 20 at most. Names are numbered `-1`, `-2` automatically and all instances share one password. **`instances` in the response is always an array**, including for a single instance.
365
- *
366
- * Instances are created one by one in order. If the sequence stops part way through, because of a quota limit for example, **the instances already created are kept** and `failure` states why it stopped. A failure on the first instance is treated as a failure of the whole request and no instance is created.
423
+ * @description Creates a Billing order, including for metered pricing. The price must belong to the resource’s Billing Plan; applicable contract pricing is resolved by Billing. The instances are created after the order's invoice is paid, or without waiting when the order has no immediate invoice. Do not submit a new purchase after paying, and reuse the original idempotency key after an uncertain response.
367
424
  *
368
- * Exactly one image source must be given: `image_id` for a platform image, `private_image_id` for a private image. Supplying both or neither is rejected.
425
+ * Exactly one of image_id, private_image_id or boot_disk_id is required, and exactly one of port_id or subnet_id. Existing ports, boot disks or floating IPs require count=1. Image boots require boot_disk; existing disks retain their own subscription. Instances, disks and public IPs keep their own subscription items on the same order.
369
426
  *
370
- * Instances are created in the availability zone of the instance type. Disks to be attached later must reside in the same zone.
427
+ * A request for several instances is all or nothing: if any instance cannot be created, every instance of that request is released, the order fails, and any payment for it is refunded. Each instance is named after this request with a number appended, and each has its own task.
371
428
  *
372
- * Creation is not complete when this endpoint returns and `status` is `provisioning`. Poll GET to observe the outcome.
429
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
373
430
  */
374
431
  post: operations["launch-instance"];
375
432
  delete?: never;
@@ -397,6 +454,8 @@ export interface paths {
397
454
  * @description The system disk is deleted with the instance, and **snapshots created from the system disk are deleted with it**. Data disks are detached and kept, and their snapshots and backups are unaffected. The primary network interface is released with the instance.
398
455
  *
399
456
  * An instance being captured as a private image cannot be released. Wait for the capture to finish, or delete that image first.
457
+ *
458
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
400
459
  */
401
460
  delete: operations["delete-instance"];
402
461
  options?: never;
@@ -408,7 +467,7 @@ export interface paths {
408
467
  patch: operations["rename-instance"];
409
468
  trace?: never;
410
469
  };
411
- "/api/v1/instances/{instanceId}/actions": {
470
+ "/api/v1/instances/{instanceId}/commands": {
412
471
  parameters: {
413
472
  query?: never;
414
473
  header?: never;
@@ -418,16 +477,26 @@ export interface paths {
418
477
  get?: never;
419
478
  put?: never;
420
479
  /**
421
- * Start, stop or reboot an instance
422
- * @description Reboot defaults to a soft reboot, in which the operating system shuts down normally before starting again.
480
+ * Run a command on an instance
481
+ * @description Runs one command over SSH and returns what it wrote. **This is not a shell.** There is no terminal, no standard input and no way to answer a prompt: a command that waits for input produces nothing and is killed at the timeout. Chain steps with `&&`, or write a script and run that.
423
482
  *
424
- * A soft reboot has no effect once the system is unresponsive. Set `force` to reboot forcibly: a forced reboot does not wait for the operating system to shut down, so **unwritten data is lost**. `force` applies to `reboot` only.
483
+ * **A command that fails is still a 200.** Its failure is its own result, not this endpoint's: read `exit_code` for what it exited with and `stderr` for what it said, and decide from those. A `grep` that matches nothing exits 1 and is a perfectly successful call.
425
484
  *
426
- * An instance suspended by the platform must be unsuspended first.
485
+ * The status therefore answers a different question — did the command run at all. A non-2xx means it did not, and nothing about the instance was changed by this request: it was suspended, not running or had no floating IP; or it refused the platform key; or the connection could not be opened. Retrying is meaningful in those cases and is not for a non-zero `exit_code`.
486
+ *
487
+ * Three conditions must hold; the instance is unreachable otherwise:
488
+ *
489
+ * - it is `running`
490
+ * - a floating IP is bound to it, since this endpoint connects over the public internet
491
+ * - its security group permits inbound TCP 22
427
492
  *
428
- * This endpoint returns immediately and the `status` it returns is a transient state: `starting` for start, `stopping` for stop, `rebooting` for reboot. Poll the instance until it settles at `running` or `stopped`.
493
+ * Authentication uses the key the platform attaches to every instance at creation, so nothing has to be set up first. The instance must have applied that key at first boot, which images without a full cloud-init do not do.
494
+ *
495
+ * **Do not pass secrets in the command.** Read them from a file on the instance instead: neither the command nor its output is a confidential channel.
496
+ *
497
+ * Each stream is capped at 1 MiB. Beyond that the rest is discarded and `truncated` is true.
429
498
  */
430
- post: operations["act-on-instance"];
499
+ post: operations["run-instance-command"];
431
500
  delete?: never;
432
501
  options?: never;
433
502
  head?: never;
@@ -447,7 +516,7 @@ export interface paths {
447
516
  * Open a remote console
448
517
  * @description Operates the instance directly from a browser and does not require the instance to be reachable over the network, which makes it usable when a network misconfiguration prevents login.
449
518
  *
450
- * The returned address is single-use and expires within minutes. **Do not cache it**; request a new one before each use.
519
+ * The returned address is single-use and expires within minutes. Request a new one before each use.
451
520
  */
452
521
  post: operations["open-instance-console"];
453
522
  delete?: never;
@@ -478,6 +547,54 @@ export interface paths {
478
547
  patch?: never;
479
548
  trace?: never;
480
549
  };
550
+ "/api/v1/instances/{instanceId}/labels": {
551
+ parameters: {
552
+ query?: never;
553
+ header?: never;
554
+ path?: never;
555
+ cookie?: never;
556
+ };
557
+ get?: never;
558
+ /**
559
+ * Replace an instance's labels
560
+ * @description Records what this instance is for, as key-value pairs. Nothing on the platform reads them.
561
+ *
562
+ * **The whole set is replaced**: whatever is absent from the request is removed.
563
+ *
564
+ * Do not put credentials here. Labels are visible to platform operators.
565
+ */
566
+ put: operations["set-instance-labels"];
567
+ post?: never;
568
+ delete?: never;
569
+ options?: never;
570
+ head?: never;
571
+ patch?: never;
572
+ trace?: never;
573
+ };
574
+ "/api/v1/instances/{instanceId}/notes": {
575
+ parameters: {
576
+ query?: never;
577
+ header?: never;
578
+ path?: never;
579
+ cookie?: never;
580
+ };
581
+ get?: never;
582
+ /**
583
+ * Replace an instance's note
584
+ * @description A free-text note about this instance — what it runs, and what to be careful about before touching it.
585
+ *
586
+ * **The whole note is replaced**; send an empty string to clear it.
587
+ *
588
+ * Do not put credentials here. The note is visible to platform operators.
589
+ */
590
+ put: operations["set-instance-notes"];
591
+ post?: never;
592
+ delete?: never;
593
+ options?: never;
594
+ head?: never;
595
+ patch?: never;
596
+ trace?: never;
597
+ };
481
598
  "/api/v1/instances/{instanceId}/password": {
482
599
  parameters: {
483
600
  query?: never;
@@ -502,6 +619,36 @@ export interface paths {
502
619
  patch?: never;
503
620
  trace?: never;
504
621
  };
622
+ "/api/v1/instances/{instanceId}/reboot": {
623
+ parameters: {
624
+ query?: never;
625
+ header?: never;
626
+ path?: never;
627
+ cookie?: never;
628
+ };
629
+ get?: never;
630
+ put?: never;
631
+ /**
632
+ * Reboot an instance
633
+ * @description A reboot defaults to soft, in which the operating system shuts down normally before starting again.
634
+ *
635
+ * A soft reboot has no effect once the system is unresponsive. Set `force` to reboot forcibly: a forced reboot does not wait for the operating system to shut down, so **unwritten data is lost**.
636
+ *
637
+ * A forced reboot is accepted while the instance is already `rebooting`, which is the way out of a soft reboot the instance never carried out. Every other endpoint refuses an instance in a transient state, and a second soft reboot is refused as well.
638
+ *
639
+ * An instance suspended by the platform must be unsuspended first.
640
+ *
641
+ * This endpoint returns immediately and the `status` it returns is the transient `rebooting`. Poll the instance until it settles at `running`.
642
+ *
643
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
644
+ */
645
+ post: operations["reboot-instance"];
646
+ delete?: never;
647
+ options?: never;
648
+ head?: never;
649
+ patch?: never;
650
+ trace?: never;
651
+ };
505
652
  "/api/v1/instances/{instanceId}/rebuild": {
506
653
  parameters: {
507
654
  query?: never;
@@ -514,6 +661,8 @@ export interface paths {
514
661
  /**
515
662
  * Rebuild an instance
516
663
  * @description **All data on the system disk is erased and cannot be recovered.** Attached data disks are unaffected.
664
+ *
665
+ * 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.
517
666
  */
518
667
  post: operations["rebuild-instance"];
519
668
  delete?: never;
@@ -533,11 +682,9 @@ export interface paths {
533
682
  put?: never;
534
683
  /**
535
684
  * Resize an instance
536
- * @description Only an instance type in the same region and availability zone can be selected, as attached disks cannot follow the instance elsewhere.
537
- *
538
- * A resize has two steps. This endpoint restarts the instance on the new size and the status becomes `resize_verifying`, at which point the confirm or revert endpoint **must** be called. Until confirmation the target type is recorded in `pending_instance_type_id`, while `instance_type_id` remains the type in effect and billed.
685
+ * @description Creates a Billing change order, including for metered pricing. The price must belong to the Billing Plan of the target instance type; applicable contract pricing is resolved by Billing. The resize is applied after the order's invoice is paid, or without waiting when the order has no immediate invoice. Do not submit a new purchase after paying, and reuse the original idempotency key after an uncertain response.
539
686
  *
540
- * **Both sizes hold resources while the resize is unconfirmed.** Confirm promptly once the status becomes `resize_verifying`.
687
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
541
688
  */
542
689
  post: operations["resize-instance"];
543
690
  delete?: never;
@@ -558,6 +705,8 @@ export interface paths {
558
705
  /**
559
706
  * Confirm a resize
560
707
  * @description Releases the resources held by the previous size. `pending_instance_type_id` becomes the type in effect and is billed from then on.
708
+ *
709
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
561
710
  */
562
711
  post: operations["confirm-instance-resize"];
563
712
  delete?: never;
@@ -578,6 +727,8 @@ export interface paths {
578
727
  /**
579
728
  * Revert a resize
580
729
  * @description The instance returns to its previous size, `pending_instance_type_id` is discarded, and billing is unaffected by the resize.
730
+ *
731
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
581
732
  */
582
733
  post: operations["revert-instance-resize"];
583
734
  delete?: never;
@@ -586,6 +737,50 @@ export interface paths {
586
737
  patch?: never;
587
738
  trace?: never;
588
739
  };
740
+ "/api/v1/instances/{instanceId}/start": {
741
+ parameters: {
742
+ query?: never;
743
+ header?: never;
744
+ path?: never;
745
+ cookie?: never;
746
+ };
747
+ get?: never;
748
+ put?: never;
749
+ /**
750
+ * Start an instance
751
+ * @description Records the desired power state. An in-flight shutdown is allowed to finish before a subsequent start. Outstanding restrictions can prevent starting. A stopped instance keeps its disks, network attachments and sellable quota. Inspect operation, task_state, power_state and observed_at to determine completion.
752
+ *
753
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
754
+ */
755
+ post: operations["start-instance"];
756
+ delete?: never;
757
+ options?: never;
758
+ head?: never;
759
+ patch?: never;
760
+ trace?: never;
761
+ };
762
+ "/api/v1/instances/{instanceId}/stop": {
763
+ parameters: {
764
+ query?: never;
765
+ header?: never;
766
+ path?: never;
767
+ cookie?: never;
768
+ };
769
+ get?: never;
770
+ put?: never;
771
+ /**
772
+ * Stop an instance
773
+ * @description Records the desired power state. An in-flight shutdown is allowed to finish before a subsequent start. Outstanding restrictions can prevent starting. A stopped instance keeps its disks, network attachments and sellable quota. Inspect operation, task_state, power_state and observed_at to determine completion.
774
+ *
775
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
776
+ */
777
+ post: operations["stop-instance"];
778
+ delete?: never;
779
+ options?: never;
780
+ head?: never;
781
+ patch?: never;
782
+ trace?: never;
783
+ };
589
784
  "/api/v1/instances/{instanceId}/disks": {
590
785
  parameters: {
591
786
  query?: never;
@@ -599,6 +794,8 @@ export interface paths {
599
794
  /**
600
795
  * Attach a disk
601
796
  * @description The disk must be in the same region and availability zone as the instance. Partition it and mount the file system inside the instance once it is attached.
797
+ *
798
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
602
799
  */
603
800
  post: operations["attach-disk"];
604
801
  delete?: never;
@@ -620,6 +817,8 @@ export interface paths {
620
817
  /**
621
818
  * Detach a disk
622
819
  * @description Unmount the device inside the instance before calling this endpoint. Forcibly detaching a file system that is being written to corrupts data.
820
+ *
821
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
623
822
  */
624
823
  delete: operations["detach-disk"];
625
824
  options?: never;
@@ -638,7 +837,7 @@ export interface paths {
638
837
  put?: never;
639
838
  /**
640
839
  * Bind a floating IP to an instance
641
- * @description The floating IP is bound to the primary network interface of the instance.
840
+ * @description Changes the public IP binding on the instance's primary network interface. The returned task tracks confirmation of the binding change.
642
841
  */
643
842
  post: operations["attach-instance-floating-ip"];
644
843
  delete?: never;
@@ -657,7 +856,10 @@ export interface paths {
657
856
  get?: never;
658
857
  put?: never;
659
858
  post?: never;
660
- /** Unbind the floating IP of an instance */
859
+ /**
860
+ * Unbind the floating IP of an instance
861
+ * @description Changes the public IP binding on the instance's primary network interface. The returned task tracks confirmation of the binding change.
862
+ */
661
863
  delete: operations["detach-instance-floating-ip"];
662
864
  options?: never;
663
865
  head?: never;
@@ -674,7 +876,10 @@ export interface paths {
674
876
  /** List the network interfaces of an instance */
675
877
  get: operations["list-instance-ports"];
676
878
  put?: never;
677
- /** Attach a network interface */
879
+ /**
880
+ * Attach a network interface
881
+ * @description Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
882
+ */
678
883
  post: operations["attach-port"];
679
884
  delete?: never;
680
885
  options?: never;
@@ -695,6 +900,8 @@ export interface paths {
695
900
  /**
696
901
  * Detach a network interface
697
902
  * @description The primary network interface cannot be detached; the instance would lose its network address.
903
+ *
904
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
698
905
  */
699
906
  delete: operations["detach-port"];
700
907
  options?: never;
@@ -783,7 +990,7 @@ export interface paths {
783
990
  *
784
991
  * **The image reflects the moment the capture started. Later changes to the instance are not included.**
785
992
  *
786
- * The capture has two phases. Poll the retrieve endpoint:
993
+ * The capture has two phases, reported by the status of the image:
787
994
  *
788
995
  * - `provisioning` — the system disk is being read, usually for tens of seconds. The instance remains usable during this phase, although stopping it first is recommended for consistency.
789
996
  * - `uploading` — no longer tied to the system disk. **The instance may be started at this point; there is no need to wait for the capture to finish.** The duration of this phase is proportional to the size of the system disk, roughly 3 minutes for 20 GB.
@@ -791,6 +998,8 @@ export interface paths {
791
998
  * The file system of a running instance may be captured mid-write, in which case the image is equivalent to the disk contents after a power loss. Where consistency matters, stop the instance before starting the capture and start it again once the status becomes `uploading`.
792
999
  *
793
1000
  * The instance can be started, stopped and used normally during the capture, but cannot be released.
1001
+ *
1002
+ * Replays return HTTP 201 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
794
1003
  */
795
1004
  post: operations["create-private-image"];
796
1005
  delete?: never;
@@ -818,6 +1027,8 @@ export interface paths {
818
1027
  * @description Deletion is rejected while instances created from the image still exist, as they need it in order to be rebuilt.
819
1028
  *
820
1029
  * An image whose capture has not finished can be deleted; the capture is aborted.
1030
+ *
1031
+ * Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
821
1032
  */
822
1033
  delete: operations["delete-private-image"];
823
1034
  options?: never;
@@ -1097,6 +1308,8 @@ export interface paths {
1097
1308
  * @description Disks attached to a running instance can be snapshotted. A snapshot records the state of the block device at a point in time and may be inconsistent at the file-system level, so run `sync` inside the instance first where the data matters.
1098
1309
  *
1099
1310
  * **A snapshot of a system disk cannot be used to revert that system disk**: reverting requires the disk to be detached, and a system disk cannot be detached. It can be used to create a new data disk. To preserve and restore an entire system, use a private image; for a copy that crosses availability zones and survives deletion of the disk, use a backup.
1311
+ *
1312
+ * Replays return HTTP 201 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
1100
1313
  */
1101
1314
  post: operations["create-snapshot"];
1102
1315
  delete?: never;
@@ -1116,7 +1329,10 @@ export interface paths {
1116
1329
  get: operations["get-snapshot"];
1117
1330
  put?: never;
1118
1331
  post?: never;
1119
- /** Delete a snapshot */
1332
+ /**
1333
+ * Delete a snapshot
1334
+ * @description Replays return HTTP 202 for the original operation. See the idempotency conventions for conflicts and terminal outcomes.
1335
+ */
1120
1336
  delete: operations["delete-snapshot"];
1121
1337
  options?: never;
1122
1338
  head?: never;
@@ -1124,32 +1340,178 @@ export interface paths {
1124
1340
  patch: operations["rename-snapshot"];
1125
1341
  trace?: never;
1126
1342
  };
1343
+ "/api/v1/tasks/{taskId}": {
1344
+ parameters: {
1345
+ query?: never;
1346
+ header?: never;
1347
+ path?: never;
1348
+ cookie?: never;
1349
+ };
1350
+ /** Get a requested action */
1351
+ get: operations["get-task"];
1352
+ put?: never;
1353
+ post?: never;
1354
+ delete?: never;
1355
+ options?: never;
1356
+ head?: never;
1357
+ patch?: never;
1358
+ trace?: never;
1359
+ };
1360
+ "/api/v1/ipv4-pools": {
1361
+ parameters: {
1362
+ query?: never;
1363
+ header?: never;
1364
+ path?: never;
1365
+ cookie?: never;
1366
+ };
1367
+ /**
1368
+ * List public IP pools
1369
+ * @description Lists the public IP pools available for new allocations in this region.
1370
+ */
1371
+ get: operations["list-ipv4-pools"];
1372
+ put?: never;
1373
+ post?: never;
1374
+ delete?: never;
1375
+ options?: never;
1376
+ head?: never;
1377
+ patch?: never;
1378
+ trace?: never;
1379
+ };
1380
+ "/api/v1/peerings": {
1381
+ parameters: {
1382
+ query?: never;
1383
+ header?: never;
1384
+ path?: never;
1385
+ cookie?: never;
1386
+ };
1387
+ /** List peerings */
1388
+ get: operations["list-peerings"];
1389
+ put?: never;
1390
+ /**
1391
+ * Create peering
1392
+ * @description Request IPv4 peering between non-overlapping VPCs in the same Region. The target project must accept before any connectivity is created. Does not change security groups or provide transitive routing.
1393
+ */
1394
+ post: operations["create-peering"];
1395
+ delete?: never;
1396
+ options?: never;
1397
+ head?: never;
1398
+ patch?: never;
1399
+ trace?: never;
1400
+ };
1401
+ "/api/v1/peerings/{peeringId}": {
1402
+ parameters: {
1403
+ query?: never;
1404
+ header?: never;
1405
+ path?: never;
1406
+ cookie?: never;
1407
+ };
1408
+ /** Get peering */
1409
+ get: operations["get-peering"];
1410
+ put?: never;
1411
+ post?: never;
1412
+ /** Delete peering */
1413
+ delete: operations["delete-peering"];
1414
+ options?: never;
1415
+ head?: never;
1416
+ patch?: never;
1417
+ trace?: never;
1418
+ };
1419
+ "/api/v1/peerings/{peeringId}/accept": {
1420
+ parameters: {
1421
+ query?: never;
1422
+ header?: never;
1423
+ path?: never;
1424
+ cookie?: never;
1425
+ };
1426
+ get?: never;
1427
+ put?: never;
1428
+ /** Accept peering */
1429
+ post: operations["accept-peering"];
1430
+ delete?: never;
1431
+ options?: never;
1432
+ head?: never;
1433
+ patch?: never;
1434
+ trace?: never;
1435
+ };
1436
+ "/api/v1/peerings/{peeringId}/reject": {
1437
+ parameters: {
1438
+ query?: never;
1439
+ header?: never;
1440
+ path?: never;
1441
+ cookie?: never;
1442
+ };
1443
+ get?: never;
1444
+ put?: never;
1445
+ /** Reject peering */
1446
+ post: operations["reject-peering"];
1447
+ delete?: never;
1448
+ options?: never;
1449
+ head?: never;
1450
+ patch?: never;
1451
+ trace?: never;
1452
+ };
1127
1453
  }
1128
1454
  export type webhooks = Record<string, never>;
1129
1455
  export interface components {
1130
1456
  schemas: {
1131
- Error: {
1132
- code?: string;
1133
- message: string;
1134
- meta?: {
1135
- [key: string]: unknown;
1136
- };
1137
- /** Format: int64 */
1138
- status: number;
1139
- };
1140
- BackupResource: {
1141
- /** @description Availability zone of the source disk. A restore may target another zone in the same region */
1142
- availability_zone: string;
1143
- /** Format: date-time */
1144
- created_at: string;
1457
+ PeeringResource: {
1145
1458
  /** Format: uuid */
1146
1459
  id: string;
1147
1460
  name: string;
1148
- region_code: string;
1149
- /**
1150
- * Format: int64
1151
- * @description Capacity of the source disk when the backup was created. A restored disk cannot be smaller than this
1152
- */
1461
+ /** Format: uuid */
1462
+ region_id: string;
1463
+ /** Format: uuid */
1464
+ requester_project_id: string;
1465
+ /** Format: uuid */
1466
+ accepter_project_id: string;
1467
+ /** Format: uuid */
1468
+ requester_network_id: string;
1469
+ /** Format: uuid */
1470
+ accepter_network_id: string;
1471
+ /** @enum {string} */
1472
+ status: "pending_acceptance" | "provisioning" | "active" | "deleting" | "deleted" | "rejected" | "error";
1473
+ /** Format: date-time */
1474
+ created_at: string;
1475
+ failure_code?: string;
1476
+ };
1477
+ PeeringListResponseBody: {
1478
+ items: components["schemas"]["PeeringResource"][];
1479
+ total: number;
1480
+ };
1481
+ CreatePeeringRequestBody: {
1482
+ name: string;
1483
+ /** Format: uuid */
1484
+ requester_network_id: string;
1485
+ /** Format: uuid */
1486
+ accepter_project_id: string;
1487
+ /** Format: uuid */
1488
+ accepter_network_id: string;
1489
+ };
1490
+ Error: {
1491
+ code?: string;
1492
+ message: string;
1493
+ /**
1494
+ * @description What a given `code` carries alongside the message. The keys depend on the code,
1495
+ * and a client that does not recognise one ignores it.
1496
+ */
1497
+ meta?: {
1498
+ [key: string]: unknown;
1499
+ };
1500
+ /** Format: int64 */
1501
+ status: number;
1502
+ };
1503
+ BackupResource: {
1504
+ /** Format: date-time */
1505
+ created_at: string;
1506
+ /** Format: uuid */
1507
+ id: string;
1508
+ name: string;
1509
+ /** Format: uuid */
1510
+ region_id: string;
1511
+ /**
1512
+ * Format: int64
1513
+ * @description Capacity of the source disk when the backup was created. A restored disk cannot be smaller than this
1514
+ */
1153
1515
  size_gb: number;
1154
1516
  /**
1155
1517
  * Format: uuid
@@ -1158,6 +1520,24 @@ export interface components {
1158
1520
  source_disk_id: string;
1159
1521
  /** @enum {string} */
1160
1522
  status: "provisioning" | "available" | "restoring" | "deleting" | "error";
1523
+ /** Format: uuid */
1524
+ order_id: string | null;
1525
+ /** Format: uuid */
1526
+ price_id: string | null;
1527
+ /** Format: uuid */
1528
+ subscription_item_id: string | null;
1529
+ /** @enum {string|null} */
1530
+ access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
1531
+ task: components["schemas"]["Task"] | null;
1532
+ /** Format: int64 */
1533
+ generation: number;
1534
+ /** Format: date-time */
1535
+ observed_at: string | null;
1536
+ /**
1537
+ * Format: uuid
1538
+ * @description Availability zone of the source disk. A restore may target another zone in the same region
1539
+ */
1540
+ source_availability_zone_id: string;
1161
1541
  };
1162
1542
  BackupListResponseBody: {
1163
1543
  items: components["schemas"]["BackupResource"][] | null;
@@ -1166,6 +1546,9 @@ export interface components {
1166
1546
  /** Format: uuid */
1167
1547
  disk_id: string;
1168
1548
  name: string;
1549
+ /** Format: uuid */
1550
+ price_id: string;
1551
+ order: components["schemas"]["OrderOptions"];
1169
1552
  };
1170
1553
  RenameBackupRequestBody: {
1171
1554
  name: string;
@@ -1173,7 +1556,7 @@ export interface components {
1173
1556
  RestoreBackupRequestBody: {
1174
1557
  /**
1175
1558
  * Format: uuid
1176
- * @description May differ from the availability zone of the source disk, but must be in the same region
1559
+ * @description May differ from the availability zone of the source disk, but must be in the same region. It has to be a data disk type on sale — restoring creates a new data disk, so a withdrawn type or a system disk type is rejected here as well
1177
1560
  */
1178
1561
  disk_type_id: string;
1179
1562
  name: string;
@@ -1182,33 +1565,79 @@ export interface components {
1182
1565
  * @description Matches the size of the backup when omitted. When given, it must not be smaller than the backup
1183
1566
  */
1184
1567
  size_gb?: number;
1568
+ /** Format: uuid */
1569
+ price_id: string;
1570
+ order: components["schemas"]["OrderOptions"];
1185
1571
  };
1186
1572
  DiskResource: {
1187
- attached_instance_id: string | null;
1188
- /** @description Availability zone the disk actually resides in. An instance must be in the same zone to attach it */
1189
- availability_zone: string;
1573
+ /**
1574
+ * Format: uuid
1575
+ * @description Availability zone the disk actually resides in. An instance must be in the same zone to attach it
1576
+ */
1577
+ availability_zone_id: string;
1190
1578
  /** Format: date-time */
1191
1579
  created_at: string;
1192
- /** @description Device name assigned by the system, as seen inside the instance */
1193
- device: string | null;
1194
1580
  /** Format: uuid */
1195
1581
  disk_type_id: string;
1196
1582
  /** Format: uuid */
1197
1583
  id: string;
1198
- /** @description A system disk is released with its instance and can be neither detached nor deleted individually */
1199
- is_system: boolean;
1200
1584
  name: string;
1201
- region_code: string;
1585
+ /** Format: uuid */
1586
+ region_id: string;
1202
1587
  /** Format: int64 */
1203
1588
  size_gb: number;
1589
+ /**
1590
+ * Format: int64
1591
+ * @description IOPS this disk is allowed. Null when its type is not rate-limited.
1592
+ *
1593
+ * Computed from the disk's own capacity, so it grows when the disk is grown — but see the
1594
+ * note on the resize endpoint: growing a disk that is attached is refused, precisely because
1595
+ * the new figure would not take effect until it was attached again.
1596
+ */
1597
+ iops: number | null;
1598
+ /**
1599
+ * Format: int64
1600
+ * @description Throughput this disk is allowed, in bytes per second. Null when its type is not rate-limited
1601
+ */
1602
+ throughput_bytes_per_sec: number | null;
1204
1603
  /** @enum {string} */
1205
1604
  status: "provisioning" | "available" | "attaching" | "in_use" | "detaching" | "resizing" | "reverting" | "restoring" | "releasing" | "deleting" | "error";
1605
+ /** Format: uuid */
1606
+ order_id: string | null;
1607
+ /** Format: uuid */
1608
+ price_id: string | null;
1609
+ /** Format: uuid */
1610
+ subscription_item_id: string | null;
1611
+ /** @enum {string|null} */
1612
+ access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
1613
+ task: components["schemas"]["Task"] | null;
1614
+ attachment?: components["schemas"]["DiskAttachment"] | null;
1615
+ /** Format: int64 */
1616
+ generation: number;
1617
+ /** Format: date-time */
1618
+ observed_at: string | null;
1206
1619
  };
1207
1620
  DiskTypeResource: {
1208
- availability_zone_code: string;
1621
+ /** Format: uuid */
1622
+ availability_zone_id: string;
1209
1623
  /** Format: uuid */
1210
1624
  id: string;
1211
- iops_display: string;
1625
+ /** @description True for a system disk type, the one chosen as `boot_disk.disk_type_id` when creating an instance from an image. A system disk type cannot be used to create a data disk, and a data disk type cannot be used for a system disk. */
1626
+ for_system: boolean;
1627
+ /**
1628
+ * Format: int64
1629
+ * @description IOPS a disk of `min_size_gb` gets. Null when this type is not rate-limited.
1630
+ *
1631
+ * Performance grows with capacity, so this and `iops_at_max_size` are the two ends of the
1632
+ * range. The exact figure for the size actually bought appears on the disk itself once it
1633
+ * exists.
1634
+ */
1635
+ iops_at_min_size: number | null;
1636
+ /**
1637
+ * Format: int64
1638
+ * @description IOPS a disk of `max_size_gb` gets. Null when this type is not rate-limited
1639
+ */
1640
+ iops_at_max_size: number | null;
1212
1641
  /** Format: int64 */
1213
1642
  max_size_gb: number;
1214
1643
  /** @enum {string} */
@@ -1216,10 +1645,34 @@ export interface components {
1216
1645
  /** Format: int64 */
1217
1646
  min_size_gb: number;
1218
1647
  name: string;
1219
- region_code: string;
1648
+ /** Format: uuid */
1649
+ region_id: string;
1220
1650
  /** Format: int64 */
1221
1651
  step_gb: number;
1222
- throughput_display: string;
1652
+ /**
1653
+ * Format: int64
1654
+ * @description Throughput a disk of `min_size_gb` gets, in **bytes per second**. Null when this type is
1655
+ * not rate-limited.
1656
+ *
1657
+ * Bytes rather than MiB so the number needs no rounding on the way out; divide by 1048576
1658
+ * for MiB/s at the point of display.
1659
+ */
1660
+ throughput_at_min_size: number | null;
1661
+ /**
1662
+ * Format: int64
1663
+ * @description Throughput a disk of `max_size_gb` gets, in bytes per second. Null when this type is not rate-limited
1664
+ */
1665
+ throughput_at_max_size: number | null;
1666
+ /** @description Billing Product ID. Null when no Product is assigned; otherwise `compute`. */
1667
+ product_id: string | null;
1668
+ /** Format: uuid */
1669
+ plan_id: string | null;
1670
+ /** Format: uuid */
1671
+ snapshot_plan_id: string | null;
1672
+ /** Format: uuid */
1673
+ backup_plan_id: string | null;
1674
+ /** Format: uuid */
1675
+ private_image_plan_id: string | null;
1223
1676
  };
1224
1677
  DiskTypeListResponseBody: {
1225
1678
  items: components["schemas"]["DiskTypeResource"][] | null;
@@ -1228,6 +1681,8 @@ export interface components {
1228
1681
  architecture: string;
1229
1682
  /** Format: uuid */
1230
1683
  id: string;
1684
+ /** @description The account this image lets you log in as. The password set at creation belongs to this account */
1685
+ login_username: string;
1231
1686
  /** Format: int64 */
1232
1687
  min_disk_gb: number;
1233
1688
  /** Format: int64 */
@@ -1235,20 +1690,48 @@ export interface components {
1235
1690
  name: string;
1236
1691
  os_family: string;
1237
1692
  os_version: string;
1238
- region_code: string;
1693
+ /** Format: uuid */
1694
+ region_id: string;
1239
1695
  /** @description False means a new password can only be set by rebuilding an instance created from this image */
1240
1696
  supports_password_reset: boolean;
1241
1697
  };
1242
1698
  ImageListResponseBody: {
1243
- items: components["schemas"]["ImageResource"][] | null;
1699
+ items: components["schemas"]["ImageResource"][];
1700
+ /** Format: int64 */
1701
+ page: number;
1702
+ /** Format: int64 */
1703
+ page_size: number;
1704
+ /** Format: int64 */
1705
+ total_count?: number;
1244
1706
  };
1245
1707
  InstanceTypeResource: {
1246
- /** @description Availability zone of this instance type. A disk must be in the same zone to be attached */
1247
- availability_zone_code: string;
1708
+ /** Format: uuid */
1709
+ availability_zone_id: string;
1248
1710
  /** Format: uuid */
1249
1711
  id: string;
1250
- /** Format: int64 */
1712
+ /**
1713
+ * Format: int64
1714
+ * @description The most public bandwidth a machine of this type may be given, in Mbps. Asking for more
1715
+ * when creating a machine, or raising a bound address past it, is refused.
1716
+ *
1717
+ * A ceiling on what can be bought, not a speed. How fast the machine's own interfaces run is
1718
+ * `network_egress_kbps` / `network_ingress_kbps`.
1719
+ */
1251
1720
  max_bandwidth_mbps: number;
1721
+ /**
1722
+ * Format: int64
1723
+ * @description Outbound ceiling of **each** network interface, in kbps. Null when this type is not
1724
+ * rate-limited.
1725
+ *
1726
+ * Per interface rather than per machine: a machine with two interfaces has this ceiling on
1727
+ * each of them, not shared between them. `max_ports` says how many it may have.
1728
+ */
1729
+ network_egress_kbps: number | null;
1730
+ /**
1731
+ * Format: int64
1732
+ * @description Inbound ceiling of each network interface, in kbps. Null when this type is not rate-limited
1733
+ */
1734
+ network_ingress_kbps: number | null;
1252
1735
  /** Format: int64 */
1253
1736
  max_floating_ips: number;
1254
1737
  /** Format: int64 */
@@ -1256,24 +1739,44 @@ export interface components {
1256
1739
  name: string;
1257
1740
  /** Format: int64 */
1258
1741
  ram_mb: number;
1259
- region_code: string;
1742
+ /** Format: uuid */
1743
+ region_id: string;
1260
1744
  /** Format: int64 */
1261
1745
  vcpus: number;
1746
+ /** @description Billing Product ID. Null when no Product is assigned; otherwise `compute`. */
1747
+ product_id: string | null;
1748
+ /** Format: uuid */
1749
+ plan_id: string | null;
1262
1750
  };
1263
1751
  InstanceTypeListResponseBody: {
1264
- items: components["schemas"]["InstanceTypeResource"][] | null;
1752
+ items: components["schemas"]["InstanceTypeResource"][];
1753
+ /** Format: int64 */
1754
+ page: number;
1755
+ /** Format: int64 */
1756
+ page_size: number;
1757
+ /** Format: int64 */
1758
+ total_count?: number;
1265
1759
  };
1266
1760
  RegionResource: {
1267
- code: string;
1761
+ /** @description ISO 3166-1 alpha-2 country this region sits in. Two letters, uppercase. */
1268
1762
  country_code: string;
1763
+ /** @description Display name for this place, shown to tenants (Hong Kong). The stable handle is code. */
1269
1764
  name: string;
1765
+ /** @description The region's code, the way the outside world names this place (hk-1). Stable and human-written; addressing is by id. */
1766
+ code: string;
1767
+ /** Format: uuid */
1768
+ id: string;
1270
1769
  };
1271
1770
  RegionListResponseBody: {
1272
1771
  items: components["schemas"]["RegionResource"][] | null;
1273
1772
  };
1274
1773
  ZoneResource: {
1275
- code: string;
1774
+ /** @description Display name for this zone, shown to tenants (Hong Kong A). The stable handle is code. */
1276
1775
  name: string;
1776
+ /** @description The zone's code within its region (hk-1-a). Stable and human-written; addressing is by id. */
1777
+ code: string;
1778
+ /** Format: uuid */
1779
+ id: string;
1277
1780
  };
1278
1781
  ZoneListResponseBody: {
1279
1782
  items: components["schemas"]["ZoneResource"][] | null;
@@ -1282,7 +1785,10 @@ export interface components {
1282
1785
  items: components["schemas"]["DiskResource"][] | null;
1283
1786
  };
1284
1787
  CreateDiskRequestBody: {
1285
- /** Format: uuid */
1788
+ /**
1789
+ * Format: uuid
1790
+ * @description A data disk type currently on sale, one whose `for_system` is false. A withdrawn one is rejected even though its identifier still resolves
1791
+ */
1286
1792
  disk_type_id: string;
1287
1793
  name: string;
1288
1794
  /** Format: int64 */
@@ -1292,6 +1798,9 @@ export interface components {
1292
1798
  * @description Restore from this snapshot. When given, the capacity need only be no smaller than the snapshot
1293
1799
  */
1294
1800
  snapshot_id?: string;
1801
+ /** Format: uuid */
1802
+ price_id: string;
1803
+ order: components["schemas"]["OrderOptions"];
1295
1804
  };
1296
1805
  RenameDiskRequestBody: {
1297
1806
  name: string;
@@ -1302,6 +1811,9 @@ export interface components {
1302
1811
  * @description Must be larger than the current capacity
1303
1812
  */
1304
1813
  size_gb: number;
1814
+ /** Format: uuid */
1815
+ price_id: string;
1816
+ order: components["schemas"]["OrderOptions"];
1305
1817
  };
1306
1818
  RevertDiskRequestBody: {
1307
1819
  /**
@@ -1312,22 +1824,38 @@ export interface components {
1312
1824
  };
1313
1825
  FloatingIPResource: {
1314
1826
  address: string;
1315
- attached_fixed_ip: string | null;
1316
- attached_port_id: string | null;
1317
1827
  /** Format: int64 */
1318
1828
  bandwidth_mbps: number | null;
1319
1829
  /** Format: date-time */
1320
1830
  created_at: string;
1321
- /** Format: date-time */
1322
- detached_at: string | null;
1323
1831
  /** Format: uuid */
1324
1832
  id: string;
1325
- region_code: string;
1326
- /**
1327
- * @description `idle` means the address is not bound to a network interface
1328
- * @enum {string}
1329
- */
1330
- status: "idle" | "bound";
1833
+ /** Format: uuid */
1834
+ region_id: string;
1835
+ /** @enum {string} */
1836
+ status: "pending" | "available" | "deleting" | "error" | "unknown";
1837
+ /** Format: uuid */
1838
+ order_id: string | null;
1839
+ /** Format: uuid */
1840
+ price_id: string | null;
1841
+ /** Format: uuid */
1842
+ subscription_item_id: string | null;
1843
+ /** @enum {string|null} */
1844
+ access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
1845
+ task: components["schemas"]["Task"] | null;
1846
+ /** Format: uuid */
1847
+ bandwidth_order_id: string | null;
1848
+ /** Format: uuid */
1849
+ bandwidth_price_id: string | null;
1850
+ /** Format: uuid */
1851
+ bandwidth_subscription_item_id: string | null;
1852
+ /** @enum {string|null} */
1853
+ bandwidth_access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
1854
+ /** Format: int64 */
1855
+ generation: number;
1856
+ /** Format: date-time */
1857
+ observed_at: string | null;
1858
+ binding: components["schemas"]["IPv4Binding"] | null;
1331
1859
  };
1332
1860
  FloatingIPListResponseBody: {
1333
1861
  items: components["schemas"]["FloatingIPResource"][] | null;
@@ -1335,8 +1863,27 @@ export interface components {
1335
1863
  AllocateFloatingIPRequestBody: {
1336
1864
  /** @description The address to allocate. Allocated by the platform when omitted */
1337
1865
  address?: string;
1866
+ /**
1867
+ * Format: int64
1868
+ * @description The bandwidth ceiling of this address, in Mbit/s, applied to both directions.
1869
+ *
1870
+ * Required, and there is no "unlimited": an address with no ceiling runs at line rate and is
1871
+ * charged nothing for the traffic, while the address itself bills normally — so the invoice
1872
+ * looks correct and nothing anywhere reports it.
1873
+ *
1874
+ * It is billed separately from the address, per Mbit/s-hour, and appears as its own line on
1875
+ * the order. Changing it later goes through the bandwidth endpoint.
1876
+ */
1877
+ bandwidth_mbps: number;
1338
1878
  /** Format: uuid */
1339
1879
  private_network_id: string;
1880
+ /** Format: uuid */
1881
+ ipv4_pool_id: string;
1882
+ /** Format: uuid */
1883
+ price_id: string;
1884
+ /** Format: uuid */
1885
+ bandwidth_price_id: string;
1886
+ order: components["schemas"]["OrderOptions"];
1340
1887
  };
1341
1888
  SetBandwidthRequestBody: {
1342
1889
  /**
@@ -1344,13 +1891,17 @@ export interface components {
1344
1891
  * @description Applied to both directions
1345
1892
  */
1346
1893
  mbps: number;
1894
+ /** Format: uuid */
1895
+ price_id: string;
1896
+ order: components["schemas"]["OrderOptions"];
1347
1897
  };
1348
1898
  BindFloatingIPRequestBody: {
1349
1899
  /** Format: uuid */
1350
- port_id: string;
1900
+ port_address_id: string;
1351
1901
  };
1352
1902
  InstanceResource: {
1353
- availability_zone: string;
1903
+ /** Format: uuid */
1904
+ availability_zone_id: string;
1354
1905
  /** Format: date-time */
1355
1906
  created_at: string;
1356
1907
  /** @description Hostname inside the instance; equals the instance id */
@@ -1369,12 +1920,15 @@ export interface components {
1369
1920
  instance_type_id: string;
1370
1921
  /** @description IPv6 address of the primary network interface. Assigned automatically once IPv6 is enabled on the private network */
1371
1922
  ipv6_address: string | null;
1923
+ /** @description Your own classification of this instance, as key-value pairs. Empty when never set */
1924
+ labels: {
1925
+ [key: string]: string;
1926
+ };
1927
+ /** @description The account to log in as over SSH. The password set at creation belongs to this account */
1928
+ login_username: string;
1372
1929
  name: string;
1373
- /**
1374
- * Format: uuid
1375
- * @description Non-empty while a resize awaits confirmation. Confirming puts this type into effect, reverting discards it
1376
- */
1377
- pending_instance_type_id: string | null;
1930
+ /** @description A free-text note about this instance. Empty when never set */
1931
+ notes: string;
1378
1932
  /**
1379
1933
  * Format: uuid
1380
1934
  * @description Non-empty when the instance was created from a private image
@@ -1382,50 +1936,96 @@ export interface components {
1382
1936
  private_image_id: string | null;
1383
1937
  /** @description Private address of the instance */
1384
1938
  private_ip: string | null;
1385
- /** @description Private network of the primary network interface */
1939
+ /** Format: uuid */
1386
1940
  private_network_id: string | null;
1387
1941
  /** @description Floating IPv4 addresses bound to the primary network interface; an empty array when none are bound */
1388
1942
  public_ips: string[] | null;
1389
- region_code: string;
1390
- /**
1391
- * @description Only `running` and `stopped` accept commands. Every other value means the instance is changing, and start, stop, reboot, resize, rebuild and password reset are all rejected.
1392
- *
1393
- * `transitioning` is the fallback for a change that falls into none of the categories above. It does not indicate an error; keep polling.
1394
- *
1395
- * `resize_verifying` is not transient: the instance is running on the new size and stays there until the resize is confirmed or reverted, with both sizes billed in the meantime.
1396
- * @enum {string}
1397
- */
1398
- status: "provisioning" | "running" | "stopped" | "starting" | "stopping" | "rebooting" | "transitioning" | "resizing" | "resize_verifying" | "error" | "deleting" | "suspended";
1399
- /** @description Subnet of the primary network interface */
1943
+ /** Format: uuid */
1944
+ region_id: string;
1945
+ /** @enum {string} */
1946
+ status: "pending" | "building" | "active" | "stopped" | "paused" | "suspended" | "shelved" | "shelved_offloaded" | "rescued" | "resized" | "deleting" | "deleted" | "error" | "unknown";
1947
+ /** Format: uuid */
1400
1948
  subnet_id: string | null;
1401
- /**
1402
- * Format: date-time
1403
- * @description Non-empty once the platform has suspended the instance, which must be lifted before any operation
1404
- */
1405
- suspended_at: string | null;
1406
1949
  /** Format: date-time */
1407
1950
  updated_at: string;
1951
+ /** @enum {string} */
1952
+ desired_state: "running" | "stopped" | "deleted";
1953
+ /** @enum {string} */
1954
+ power_state: "no_state" | "running" | "paused" | "shutdown" | "crashed" | "suspended" | "unknown";
1955
+ /** @description Current provider task, such as scheduling, networking, block_device_mapping or spawning. none means no task; unknown tasks remain observable and do not imply failure. */
1956
+ task_state: string;
1957
+ /** Format: int64 */
1958
+ generation: number;
1959
+ /** Format: date-time */
1960
+ observed_at: string | null;
1961
+ restrictions: components["schemas"]["InstanceRestriction"][];
1962
+ task: components["schemas"]["Task"] | null;
1963
+ /** Format: uuid */
1964
+ order_id: string | null;
1965
+ /** Format: uuid */
1966
+ price_id: string | null;
1967
+ /** Format: uuid */
1968
+ subscription_item_id: string | null;
1969
+ /** @enum {string|null} */
1970
+ access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
1971
+ /**
1972
+ * Format: uuid
1973
+ * @description Non-empty when the instance was created from a disk you already had, instead of from an image
1974
+ */
1975
+ source_disk_id: string | null;
1408
1976
  };
1409
1977
  InstanceListResponseBody: {
1410
- items: components["schemas"]["InstanceResource"][] | null;
1978
+ items: components["schemas"]["InstanceResource"][];
1979
+ /** Format: int64 */
1980
+ page: number;
1981
+ /** Format: int64 */
1982
+ page_size: number;
1983
+ /** Format: int64 */
1984
+ total_count?: number;
1411
1985
  };
1412
1986
  LaunchInstanceRequestBody: {
1987
+ /**
1988
+ * Format: uuid
1989
+ * @description Bind a floating IP you already hold, instead of allocating a new one. It must be idle and in
1990
+ * the same region.
1991
+ *
1992
+ * Mutually exclusive with `bandwidth_mbps`: an address you already hold has its own bandwidth
1993
+ * ceiling, set when it was allocated, and changing it is a separate operation.
1994
+ *
1995
+ * Like `bandwidth_mbps`, this happens **inside the creation**: if binding fails, no instance is
1996
+ * created. Binding afterwards is still possible from the instance page, but then it is two
1997
+ * operations and a failure in between leaves an instance you cannot reach.
1998
+ *
1999
+ * Only one instance can be created when it is used — one address binds to one interface.
2000
+ */
2001
+ floating_ip_id?: string;
1413
2002
  /**
1414
2003
  * Format: int64
1415
2004
  * @description Number of instances to create; 1 when omitted. Names are numbered automatically for several
2005
+ * @default 1
1416
2006
  */
1417
2007
  count?: number;
1418
2008
  /** @description Have the platform generate a random password, returned only in this response */
1419
2009
  generate_password?: boolean;
1420
2010
  /**
1421
2011
  * Format: uuid
1422
- * @description A platform image. Exactly one of this and `private_image_id`
2012
+ * @description Boot a disk you already have instead of installing an image. The disk must be available, unattached, and in the same availability zone as the instance type. Exactly one of this, `image_id` and `private_image_id`
2013
+ */
2014
+ boot_disk_id?: string;
2015
+ /**
2016
+ * Format: uuid
2017
+ * @description A platform image, and it must be one currently on sale. Exactly one of this, `private_image_id` and `boot_disk_id`
1423
2018
  */
1424
2019
  image_id?: string;
1425
- /** Format: uuid */
2020
+ /**
2021
+ * Format: uuid
2022
+ * @description An instance type currently on sale. A withdrawn one is rejected even though its identifier still resolves
2023
+ */
1426
2024
  instance_type_id: string;
2025
+ /** @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 */
2026
+ login_username?: string;
1427
2027
  name: string;
1428
- /** @description Root password. Only the SSH public keys of the project are used when omitted */
2028
+ /** @description The password to set, on the login account and on root. Only the SSH public keys of the project are used when omitted */
1429
2029
  password?: string;
1430
2030
  /**
1431
2031
  * Format: uuid
@@ -1434,14 +2034,9 @@ export interface components {
1434
2034
  port_id?: string;
1435
2035
  /**
1436
2036
  * Format: uuid
1437
- * @description A private image. Exactly one of this and `image_id`
2037
+ * @description A private image. Exactly one of this, `image_id` and `boot_disk_id`
1438
2038
  */
1439
2039
  private_image_id?: string;
1440
- /**
1441
- * Format: int64
1442
- * @description System disk capacity in GB. Chosen automatically from the requirement of the image and the platform minimum when omitted
1443
- */
1444
- root_disk_gb?: number;
1445
2040
  /** @description Required when a primary network interface is created, at least one; the default security group is not applied automatically. Ignored together with `port_id`, as the security groups of that interface were fixed when it was created */
1446
2041
  security_group_ids?: string[] | null;
1447
2042
  /**
@@ -1449,24 +2044,51 @@ export interface components {
1449
2044
  * @description Create the primary network interface in this subnet. Exactly one of this and `port_id`
1450
2045
  */
1451
2046
  subnet_id?: string;
2047
+ order: components["schemas"]["OrderOptions"];
2048
+ /** Format: uuid */
2049
+ price_id: string;
2050
+ boot_disk?: components["schemas"]["NewBootDisk"];
2051
+ floating_ip?: components["schemas"]["NewFloatingIP"];
1452
2052
  };
1453
- LaunchInstanceResponseBody: {
1454
- /** @description Non-empty when only some of the instances were created, stating why the sequence stopped */
1455
- failure: string | null;
1456
- /** @description Returned in request order; an array even for a single instance */
1457
- instances: components["schemas"]["InstanceResource"][] | null;
1458
- /** @description Returned only in this response; store it immediately. All instances of a batch share it */
1459
- password: string;
2053
+ SetInstanceLabelsRequestBody: {
2054
+ /** @description The complete set of labels. Whatever is absent here is removed; send an empty object to clear them all. A key may not contain a colon, whitespace or control characters */
2055
+ labels: {
2056
+ [key: string]: string;
2057
+ };
2058
+ };
2059
+ SetInstanceNotesRequestBody: {
2060
+ /** @description The complete note. Send an empty string to clear it */
2061
+ notes: string;
1460
2062
  };
1461
2063
  RenameInstanceRequestBody: {
1462
2064
  name: string;
1463
2065
  };
1464
- ActOnInstanceRequestBody: {
1465
- /** @enum {string} */
1466
- action: "start" | "stop" | "reboot";
1467
- /** @description Applies to `reboot` only. A forced reboot does not wait for the operating system to shut down and unwritten data is lost; use it when the system is unresponsive */
2066
+ RebootInstanceRequestBody: {
2067
+ /** @description A forced reboot does not wait for the operating system to shut down and unwritten data is lost; use it when the system is unresponsive. False when omitted */
1468
2068
  force?: boolean;
1469
2069
  };
2070
+ RunCommandRequestBody: {
2071
+ /** @description Run by the login shell, so pipes, redirection and `&&` work. It cannot read standard input */
2072
+ command: string;
2073
+ /**
2074
+ * Format: int64
2075
+ * @description Kill the command after this long. 60 when omitted
2076
+ */
2077
+ timeout_seconds?: number;
2078
+ };
2079
+ CommandResultResponseBody: {
2080
+ /**
2081
+ * Format: int64
2082
+ * @description What the command exited with, 0 being success. Any other value is the command's own verdict and still arrives as a 200. Null when it was killed rather than exiting on its own, which includes the timeout — null is the absence of a verdict, not a successful one
2083
+ */
2084
+ exit_code: number | null;
2085
+ stderr: string;
2086
+ stdout: string;
2087
+ /** @description True when the command was still running at the timeout and was killed */
2088
+ timed_out: boolean;
2089
+ /** @description True when either stream hit the 1 MiB cap and the rest was discarded */
2090
+ truncated: boolean;
2091
+ };
1470
2092
  ConsoleResponseBody: {
1471
2093
  /** @description Connection address of the remote console; single-use and expires within minutes */
1472
2094
  console_url: string;
@@ -1489,7 +2111,7 @@ export interface components {
1489
2111
  generate_password?: boolean;
1490
2112
  /**
1491
2113
  * Format: uuid
1492
- * @description A platform image. Exactly one of this and `private_image_id`
2114
+ * @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`
1493
2115
  */
1494
2116
  image_id?: string;
1495
2117
  password?: string;
@@ -1510,6 +2132,9 @@ export interface components {
1510
2132
  * @description Must be in the same region and availability zone as the current instance type
1511
2133
  */
1512
2134
  instance_type_id: string;
2135
+ order: components["schemas"]["OrderOptions"];
2136
+ /** Format: uuid */
2137
+ price_id: string;
1513
2138
  };
1514
2139
  AttachDiskRequestBody: {
1515
2140
  /** Format: uuid */
@@ -1520,21 +2145,22 @@ export interface components {
1520
2145
  floating_ip_id: string;
1521
2146
  };
1522
2147
  PortResource: {
1523
- attached_instance_id: string | null;
1524
2148
  /** Format: uuid */
1525
2149
  id: string;
1526
- ipv6_address: string | null;
1527
- /** @description A primary network interface is created and released with its instance and cannot be detached individually */
1528
- is_primary: boolean;
1529
2150
  mac: string | null;
1530
2151
  name: string;
1531
- private_ip: string | null;
1532
2152
  /** Format: uuid */
1533
2153
  private_network_id: string;
1534
2154
  /** @description Floating IPv4 addresses bound to this network interface; an empty array when none are bound */
1535
2155
  public_ips: string[] | null;
1536
- /** Format: uuid */
1537
- subnet_id: string;
2156
+ addresses?: components["schemas"]["PortAddress"][];
2157
+ attachment?: components["schemas"]["PortAttachment"] | null;
2158
+ /** @enum {string} */
2159
+ status: "pending" | "available" | "deleting" | "error" | "unknown";
2160
+ /** Format: int64 */
2161
+ generation: number;
2162
+ /** Format: date-time */
2163
+ observed_at: string | null;
1538
2164
  };
1539
2165
  PortListResponseBody: {
1540
2166
  items: components["schemas"]["PortResource"][] | null;
@@ -1548,6 +2174,12 @@ export interface components {
1548
2174
  action: string;
1549
2175
  /** @description The user who initiated the operation. Empty when the platform performed it */
1550
2176
  actor: string | null;
2177
+ /**
2178
+ * @description The name this user went by at the time of the operation, recorded alongside the operation itself. It is not refreshed afterwards: the record states who acted then, and a name read today is a statement about a different moment.
2179
+ *
2180
+ * Null on entries recorded before this field existed, and on entries performed by the platform. An empty string means the account had no name recorded.
2181
+ */
2182
+ actor_name: string | null;
1551
2183
  /** @description True when the operation was performed by the platform */
1552
2184
  by_platform: boolean;
1553
2185
  /** Format: date-time */
@@ -1560,25 +2192,30 @@ export interface components {
1560
2192
  payload: {
1561
2193
  [key: string]: unknown;
1562
2194
  };
1563
- region_code: string | null;
2195
+ /** Format: uuid */
2196
+ region_id: string | null;
1564
2197
  /** @description Empty for create operations: the id of the new resource is in the response, not in the request path */
1565
2198
  subject_id: string;
1566
2199
  subject_type: string;
1567
2200
  succeeded: boolean;
1568
2201
  };
1569
2202
  OperationLogListResponseBody: {
1570
- items: components["schemas"]["OperationLogResource"][] | null;
2203
+ items: components["schemas"]["OperationLogResource"][];
1571
2204
  /** Format: int64 */
1572
- total: number;
2205
+ page: number;
2206
+ /** Format: int64 */
2207
+ page_size: number;
2208
+ /** Format: int64 */
2209
+ total_count?: number;
1573
2210
  };
1574
2211
  CreatePortRequestBody: {
1575
2212
  name?: string;
1576
- /** @description The private address to assign. Allocated automatically when omitted */
1577
- private_ip?: string;
1578
2213
  /** @description At least one, and all must belong to the same private network */
1579
2214
  security_group_ids: string[] | null;
1580
2215
  /** Format: uuid */
1581
2216
  subnet_id: string;
2217
+ /** @description The private address to assign. Allocated automatically when omitted */
2218
+ address?: string;
1582
2219
  };
1583
2220
  PrivateImageResource: {
1584
2221
  architecture: string;
@@ -1588,6 +2225,8 @@ export interface components {
1588
2225
  failure: string | null;
1589
2226
  /** Format: uuid */
1590
2227
  id: string;
2228
+ /** @description The account this image lets you log in as. The password set at creation belongs to this account */
2229
+ login_username: string;
1591
2230
  /**
1592
2231
  * Format: int64
1593
2232
  * @description The system disk of an instance created from this image cannot be smaller than this
@@ -1601,8 +2240,8 @@ export interface components {
1601
2240
  name: string;
1602
2241
  os_family: string;
1603
2242
  os_version: string;
1604
- /** @description An image can only be used in the region that holds it */
1605
- region_code: string;
2243
+ /** Format: uuid */
2244
+ region_id: string;
1606
2245
  /**
1607
2246
  * Format: int64
1608
2247
  * @description Storage occupied by the image; 0 until the capture completes
@@ -1617,9 +2256,28 @@ export interface components {
1617
2256
  status: "provisioning" | "uploading" | "available" | "deleting" | "error";
1618
2257
  /** @description False means a new password can only be set by rebuilding an instance created from this image */
1619
2258
  supports_password_reset: boolean;
2259
+ /** Format: uuid */
2260
+ order_id: string | null;
2261
+ /** Format: uuid */
2262
+ price_id: string | null;
2263
+ /** Format: uuid */
2264
+ subscription_item_id: string | null;
2265
+ /** @enum {string|null} */
2266
+ access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
2267
+ task: components["schemas"]["Task"] | null;
2268
+ /** Format: int64 */
2269
+ generation: number;
2270
+ /** Format: date-time */
2271
+ observed_at: string | null;
1620
2272
  };
1621
2273
  PrivateImageListResponseBody: {
1622
- items: components["schemas"]["PrivateImageResource"][] | null;
2274
+ items: components["schemas"]["PrivateImageResource"][];
2275
+ /** Format: int64 */
2276
+ page: number;
2277
+ /** Format: int64 */
2278
+ page_size: number;
2279
+ /** Format: int64 */
2280
+ total_count?: number;
1623
2281
  };
1624
2282
  CreatePrivateImageRequestBody: {
1625
2283
  /**
@@ -1628,6 +2286,9 @@ export interface components {
1628
2286
  */
1629
2287
  instance_id: string;
1630
2288
  name: string;
2289
+ /** Format: uuid */
2290
+ price_id: string;
2291
+ order: components["schemas"]["OrderOptions"];
1631
2292
  };
1632
2293
  RenamePrivateImageRequestBody: {
1633
2294
  name: string;
@@ -1640,9 +2301,10 @@ export interface components {
1640
2301
  /** Format: uuid */
1641
2302
  id: string;
1642
2303
  name: string;
1643
- region_code: string;
2304
+ /** Format: uuid */
2305
+ region_id: string;
1644
2306
  /** @enum {string} */
1645
- status: "available" | "error";
2307
+ status: "pending" | "available" | "deleting" | "error" | "unknown";
1646
2308
  /** Format: date-time */
1647
2309
  updated_at: string;
1648
2310
  };
@@ -1653,7 +2315,8 @@ export interface components {
1653
2315
  /** @description Must be an RFC 1918 private CIDR with a prefix length between /8 and /24, for example `10.0.0.0/16` */
1654
2316
  cidr: string;
1655
2317
  name: string;
1656
- region_code: string;
2318
+ /** Format: uuid */
2319
+ region_id: string;
1657
2320
  };
1658
2321
  RenamePrivateNetworkRequestBody: {
1659
2322
  name: string;
@@ -1669,13 +2332,19 @@ export interface components {
1669
2332
  status: "pending" | "active" | "draining";
1670
2333
  };
1671
2334
  RouteResource: {
2335
+ /**
2336
+ * Format: uuid
2337
+ * @description System-owned peering route. Delete the peering to remove this route.
2338
+ */
2339
+ peering_id?: string;
1672
2340
  /** Format: date-time */
1673
2341
  created_at: string;
1674
2342
  description: string;
1675
2343
  destination: string;
1676
2344
  /** Format: uuid */
1677
2345
  id: string;
1678
- nexthop: string;
2346
+ /** @description Present for custom routes; peering routes expose peering_id instead. */
2347
+ nexthop?: string;
1679
2348
  };
1680
2349
  RouteListResponseBody: {
1681
2350
  items: components["schemas"]["RouteResource"][] | null;
@@ -1782,8 +2451,11 @@ export interface components {
1782
2451
  remote_ip_prefix?: string;
1783
2452
  };
1784
2453
  SnapshotResource: {
1785
- /** @description A disk restored from this snapshot must reside in this availability zone */
1786
- availability_zone: string;
2454
+ /**
2455
+ * Format: uuid
2456
+ * @description A disk restored from this snapshot must reside in this availability zone
2457
+ */
2458
+ availability_zone_id: string;
1787
2459
  /** Format: date-time */
1788
2460
  created_at: string;
1789
2461
  /** Format: uuid */
@@ -1791,7 +2463,8 @@ export interface components {
1791
2463
  /** Format: uuid */
1792
2464
  id: string;
1793
2465
  name: string;
1794
- region_code: string;
2466
+ /** Format: uuid */
2467
+ region_id: string;
1795
2468
  /**
1796
2469
  * Format: int64
1797
2470
  * @description Capacity of the source disk when the snapshot was created. A disk restored from it cannot be smaller
@@ -1799,6 +2472,19 @@ export interface components {
1799
2472
  size_gb: number;
1800
2473
  /** @enum {string} */
1801
2474
  status: "provisioning" | "available" | "restoring" | "deleting" | "error";
2475
+ /** Format: uuid */
2476
+ order_id: string | null;
2477
+ /** Format: uuid */
2478
+ price_id: string | null;
2479
+ /** Format: uuid */
2480
+ subscription_item_id: string | null;
2481
+ /** @enum {string|null} */
2482
+ access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
2483
+ task: components["schemas"]["Task"] | null;
2484
+ /** Format: int64 */
2485
+ generation: number;
2486
+ /** Format: date-time */
2487
+ observed_at: string | null;
1802
2488
  };
1803
2489
  SnapshotListResponseBody: {
1804
2490
  items: components["schemas"]["SnapshotResource"][] | null;
@@ -1807,6 +2493,9 @@ export interface components {
1807
2493
  /** Format: uuid */
1808
2494
  disk_id: string;
1809
2495
  name: string;
2496
+ /** Format: uuid */
2497
+ price_id: string;
2498
+ order: components["schemas"]["OrderOptions"];
1810
2499
  };
1811
2500
  RenameSecurityGroupRequestBody: {
1812
2501
  name: string;
@@ -1814,6 +2503,217 @@ export interface components {
1814
2503
  RenameSnapshotRequestBody: {
1815
2504
  name: string;
1816
2505
  };
2506
+ /** @description Purchase options. Reuse idempotency_key for retries of the same purchase, including resource creation. Different parameters with the same key return HTTP 409. Replays identify the original purchase and do not create another order. */
2507
+ OrderOptions: {
2508
+ idempotency_key: string;
2509
+ /**
2510
+ * @description Defaults to true. When true, the purchase is paid from available account funds and applicable grants when it is placed. If they do not cover the amount due, the request fails with HTTP 422 and code BILLING_INSUFFICIENT_FUNDS; no order is created and nothing is charged. The idempotency key remains bound to the refused request. Retrying with the same key returns HTTP 409 with code ORDER_CLOSED, and purchasing again requires a new idempotency key. When false, the order is created without payment, and its invoice, if any, is paid through Billing.
2511
+ * @default true
2512
+ */
2513
+ auto_pay?: boolean;
2514
+ expected_amount?: string;
2515
+ redemption_code?: string;
2516
+ };
2517
+ /** @description Identifies the original purchase. Replays retain these identifiers. Read the order for purchase progress and its invoice for amounts and payment status. */
2518
+ PlacedOrder: {
2519
+ /**
2520
+ * Format: uuid
2521
+ * @description The invoice for this purchase. Null when there is no immediate invoice. Replays retain this identifier; read the invoice for its current payment state.
2522
+ */
2523
+ invoice_id: string | null;
2524
+ /**
2525
+ * Format: uuid
2526
+ * @description The original order, including for purchases without an immediate charge. Payment alone does not imply that the service has completed delivery.
2527
+ */
2528
+ order_id: string;
2529
+ };
2530
+ /** @description Identifies the Compute task and the Billing order of a purchase. Work on the purchase starts after the order's invoice is paid, or without waiting when the order has no immediate invoice. Track the task for completion. */
2531
+ PurchaseResult: {
2532
+ /**
2533
+ * Format: uuid
2534
+ * @description The original Compute task. Replays retain this identifier, including after failure or cancellation.
2535
+ */
2536
+ task_id: string;
2537
+ order: components["schemas"]["PlacedOrder"];
2538
+ };
2539
+ /** @description A system disk purchased in the same order. Required when booting from an image; mutually exclusive with boot_disk_id. */
2540
+ NewBootDisk: {
2541
+ /**
2542
+ * Format: uuid
2543
+ * @description A system disk type on sale in the availability zone of the instance, one whose `for_system` is true
2544
+ */
2545
+ disk_type_id: string;
2546
+ /** Format: int64 */
2547
+ size_gb: number;
2548
+ /** Format: uuid */
2549
+ price_id: string;
2550
+ /** @default true */
2551
+ delete_with_instance?: boolean;
2552
+ };
2553
+ /** @description An address and bandwidth purchased in the same order. Mutually exclusive with floating_ip_id. */
2554
+ NewFloatingIP: {
2555
+ /** Format: uuid */
2556
+ price_id: string;
2557
+ /** Format: uuid */
2558
+ bandwidth_price_id: string;
2559
+ /** Format: int64 */
2560
+ bandwidth_mbps: number;
2561
+ /** Format: uuid */
2562
+ ipv4_pool_id: string;
2563
+ };
2564
+ /** @description An independent restriction on use. Removing one restriction never removes another source’s restriction or changes the user’s desired power state. */
2565
+ InstanceRestriction: {
2566
+ /** Format: uuid */
2567
+ id: string;
2568
+ /** @enum {string} */
2569
+ source: "billing" | "iam" | "operator";
2570
+ source_id: string;
2571
+ reason_code: string;
2572
+ /** Format: date-time */
2573
+ created_at: string;
2574
+ };
2575
+ PowerRequest: {
2576
+ /** Format: int64 */
2577
+ expected_generation?: number;
2578
+ };
2579
+ /** @description A requested action and its outcome. Query it through the service that accepted the request, using the same project or administrator credentials. Only succeeded confirms completion. Stopping a wait does not cancel the action. Cancellation is available only where the action explicitly supports it. */
2580
+ Task: {
2581
+ /** Format: uuid */
2582
+ id: string;
2583
+ /** @description Action requested from the owning service. */
2584
+ type: string;
2585
+ /** @enum {string} */
2586
+ state: "pending" | "running" | "succeeded" | "failed" | "canceled";
2587
+ /** @description Terminal failure. Absent while work can still recover. */
2588
+ error?: components["schemas"]["Error"];
2589
+ /** Format: date-time */
2590
+ created_at: string;
2591
+ /** Format: date-time */
2592
+ started_at: string | null;
2593
+ /** Format: date-time */
2594
+ completed_at: string | null;
2595
+ };
2596
+ PortAddress: {
2597
+ /** Format: uuid */
2598
+ id: string;
2599
+ /** Format: uuid */
2600
+ subnet_id: string;
2601
+ address: string;
2602
+ is_primary: boolean;
2603
+ /** @enum {string} */
2604
+ state: "reserved" | "assigned" | "releasing" | "released" | "unknown";
2605
+ /** Format: date-time */
2606
+ assigned_at: string | null;
2607
+ /** Format: date-time */
2608
+ released_at: string | null;
2609
+ };
2610
+ DiskAttachment: {
2611
+ /** Format: uuid */
2612
+ id: string;
2613
+ /** Format: uuid */
2614
+ instance_id: string;
2615
+ /** Format: uuid */
2616
+ disk_id: string;
2617
+ /** @enum {string} */
2618
+ role: "boot" | "data";
2619
+ delete_with_instance: boolean;
2620
+ /** @enum {string} */
2621
+ state: "reserved" | "attaching" | "attached" | "detaching" | "released" | "unknown";
2622
+ /** Format: date-time */
2623
+ attached_at: string | null;
2624
+ /** Format: date-time */
2625
+ detached_at: string | null;
2626
+ /** Format: date-time */
2627
+ released_at: string | null;
2628
+ device: string | null;
2629
+ };
2630
+ DiskAttachmentList: {
2631
+ items: components["schemas"]["DiskAttachment"][];
2632
+ /** Format: int64 */
2633
+ page: number;
2634
+ /** Format: int64 */
2635
+ page_size: number;
2636
+ /** Format: int64 */
2637
+ total_count: number;
2638
+ };
2639
+ PortAttachment: {
2640
+ /** Format: uuid */
2641
+ id: string;
2642
+ /** Format: uuid */
2643
+ instance_id: string;
2644
+ /** Format: uuid */
2645
+ port_id: string;
2646
+ /** @enum {string} */
2647
+ role: "primary" | "additional";
2648
+ delete_with_instance: boolean;
2649
+ /** @enum {string} */
2650
+ state: "reserved" | "attaching" | "attached" | "detaching" | "released" | "unknown";
2651
+ /** Format: date-time */
2652
+ attached_at: string | null;
2653
+ /** Format: date-time */
2654
+ detached_at: string | null;
2655
+ /** Format: date-time */
2656
+ released_at: string | null;
2657
+ };
2658
+ PortAttachmentList: {
2659
+ items: components["schemas"]["PortAttachment"][];
2660
+ /** Format: int64 */
2661
+ page: number;
2662
+ /** Format: int64 */
2663
+ page_size: number;
2664
+ /** Format: int64 */
2665
+ total_count: number;
2666
+ };
2667
+ LaunchInstanceResponseBody: {
2668
+ /** @description Instances created by this operation. Empty before resource creation starts; a replay may include identifiers produced since the first response. Historical identifiers do not imply that the instances still exist. */
2669
+ instance_ids: string[];
2670
+ /**
2671
+ * Format: uuid
2672
+ * @description The original Compute task. Replays retain this identifier, including after failure or cancellation.
2673
+ */
2674
+ task_id: string;
2675
+ order: components["schemas"]["PlacedOrder"];
2676
+ /** @description Generated login password, returned only by the initial response. Null on replay or when no password was generated. A retry never generates or resets a password. */
2677
+ password: string | null;
2678
+ };
2679
+ IPv4PoolResource: {
2680
+ /** Format: uuid */
2681
+ id: string;
2682
+ /** Format: uuid */
2683
+ region_id: string;
2684
+ name: string;
2685
+ /** Format: uuid */
2686
+ plan_id: string | null;
2687
+ /** Format: uuid */
2688
+ bandwidth_plan_id: string | null;
2689
+ };
2690
+ IPv4PoolListResponseBody: {
2691
+ items: components["schemas"]["IPv4PoolResource"][];
2692
+ /** Format: int64 */
2693
+ page: number;
2694
+ /** Format: int64 */
2695
+ page_size: number;
2696
+ /** Format: int64 */
2697
+ total_count?: number;
2698
+ };
2699
+ IPv4Binding: {
2700
+ /** Format: uuid */
2701
+ id: string;
2702
+ /** Format: uuid */
2703
+ ipv4_allocation_id: string;
2704
+ /** Format: uuid */
2705
+ port_address_id: string;
2706
+ address: string;
2707
+ fixed_ip: string;
2708
+ /** @enum {string} */
2709
+ state: "binding" | "bound" | "unbinding" | "released" | "unknown";
2710
+ /** Format: date-time */
2711
+ bound_at: string | null;
2712
+ /** Format: date-time */
2713
+ unbound_at: string | null;
2714
+ /** Format: date-time */
2715
+ released_at: string | null;
2716
+ };
1817
2717
  };
1818
2718
  responses: never;
1819
2719
  parameters: never;
@@ -1874,7 +2774,16 @@ export interface operations {
1874
2774
  [name: string]: unknown;
1875
2775
  };
1876
2776
  content: {
1877
- "application/json": components["schemas"]["BackupResource"];
2777
+ "application/json": components["schemas"]["PurchaseResult"];
2778
+ };
2779
+ };
2780
+ /** @description The idempotency key was already used with different parameters in this scope. */
2781
+ 409: {
2782
+ headers: {
2783
+ [name: string]: unknown;
2784
+ };
2785
+ content: {
2786
+ "application/json": components["schemas"]["Error"];
1878
2787
  };
1879
2788
  };
1880
2789
  /** @description Error */
@@ -1922,7 +2831,10 @@ export interface operations {
1922
2831
  "delete-backup": {
1923
2832
  parameters: {
1924
2833
  query?: never;
1925
- header?: never;
2834
+ header: {
2835
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
2836
+ "Idempotency-Key": string;
2837
+ };
1926
2838
  path: {
1927
2839
  backupId: string;
1928
2840
  };
@@ -1930,12 +2842,23 @@ export interface operations {
1930
2842
  };
1931
2843
  requestBody?: never;
1932
2844
  responses: {
1933
- /** @description No Content */
1934
- 204: {
2845
+ /** @description The action was accepted. Wait for the returned task to finish. */
2846
+ 202: {
1935
2847
  headers: {
1936
2848
  [name: string]: unknown;
1937
2849
  };
1938
- content?: never;
2850
+ content: {
2851
+ "application/json": components["schemas"]["Task"];
2852
+ };
2853
+ };
2854
+ /** @description The idempotency key was already used with different parameters in this scope. */
2855
+ 409: {
2856
+ headers: {
2857
+ [name: string]: unknown;
2858
+ };
2859
+ content: {
2860
+ "application/json": components["schemas"]["Error"];
2861
+ };
1939
2862
  };
1940
2863
  /** @description Error */
1941
2864
  default: {
@@ -2004,7 +2927,16 @@ export interface operations {
2004
2927
  [name: string]: unknown;
2005
2928
  };
2006
2929
  content: {
2007
- "application/json": components["schemas"]["DiskResource"];
2930
+ "application/json": components["schemas"]["PurchaseResult"];
2931
+ };
2932
+ };
2933
+ /** @description The idempotency key was already used with different parameters in this scope. */
2934
+ 409: {
2935
+ headers: {
2936
+ [name: string]: unknown;
2937
+ };
2938
+ content: {
2939
+ "application/json": components["schemas"]["Error"];
2008
2940
  };
2009
2941
  };
2010
2942
  /** @description Error */
@@ -2021,7 +2953,9 @@ export interface operations {
2021
2953
  "list-disk-types": {
2022
2954
  parameters: {
2023
2955
  query: {
2024
- region_code: string;
2956
+ region_id: string;
2957
+ /** @description `true` lists only system disk types and `false` only data disk types. Both are listed when omitted. */
2958
+ for_system?: boolean;
2025
2959
  };
2026
2960
  header?: never;
2027
2961
  path?: never;
@@ -2049,10 +2983,43 @@ export interface operations {
2049
2983
  };
2050
2984
  };
2051
2985
  };
2986
+ "get-disk-type": {
2987
+ parameters: {
2988
+ query?: never;
2989
+ header?: never;
2990
+ path: {
2991
+ diskTypeId: string;
2992
+ };
2993
+ cookie?: never;
2994
+ };
2995
+ requestBody?: never;
2996
+ responses: {
2997
+ /** @description OK */
2998
+ 200: {
2999
+ headers: {
3000
+ [name: string]: unknown;
3001
+ };
3002
+ content: {
3003
+ "application/json": components["schemas"]["DiskTypeResource"];
3004
+ };
3005
+ };
3006
+ /** @description Error */
3007
+ default: {
3008
+ headers: {
3009
+ [name: string]: unknown;
3010
+ };
3011
+ content: {
3012
+ "application/json": components["schemas"]["Error"];
3013
+ };
3014
+ };
3015
+ };
3016
+ };
2052
3017
  "list-images": {
2053
3018
  parameters: {
2054
3019
  query: {
2055
- region_code: string;
3020
+ region_id: string;
3021
+ page?: number;
3022
+ page_size?: number;
2056
3023
  };
2057
3024
  header?: never;
2058
3025
  path?: never;
@@ -2083,7 +3050,9 @@ export interface operations {
2083
3050
  "list-instance-types": {
2084
3051
  parameters: {
2085
3052
  query: {
2086
- region_code: string;
3053
+ region_id: string;
3054
+ page?: number;
3055
+ page_size?: number;
2087
3056
  };
2088
3057
  header?: never;
2089
3058
  path?: never;
@@ -2145,7 +3114,7 @@ export interface operations {
2145
3114
  query?: never;
2146
3115
  header?: never;
2147
3116
  path: {
2148
- regionCode: string;
3117
+ regionId: string;
2149
3118
  };
2150
3119
  cookie?: never;
2151
3120
  };
@@ -2174,9 +3143,9 @@ export interface operations {
2174
3143
  "list-disks": {
2175
3144
  parameters: {
2176
3145
  query?: {
2177
- region_code?: string;
3146
+ region_id?: string;
2178
3147
  /** @description Supplied together with `region_code` to filter attachable disks */
2179
- availability_zone?: string;
3148
+ availability_zone_id?: string;
2180
3149
  };
2181
3150
  header?: never;
2182
3151
  path?: never;
@@ -2223,7 +3192,16 @@ export interface operations {
2223
3192
  [name: string]: unknown;
2224
3193
  };
2225
3194
  content: {
2226
- "application/json": components["schemas"]["DiskResource"];
3195
+ "application/json": components["schemas"]["PurchaseResult"];
3196
+ };
3197
+ };
3198
+ /** @description The idempotency key was already used with different parameters in this scope. */
3199
+ 409: {
3200
+ headers: {
3201
+ [name: string]: unknown;
3202
+ };
3203
+ content: {
3204
+ "application/json": components["schemas"]["Error"];
2227
3205
  };
2228
3206
  };
2229
3207
  /** @description Error */
@@ -2271,7 +3249,10 @@ export interface operations {
2271
3249
  "delete-disk": {
2272
3250
  parameters: {
2273
3251
  query?: never;
2274
- header?: never;
3252
+ header: {
3253
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
3254
+ "Idempotency-Key": string;
3255
+ };
2275
3256
  path: {
2276
3257
  diskId: string;
2277
3258
  };
@@ -2279,12 +3260,23 @@ export interface operations {
2279
3260
  };
2280
3261
  requestBody?: never;
2281
3262
  responses: {
2282
- /** @description No Content */
2283
- 204: {
3263
+ /** @description The action was accepted. Wait for the returned task to finish. */
3264
+ 202: {
2284
3265
  headers: {
2285
3266
  [name: string]: unknown;
2286
3267
  };
2287
- content?: never;
3268
+ content: {
3269
+ "application/json": components["schemas"]["Task"];
3270
+ };
3271
+ };
3272
+ /** @description The idempotency key was already used with different parameters in this scope. */
3273
+ 409: {
3274
+ headers: {
3275
+ [name: string]: unknown;
3276
+ };
3277
+ content: {
3278
+ "application/json": components["schemas"]["Error"];
3279
+ };
2288
3280
  };
2289
3281
  /** @description Error */
2290
3282
  default: {
@@ -2353,7 +3345,16 @@ export interface operations {
2353
3345
  [name: string]: unknown;
2354
3346
  };
2355
3347
  content: {
2356
- "application/json": components["schemas"]["DiskResource"];
3348
+ "application/json": components["schemas"]["PurchaseResult"];
3349
+ };
3350
+ };
3351
+ /** @description The idempotency key was already used with different parameters in this scope. */
3352
+ 409: {
3353
+ headers: {
3354
+ [name: string]: unknown;
3355
+ };
3356
+ content: {
3357
+ "application/json": components["schemas"]["Error"];
2357
3358
  };
2358
3359
  };
2359
3360
  /** @description Error */
@@ -2370,7 +3371,10 @@ export interface operations {
2370
3371
  "revert-disk": {
2371
3372
  parameters: {
2372
3373
  query?: never;
2373
- header?: never;
3374
+ header: {
3375
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
3376
+ "Idempotency-Key": string;
3377
+ };
2374
3378
  path: {
2375
3379
  diskId: string;
2376
3380
  };
@@ -2382,13 +3386,22 @@ export interface operations {
2382
3386
  };
2383
3387
  };
2384
3388
  responses: {
2385
- /** @description OK */
2386
- 200: {
3389
+ /** @description The action was accepted. Wait for the returned task to finish. */
3390
+ 202: {
2387
3391
  headers: {
2388
3392
  [name: string]: unknown;
2389
3393
  };
2390
3394
  content: {
2391
- "application/json": components["schemas"]["DiskResource"];
3395
+ "application/json": components["schemas"]["Task"];
3396
+ };
3397
+ };
3398
+ /** @description The idempotency key was already used with different parameters in this scope. */
3399
+ 409: {
3400
+ headers: {
3401
+ [name: string]: unknown;
3402
+ };
3403
+ content: {
3404
+ "application/json": components["schemas"]["Error"];
2392
3405
  };
2393
3406
  };
2394
3407
  /** @description Error */
@@ -2450,7 +3463,16 @@ export interface operations {
2450
3463
  [name: string]: unknown;
2451
3464
  };
2452
3465
  content: {
2453
- "application/json": components["schemas"]["FloatingIPResource"];
3466
+ "application/json": components["schemas"]["PurchaseResult"];
3467
+ };
3468
+ };
3469
+ /** @description The idempotency key was already used with different parameters in this scope. */
3470
+ 409: {
3471
+ headers: {
3472
+ [name: string]: unknown;
3473
+ };
3474
+ content: {
3475
+ "application/json": components["schemas"]["Error"];
2454
3476
  };
2455
3477
  };
2456
3478
  /** @description Error */
@@ -2498,7 +3520,10 @@ export interface operations {
2498
3520
  "release-floating-ip": {
2499
3521
  parameters: {
2500
3522
  query?: never;
2501
- header?: never;
3523
+ header: {
3524
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
3525
+ "Idempotency-Key": string;
3526
+ };
2502
3527
  path: {
2503
3528
  floatingIpId: string;
2504
3529
  };
@@ -2506,12 +3531,23 @@ export interface operations {
2506
3531
  };
2507
3532
  requestBody?: never;
2508
3533
  responses: {
2509
- /** @description No Content */
2510
- 204: {
3534
+ /** @description The release has been accepted. */
3535
+ 202: {
2511
3536
  headers: {
2512
3537
  [name: string]: unknown;
2513
3538
  };
2514
- content?: never;
3539
+ content: {
3540
+ "application/json": components["schemas"]["Task"];
3541
+ };
3542
+ };
3543
+ /** @description The idempotency key was already used with different parameters in this scope. */
3544
+ 409: {
3545
+ headers: {
3546
+ [name: string]: unknown;
3547
+ };
3548
+ content: {
3549
+ "application/json": components["schemas"]["Error"];
3550
+ };
2515
3551
  };
2516
3552
  /** @description Error */
2517
3553
  default: {
@@ -2545,7 +3581,16 @@ export interface operations {
2545
3581
  [name: string]: unknown;
2546
3582
  };
2547
3583
  content: {
2548
- "application/json": components["schemas"]["FloatingIPResource"];
3584
+ "application/json": components["schemas"]["PurchaseResult"];
3585
+ };
3586
+ };
3587
+ /** @description The idempotency key was already used with different parameters in this scope. */
3588
+ 409: {
3589
+ headers: {
3590
+ [name: string]: unknown;
3591
+ };
3592
+ content: {
3593
+ "application/json": components["schemas"]["Error"];
2549
3594
  };
2550
3595
  };
2551
3596
  /** @description Error */
@@ -2611,7 +3656,157 @@ export interface operations {
2611
3656
  [name: string]: unknown;
2612
3657
  };
2613
3658
  content: {
2614
- "application/json": components["schemas"]["FloatingIPResource"];
3659
+ "application/json": components["schemas"]["FloatingIPResource"];
3660
+ };
3661
+ };
3662
+ /** @description Error */
3663
+ default: {
3664
+ headers: {
3665
+ [name: string]: unknown;
3666
+ };
3667
+ content: {
3668
+ "application/json": components["schemas"]["Error"];
3669
+ };
3670
+ };
3671
+ };
3672
+ };
3673
+ "list-instances": {
3674
+ parameters: {
3675
+ query?: {
3676
+ /** @description Only instances carrying this label, written as `key:value` — for example `env:prod`. Both halves are matched exactly */
3677
+ label?: string;
3678
+ page?: number;
3679
+ page_size?: number;
3680
+ };
3681
+ header?: never;
3682
+ path?: never;
3683
+ cookie?: never;
3684
+ };
3685
+ requestBody?: never;
3686
+ responses: {
3687
+ /** @description OK */
3688
+ 200: {
3689
+ headers: {
3690
+ [name: string]: unknown;
3691
+ };
3692
+ content: {
3693
+ "application/json": components["schemas"]["InstanceListResponseBody"];
3694
+ };
3695
+ };
3696
+ /** @description Error */
3697
+ default: {
3698
+ headers: {
3699
+ [name: string]: unknown;
3700
+ };
3701
+ content: {
3702
+ "application/json": components["schemas"]["Error"];
3703
+ };
3704
+ };
3705
+ };
3706
+ };
3707
+ "launch-instance": {
3708
+ parameters: {
3709
+ query?: never;
3710
+ header?: never;
3711
+ path?: never;
3712
+ cookie?: never;
3713
+ };
3714
+ requestBody: {
3715
+ content: {
3716
+ "application/json": components["schemas"]["LaunchInstanceRequestBody"];
3717
+ };
3718
+ };
3719
+ responses: {
3720
+ /** @description Accepted */
3721
+ 202: {
3722
+ headers: {
3723
+ [name: string]: unknown;
3724
+ };
3725
+ content: {
3726
+ "application/json": components["schemas"]["LaunchInstanceResponseBody"];
3727
+ };
3728
+ };
3729
+ /** @description The idempotency key was already used with different parameters in this scope. */
3730
+ 409: {
3731
+ headers: {
3732
+ [name: string]: unknown;
3733
+ };
3734
+ content: {
3735
+ "application/json": components["schemas"]["Error"];
3736
+ };
3737
+ };
3738
+ /** @description Error */
3739
+ default: {
3740
+ headers: {
3741
+ [name: string]: unknown;
3742
+ };
3743
+ content: {
3744
+ "application/json": components["schemas"]["Error"];
3745
+ };
3746
+ };
3747
+ };
3748
+ };
3749
+ "get-instance": {
3750
+ parameters: {
3751
+ query?: never;
3752
+ header?: never;
3753
+ path: {
3754
+ instanceId: string;
3755
+ };
3756
+ cookie?: never;
3757
+ };
3758
+ requestBody?: never;
3759
+ responses: {
3760
+ /** @description OK */
3761
+ 200: {
3762
+ headers: {
3763
+ [name: string]: unknown;
3764
+ };
3765
+ content: {
3766
+ "application/json": components["schemas"]["InstanceResource"];
3767
+ };
3768
+ };
3769
+ /** @description Error */
3770
+ default: {
3771
+ headers: {
3772
+ [name: string]: unknown;
3773
+ };
3774
+ content: {
3775
+ "application/json": components["schemas"]["Error"];
3776
+ };
3777
+ };
3778
+ };
3779
+ };
3780
+ "delete-instance": {
3781
+ parameters: {
3782
+ query?: never;
3783
+ header: {
3784
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
3785
+ "Idempotency-Key": string;
3786
+ };
3787
+ path: {
3788
+ instanceId: string;
3789
+ };
3790
+ cookie?: never;
3791
+ };
3792
+ requestBody?: never;
3793
+ responses: {
3794
+ /** @description The action was accepted. Wait for the returned task to finish. */
3795
+ 202: {
3796
+ headers: {
3797
+ [name: string]: unknown;
3798
+ };
3799
+ content: {
3800
+ "application/json": components["schemas"]["Task"];
3801
+ };
3802
+ };
3803
+ /** @description The idempotency key was already used with different parameters in this scope. */
3804
+ 409: {
3805
+ headers: {
3806
+ [name: string]: unknown;
3807
+ };
3808
+ content: {
3809
+ "application/json": components["schemas"]["Error"];
2615
3810
  };
2616
3811
  };
2617
3812
  /** @description Error */
@@ -2625,14 +3820,20 @@ export interface operations {
2625
3820
  };
2626
3821
  };
2627
3822
  };
2628
- "list-instances": {
3823
+ "rename-instance": {
2629
3824
  parameters: {
2630
3825
  query?: never;
2631
3826
  header?: never;
2632
- path?: never;
3827
+ path: {
3828
+ instanceId: string;
3829
+ };
2633
3830
  cookie?: never;
2634
3831
  };
2635
- requestBody?: never;
3832
+ requestBody: {
3833
+ content: {
3834
+ "application/json": components["schemas"]["RenameInstanceRequestBody"];
3835
+ };
3836
+ };
2636
3837
  responses: {
2637
3838
  /** @description OK */
2638
3839
  200: {
@@ -2640,7 +3841,7 @@ export interface operations {
2640
3841
  [name: string]: unknown;
2641
3842
  };
2642
3843
  content: {
2643
- "application/json": components["schemas"]["InstanceListResponseBody"];
3844
+ "application/json": components["schemas"]["InstanceResource"];
2644
3845
  };
2645
3846
  };
2646
3847
  /** @description Error */
@@ -2654,26 +3855,28 @@ export interface operations {
2654
3855
  };
2655
3856
  };
2656
3857
  };
2657
- "launch-instance": {
3858
+ "run-instance-command": {
2658
3859
  parameters: {
2659
3860
  query?: never;
2660
3861
  header?: never;
2661
- path?: never;
3862
+ path: {
3863
+ instanceId: string;
3864
+ };
2662
3865
  cookie?: never;
2663
3866
  };
2664
3867
  requestBody: {
2665
3868
  content: {
2666
- "application/json": components["schemas"]["LaunchInstanceRequestBody"];
3869
+ "application/json": components["schemas"]["RunCommandRequestBody"];
2667
3870
  };
2668
3871
  };
2669
3872
  responses: {
2670
- /** @description Created */
2671
- 201: {
3873
+ /** @description OK */
3874
+ 200: {
2672
3875
  headers: {
2673
3876
  [name: string]: unknown;
2674
3877
  };
2675
3878
  content: {
2676
- "application/json": components["schemas"]["LaunchInstanceResponseBody"];
3879
+ "application/json": components["schemas"]["CommandResultResponseBody"];
2677
3880
  };
2678
3881
  };
2679
3882
  /** @description Error */
@@ -2687,7 +3890,7 @@ export interface operations {
2687
3890
  };
2688
3891
  };
2689
3892
  };
2690
- "get-instance": {
3893
+ "open-instance-console": {
2691
3894
  parameters: {
2692
3895
  query?: never;
2693
3896
  header?: never;
@@ -2704,7 +3907,7 @@ export interface operations {
2704
3907
  [name: string]: unknown;
2705
3908
  };
2706
3909
  content: {
2707
- "application/json": components["schemas"]["InstanceResource"];
3910
+ "application/json": components["schemas"]["ConsoleResponseBody"];
2708
3911
  };
2709
3912
  };
2710
3913
  /** @description Error */
@@ -2718,9 +3921,12 @@ export interface operations {
2718
3921
  };
2719
3922
  };
2720
3923
  };
2721
- "delete-instance": {
3924
+ "get-instance-console-output": {
2722
3925
  parameters: {
2723
- query?: never;
3926
+ query?: {
3927
+ /** @description Number of trailing lines to return; 0 returns the entire output */
3928
+ lines?: number;
3929
+ };
2724
3930
  header?: never;
2725
3931
  path: {
2726
3932
  instanceId: string;
@@ -2729,12 +3935,14 @@ export interface operations {
2729
3935
  };
2730
3936
  requestBody?: never;
2731
3937
  responses: {
2732
- /** @description No Content */
2733
- 204: {
3938
+ /** @description OK */
3939
+ 200: {
2734
3940
  headers: {
2735
3941
  [name: string]: unknown;
2736
3942
  };
2737
- content?: never;
3943
+ content: {
3944
+ "application/json": components["schemas"]["ConsoleOutputResponseBody"];
3945
+ };
2738
3946
  };
2739
3947
  /** @description Error */
2740
3948
  default: {
@@ -2747,7 +3955,7 @@ export interface operations {
2747
3955
  };
2748
3956
  };
2749
3957
  };
2750
- "rename-instance": {
3958
+ "set-instance-labels": {
2751
3959
  parameters: {
2752
3960
  query?: never;
2753
3961
  header?: never;
@@ -2758,7 +3966,7 @@ export interface operations {
2758
3966
  };
2759
3967
  requestBody: {
2760
3968
  content: {
2761
- "application/json": components["schemas"]["RenameInstanceRequestBody"];
3969
+ "application/json": components["schemas"]["SetInstanceLabelsRequestBody"];
2762
3970
  };
2763
3971
  };
2764
3972
  responses: {
@@ -2782,7 +3990,7 @@ export interface operations {
2782
3990
  };
2783
3991
  };
2784
3992
  };
2785
- "act-on-instance": {
3993
+ "set-instance-notes": {
2786
3994
  parameters: {
2787
3995
  query?: never;
2788
3996
  header?: never;
@@ -2793,7 +4001,7 @@ export interface operations {
2793
4001
  };
2794
4002
  requestBody: {
2795
4003
  content: {
2796
- "application/json": components["schemas"]["ActOnInstanceRequestBody"];
4004
+ "application/json": components["schemas"]["SetInstanceNotesRequestBody"];
2797
4005
  };
2798
4006
  };
2799
4007
  responses: {
@@ -2817,7 +4025,7 @@ export interface operations {
2817
4025
  };
2818
4026
  };
2819
4027
  };
2820
- "open-instance-console": {
4028
+ "reset-instance-password": {
2821
4029
  parameters: {
2822
4030
  query?: never;
2823
4031
  header?: never;
@@ -2826,7 +4034,11 @@ export interface operations {
2826
4034
  };
2827
4035
  cookie?: never;
2828
4036
  };
2829
- requestBody?: never;
4037
+ requestBody: {
4038
+ content: {
4039
+ "application/json": components["schemas"]["ResetPasswordRequestBody"];
4040
+ };
4041
+ };
2830
4042
  responses: {
2831
4043
  /** @description OK */
2832
4044
  200: {
@@ -2834,7 +4046,7 @@ export interface operations {
2834
4046
  [name: string]: unknown;
2835
4047
  };
2836
4048
  content: {
2837
- "application/json": components["schemas"]["ConsoleResponseBody"];
4049
+ "application/json": components["schemas"]["ResetPasswordResponseBody"];
2838
4050
  };
2839
4051
  };
2840
4052
  /** @description Error */
@@ -2848,27 +4060,40 @@ export interface operations {
2848
4060
  };
2849
4061
  };
2850
4062
  };
2851
- "get-instance-console-output": {
4063
+ "reboot-instance": {
2852
4064
  parameters: {
2853
- query?: {
2854
- /** @description Number of trailing lines to return; 0 returns the entire output */
2855
- lines?: number;
4065
+ query?: never;
4066
+ header: {
4067
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
4068
+ "Idempotency-Key": string;
2856
4069
  };
2857
- header?: never;
2858
4070
  path: {
2859
4071
  instanceId: string;
2860
4072
  };
2861
4073
  cookie?: never;
2862
4074
  };
2863
- requestBody?: never;
4075
+ requestBody: {
4076
+ content: {
4077
+ "application/json": components["schemas"]["RebootInstanceRequestBody"];
4078
+ };
4079
+ };
2864
4080
  responses: {
2865
- /** @description OK */
2866
- 200: {
4081
+ /** @description The action was accepted. Wait for the returned task to finish. */
4082
+ 202: {
2867
4083
  headers: {
2868
4084
  [name: string]: unknown;
2869
4085
  };
2870
4086
  content: {
2871
- "application/json": components["schemas"]["ConsoleOutputResponseBody"];
4087
+ "application/json": components["schemas"]["Task"];
4088
+ };
4089
+ };
4090
+ /** @description The idempotency key was already used with different parameters in this scope. */
4091
+ 409: {
4092
+ headers: {
4093
+ [name: string]: unknown;
4094
+ };
4095
+ content: {
4096
+ "application/json": components["schemas"]["Error"];
2872
4097
  };
2873
4098
  };
2874
4099
  /** @description Error */
@@ -2882,7 +4107,7 @@ export interface operations {
2882
4107
  };
2883
4108
  };
2884
4109
  };
2885
- "reset-instance-password": {
4110
+ "rebuild-instance": {
2886
4111
  parameters: {
2887
4112
  query?: never;
2888
4113
  header?: never;
@@ -2893,7 +4118,7 @@ export interface operations {
2893
4118
  };
2894
4119
  requestBody: {
2895
4120
  content: {
2896
- "application/json": components["schemas"]["ResetPasswordRequestBody"];
4121
+ "application/json": components["schemas"]["RebuildInstanceRequestBody"];
2897
4122
  };
2898
4123
  };
2899
4124
  responses: {
@@ -2903,7 +4128,7 @@ export interface operations {
2903
4128
  [name: string]: unknown;
2904
4129
  };
2905
4130
  content: {
2906
- "application/json": components["schemas"]["ResetPasswordResponseBody"];
4131
+ "application/json": components["schemas"]["RebuildInstanceResponseBody"];
2907
4132
  };
2908
4133
  };
2909
4134
  /** @description Error */
@@ -2917,7 +4142,7 @@ export interface operations {
2917
4142
  };
2918
4143
  };
2919
4144
  };
2920
- "rebuild-instance": {
4145
+ "resize-instance": {
2921
4146
  parameters: {
2922
4147
  query?: never;
2923
4148
  header?: never;
@@ -2928,17 +4153,26 @@ export interface operations {
2928
4153
  };
2929
4154
  requestBody: {
2930
4155
  content: {
2931
- "application/json": components["schemas"]["RebuildInstanceRequestBody"];
4156
+ "application/json": components["schemas"]["ResizeInstanceRequestBody"];
2932
4157
  };
2933
4158
  };
2934
4159
  responses: {
2935
- /** @description OK */
2936
- 200: {
4160
+ /** @description Accepted */
4161
+ 202: {
2937
4162
  headers: {
2938
4163
  [name: string]: unknown;
2939
4164
  };
2940
4165
  content: {
2941
- "application/json": components["schemas"]["RebuildInstanceResponseBody"];
4166
+ "application/json": components["schemas"]["PurchaseResult"];
4167
+ };
4168
+ };
4169
+ /** @description The idempotency key was already used with different parameters in this scope. */
4170
+ 409: {
4171
+ headers: {
4172
+ [name: string]: unknown;
4173
+ };
4174
+ content: {
4175
+ "application/json": components["schemas"]["Error"];
2942
4176
  };
2943
4177
  };
2944
4178
  /** @description Error */
@@ -2952,28 +4186,79 @@ export interface operations {
2952
4186
  };
2953
4187
  };
2954
4188
  };
2955
- "resize-instance": {
4189
+ "confirm-instance-resize": {
2956
4190
  parameters: {
2957
4191
  query?: never;
2958
- header?: never;
4192
+ header: {
4193
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
4194
+ "Idempotency-Key": string;
4195
+ };
2959
4196
  path: {
2960
4197
  instanceId: string;
2961
4198
  };
2962
4199
  cookie?: never;
2963
4200
  };
2964
- requestBody: {
2965
- content: {
2966
- "application/json": components["schemas"]["ResizeInstanceRequestBody"];
4201
+ requestBody?: never;
4202
+ responses: {
4203
+ /** @description The action was accepted. Wait for the returned task to finish. */
4204
+ 202: {
4205
+ headers: {
4206
+ [name: string]: unknown;
4207
+ };
4208
+ content: {
4209
+ "application/json": components["schemas"]["Task"];
4210
+ };
4211
+ };
4212
+ /** @description The idempotency key was already used with different parameters in this scope. */
4213
+ 409: {
4214
+ headers: {
4215
+ [name: string]: unknown;
4216
+ };
4217
+ content: {
4218
+ "application/json": components["schemas"]["Error"];
4219
+ };
4220
+ };
4221
+ /** @description Error */
4222
+ default: {
4223
+ headers: {
4224
+ [name: string]: unknown;
4225
+ };
4226
+ content: {
4227
+ "application/json": components["schemas"]["Error"];
4228
+ };
4229
+ };
4230
+ };
4231
+ };
4232
+ "revert-instance-resize": {
4233
+ parameters: {
4234
+ query?: never;
4235
+ header: {
4236
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
4237
+ "Idempotency-Key": string;
4238
+ };
4239
+ path: {
4240
+ instanceId: string;
2967
4241
  };
4242
+ cookie?: never;
2968
4243
  };
4244
+ requestBody?: never;
2969
4245
  responses: {
2970
- /** @description OK */
2971
- 200: {
4246
+ /** @description The action was accepted. Wait for the returned task to finish. */
4247
+ 202: {
2972
4248
  headers: {
2973
4249
  [name: string]: unknown;
2974
4250
  };
2975
4251
  content: {
2976
- "application/json": components["schemas"]["InstanceResource"];
4252
+ "application/json": components["schemas"]["Task"];
4253
+ };
4254
+ };
4255
+ /** @description The idempotency key was already used with different parameters in this scope. */
4256
+ 409: {
4257
+ headers: {
4258
+ [name: string]: unknown;
4259
+ };
4260
+ content: {
4261
+ "application/json": components["schemas"]["Error"];
2977
4262
  };
2978
4263
  };
2979
4264
  /** @description Error */
@@ -2987,24 +4272,40 @@ export interface operations {
2987
4272
  };
2988
4273
  };
2989
4274
  };
2990
- "confirm-instance-resize": {
4275
+ "start-instance": {
2991
4276
  parameters: {
2992
4277
  query?: never;
2993
- header?: never;
4278
+ header: {
4279
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
4280
+ "Idempotency-Key": string;
4281
+ };
2994
4282
  path: {
2995
4283
  instanceId: string;
2996
4284
  };
2997
4285
  cookie?: never;
2998
4286
  };
2999
- requestBody?: never;
4287
+ requestBody: {
4288
+ content: {
4289
+ "application/json": components["schemas"]["PowerRequest"];
4290
+ };
4291
+ };
3000
4292
  responses: {
3001
- /** @description OK */
3002
- 200: {
4293
+ /** @description The action was accepted. Wait for the returned task to finish. */
4294
+ 202: {
3003
4295
  headers: {
3004
4296
  [name: string]: unknown;
3005
4297
  };
3006
4298
  content: {
3007
- "application/json": components["schemas"]["InstanceResource"];
4299
+ "application/json": components["schemas"]["Task"];
4300
+ };
4301
+ };
4302
+ /** @description The idempotency key was already used with different parameters in this scope. */
4303
+ 409: {
4304
+ headers: {
4305
+ [name: string]: unknown;
4306
+ };
4307
+ content: {
4308
+ "application/json": components["schemas"]["Error"];
3008
4309
  };
3009
4310
  };
3010
4311
  /** @description Error */
@@ -3018,24 +4319,40 @@ export interface operations {
3018
4319
  };
3019
4320
  };
3020
4321
  };
3021
- "revert-instance-resize": {
4322
+ "stop-instance": {
3022
4323
  parameters: {
3023
4324
  query?: never;
3024
- header?: never;
4325
+ header: {
4326
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
4327
+ "Idempotency-Key": string;
4328
+ };
3025
4329
  path: {
3026
4330
  instanceId: string;
3027
4331
  };
3028
4332
  cookie?: never;
3029
4333
  };
3030
- requestBody?: never;
4334
+ requestBody: {
4335
+ content: {
4336
+ "application/json": components["schemas"]["PowerRequest"];
4337
+ };
4338
+ };
3031
4339
  responses: {
3032
- /** @description OK */
3033
- 200: {
4340
+ /** @description The action was accepted. Wait for the returned task to finish. */
4341
+ 202: {
3034
4342
  headers: {
3035
4343
  [name: string]: unknown;
3036
4344
  };
3037
4345
  content: {
3038
- "application/json": components["schemas"]["InstanceResource"];
4346
+ "application/json": components["schemas"]["Task"];
4347
+ };
4348
+ };
4349
+ /** @description The idempotency key was already used with different parameters in this scope. */
4350
+ 409: {
4351
+ headers: {
4352
+ [name: string]: unknown;
4353
+ };
4354
+ content: {
4355
+ "application/json": components["schemas"]["Error"];
3039
4356
  };
3040
4357
  };
3041
4358
  /** @description Error */
@@ -3051,7 +4368,10 @@ export interface operations {
3051
4368
  };
3052
4369
  "list-instance-disks": {
3053
4370
  parameters: {
3054
- query?: never;
4371
+ query?: {
4372
+ page?: number;
4373
+ page_size?: number;
4374
+ };
3055
4375
  header?: never;
3056
4376
  path: {
3057
4377
  instanceId: string;
@@ -3066,7 +4386,7 @@ export interface operations {
3066
4386
  [name: string]: unknown;
3067
4387
  };
3068
4388
  content: {
3069
- "application/json": components["schemas"]["DiskListResponseBody"];
4389
+ "application/json": components["schemas"]["DiskAttachmentList"];
3070
4390
  };
3071
4391
  };
3072
4392
  /** @description Error */
@@ -3083,7 +4403,10 @@ export interface operations {
3083
4403
  "attach-disk": {
3084
4404
  parameters: {
3085
4405
  query?: never;
3086
- header?: never;
4406
+ header: {
4407
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
4408
+ "Idempotency-Key": string;
4409
+ };
3087
4410
  path: {
3088
4411
  instanceId: string;
3089
4412
  };
@@ -3095,13 +4418,22 @@ export interface operations {
3095
4418
  };
3096
4419
  };
3097
4420
  responses: {
3098
- /** @description OK */
3099
- 200: {
4421
+ /** @description The action was accepted. Wait for the returned task to finish. */
4422
+ 202: {
3100
4423
  headers: {
3101
4424
  [name: string]: unknown;
3102
4425
  };
3103
4426
  content: {
3104
- "application/json": components["schemas"]["DiskResource"];
4427
+ "application/json": components["schemas"]["Task"];
4428
+ };
4429
+ };
4430
+ /** @description The idempotency key was already used with different parameters in this scope. */
4431
+ 409: {
4432
+ headers: {
4433
+ [name: string]: unknown;
4434
+ };
4435
+ content: {
4436
+ "application/json": components["schemas"]["Error"];
3105
4437
  };
3106
4438
  };
3107
4439
  /** @description Error */
@@ -3118,7 +4450,10 @@ export interface operations {
3118
4450
  "detach-disk": {
3119
4451
  parameters: {
3120
4452
  query?: never;
3121
- header?: never;
4453
+ header: {
4454
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
4455
+ "Idempotency-Key": string;
4456
+ };
3122
4457
  path: {
3123
4458
  instanceId: string;
3124
4459
  diskId: string;
@@ -3127,13 +4462,22 @@ export interface operations {
3127
4462
  };
3128
4463
  requestBody?: never;
3129
4464
  responses: {
3130
- /** @description OK */
3131
- 200: {
4465
+ /** @description The action was accepted. Wait for the returned task to finish. */
4466
+ 202: {
3132
4467
  headers: {
3133
4468
  [name: string]: unknown;
3134
4469
  };
3135
4470
  content: {
3136
- "application/json": components["schemas"]["DiskResource"];
4471
+ "application/json": components["schemas"]["Task"];
4472
+ };
4473
+ };
4474
+ /** @description The idempotency key was already used with different parameters in this scope. */
4475
+ 409: {
4476
+ headers: {
4477
+ [name: string]: unknown;
4478
+ };
4479
+ content: {
4480
+ "application/json": components["schemas"]["Error"];
3137
4481
  };
3138
4482
  };
3139
4483
  /** @description Error */
@@ -3162,7 +4506,7 @@ export interface operations {
3162
4506
  };
3163
4507
  };
3164
4508
  responses: {
3165
- /** @description OK */
4509
+ /** @description The current floating IP binding */
3166
4510
  200: {
3167
4511
  headers: {
3168
4512
  [name: string]: unknown;
@@ -3194,7 +4538,7 @@ export interface operations {
3194
4538
  };
3195
4539
  requestBody?: never;
3196
4540
  responses: {
3197
- /** @description OK */
4541
+ /** @description The current floating IP binding */
3198
4542
  200: {
3199
4543
  headers: {
3200
4544
  [name: string]: unknown;
@@ -3216,7 +4560,10 @@ export interface operations {
3216
4560
  };
3217
4561
  "list-instance-ports": {
3218
4562
  parameters: {
3219
- query?: never;
4563
+ query?: {
4564
+ page?: number;
4565
+ page_size?: number;
4566
+ };
3220
4567
  header?: never;
3221
4568
  path: {
3222
4569
  instanceId: string;
@@ -3231,7 +4578,7 @@ export interface operations {
3231
4578
  [name: string]: unknown;
3232
4579
  };
3233
4580
  content: {
3234
- "application/json": components["schemas"]["PortListResponseBody"];
4581
+ "application/json": components["schemas"]["PortAttachmentList"];
3235
4582
  };
3236
4583
  };
3237
4584
  /** @description Error */
@@ -3248,7 +4595,10 @@ export interface operations {
3248
4595
  "attach-port": {
3249
4596
  parameters: {
3250
4597
  query?: never;
3251
- header?: never;
4598
+ header: {
4599
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
4600
+ "Idempotency-Key": string;
4601
+ };
3252
4602
  path: {
3253
4603
  instanceId: string;
3254
4604
  };
@@ -3260,13 +4610,22 @@ export interface operations {
3260
4610
  };
3261
4611
  };
3262
4612
  responses: {
3263
- /** @description OK */
3264
- 200: {
4613
+ /** @description The action was accepted. Wait for the returned task to finish. */
4614
+ 202: {
3265
4615
  headers: {
3266
4616
  [name: string]: unknown;
3267
4617
  };
3268
4618
  content: {
3269
- "application/json": components["schemas"]["PortResource"];
4619
+ "application/json": components["schemas"]["Task"];
4620
+ };
4621
+ };
4622
+ /** @description The idempotency key was already used with different parameters in this scope. */
4623
+ 409: {
4624
+ headers: {
4625
+ [name: string]: unknown;
4626
+ };
4627
+ content: {
4628
+ "application/json": components["schemas"]["Error"];
3270
4629
  };
3271
4630
  };
3272
4631
  /** @description Error */
@@ -3283,7 +4642,10 @@ export interface operations {
3283
4642
  "detach-port": {
3284
4643
  parameters: {
3285
4644
  query?: never;
3286
- header?: never;
4645
+ header: {
4646
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
4647
+ "Idempotency-Key": string;
4648
+ };
3287
4649
  path: {
3288
4650
  instanceId: string;
3289
4651
  portId: string;
@@ -3292,13 +4654,22 @@ export interface operations {
3292
4654
  };
3293
4655
  requestBody?: never;
3294
4656
  responses: {
3295
- /** @description OK */
3296
- 200: {
4657
+ /** @description The action was accepted. Wait for the returned task to finish. */
4658
+ 202: {
3297
4659
  headers: {
3298
4660
  [name: string]: unknown;
3299
4661
  };
3300
4662
  content: {
3301
- "application/json": components["schemas"]["PortResource"];
4663
+ "application/json": components["schemas"]["Task"];
4664
+ };
4665
+ };
4666
+ /** @description The idempotency key was already used with different parameters in this scope. */
4667
+ 409: {
4668
+ headers: {
4669
+ [name: string]: unknown;
4670
+ };
4671
+ content: {
4672
+ "application/json": components["schemas"]["Error"];
3302
4673
  };
3303
4674
  };
3304
4675
  /** @description Error */
@@ -3317,8 +4688,8 @@ export interface operations {
3317
4688
  query?: {
3318
4689
  /** @description Return a single kind of operation; the value matches the operation id of the endpoint */
3319
4690
  action?: string;
3320
- limit?: number;
3321
- offset?: number;
4691
+ page?: number;
4692
+ page_size?: number;
3322
4693
  };
3323
4694
  header?: never;
3324
4695
  path?: never;
@@ -3441,7 +4812,9 @@ export interface operations {
3441
4812
  parameters: {
3442
4813
  query?: {
3443
4814
  /** @description Return only the images of this region. An image can only be used in the region that holds it */
3444
- region_code?: string;
4815
+ region_id?: string;
4816
+ page?: number;
4817
+ page_size?: number;
3445
4818
  };
3446
4819
  header?: never;
3447
4820
  path?: never;
@@ -3488,7 +4861,16 @@ export interface operations {
3488
4861
  [name: string]: unknown;
3489
4862
  };
3490
4863
  content: {
3491
- "application/json": components["schemas"]["PrivateImageResource"];
4864
+ "application/json": components["schemas"]["PurchaseResult"];
4865
+ };
4866
+ };
4867
+ /** @description The idempotency key was already used with different parameters in this scope. */
4868
+ 409: {
4869
+ headers: {
4870
+ [name: string]: unknown;
4871
+ };
4872
+ content: {
4873
+ "application/json": components["schemas"]["Error"];
3492
4874
  };
3493
4875
  };
3494
4876
  /** @description Error */
@@ -3536,7 +4918,10 @@ export interface operations {
3536
4918
  "delete-private-image": {
3537
4919
  parameters: {
3538
4920
  query?: never;
3539
- header?: never;
4921
+ header: {
4922
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
4923
+ "Idempotency-Key": string;
4924
+ };
3540
4925
  path: {
3541
4926
  privateImageId: string;
3542
4927
  };
@@ -3544,12 +4929,23 @@ export interface operations {
3544
4929
  };
3545
4930
  requestBody?: never;
3546
4931
  responses: {
3547
- /** @description No Content */
3548
- 204: {
4932
+ /** @description The action was accepted. Wait for the returned task to finish. */
4933
+ 202: {
3549
4934
  headers: {
3550
4935
  [name: string]: unknown;
3551
4936
  };
3552
- content?: never;
4937
+ content: {
4938
+ "application/json": components["schemas"]["Task"];
4939
+ };
4940
+ };
4941
+ /** @description The idempotency key was already used with different parameters in this scope. */
4942
+ 409: {
4943
+ headers: {
4944
+ [name: string]: unknown;
4945
+ };
4946
+ content: {
4947
+ "application/json": components["schemas"]["Error"];
4948
+ };
3553
4949
  };
3554
4950
  /** @description Error */
3555
4951
  default: {
@@ -3601,7 +4997,7 @@ export interface operations {
3601
4997
  parameters: {
3602
4998
  query?: {
3603
4999
  /** @description Returns every region when omitted */
3604
- region_code?: string;
5000
+ region_id?: string;
3605
5001
  };
3606
5002
  header?: never;
3607
5003
  path?: never;
@@ -4076,7 +5472,7 @@ export interface operations {
4076
5472
  "list-security-groups": {
4077
5473
  parameters: {
4078
5474
  query?: {
4079
- region_code?: string;
5475
+ region_id?: string;
4080
5476
  /** @description Return only the security groups of this private network */
4081
5477
  private_network_id?: string;
4082
5478
  };
@@ -4381,7 +5777,16 @@ export interface operations {
4381
5777
  [name: string]: unknown;
4382
5778
  };
4383
5779
  content: {
4384
- "application/json": components["schemas"]["SnapshotResource"];
5780
+ "application/json": components["schemas"]["PurchaseResult"];
5781
+ };
5782
+ };
5783
+ /** @description The idempotency key was already used with different parameters in this scope. */
5784
+ 409: {
5785
+ headers: {
5786
+ [name: string]: unknown;
5787
+ };
5788
+ content: {
5789
+ "application/json": components["schemas"]["Error"];
4385
5790
  };
4386
5791
  };
4387
5792
  /** @description Error */
@@ -4429,7 +5834,10 @@ export interface operations {
4429
5834
  "delete-snapshot": {
4430
5835
  parameters: {
4431
5836
  query?: never;
4432
- header?: never;
5837
+ header: {
5838
+ /** @description Reuse the same key for retries of the same action. A different request with the same key is rejected. */
5839
+ "Idempotency-Key": string;
5840
+ };
4433
5841
  path: {
4434
5842
  snapshotId: string;
4435
5843
  };
@@ -4437,12 +5845,23 @@ export interface operations {
4437
5845
  };
4438
5846
  requestBody?: never;
4439
5847
  responses: {
4440
- /** @description No Content */
4441
- 204: {
5848
+ /** @description The action was accepted. Wait for the returned task to finish. */
5849
+ 202: {
4442
5850
  headers: {
4443
5851
  [name: string]: unknown;
4444
5852
  };
4445
- content?: never;
5853
+ content: {
5854
+ "application/json": components["schemas"]["Task"];
5855
+ };
5856
+ };
5857
+ /** @description The idempotency key was already used with different parameters in this scope. */
5858
+ 409: {
5859
+ headers: {
5860
+ [name: string]: unknown;
5861
+ };
5862
+ content: {
5863
+ "application/json": components["schemas"]["Error"];
5864
+ };
4446
5865
  };
4447
5866
  /** @description Error */
4448
5867
  default: {
@@ -4490,4 +5909,257 @@ export interface operations {
4490
5909
  };
4491
5910
  };
4492
5911
  };
5912
+ "get-task": {
5913
+ parameters: {
5914
+ query?: never;
5915
+ header?: never;
5916
+ path: {
5917
+ taskId: string;
5918
+ };
5919
+ cookie?: never;
5920
+ };
5921
+ requestBody?: never;
5922
+ responses: {
5923
+ /** @description The task. */
5924
+ 200: {
5925
+ headers: {
5926
+ [name: string]: unknown;
5927
+ };
5928
+ content: {
5929
+ "application/json": components["schemas"]["Task"];
5930
+ };
5931
+ };
5932
+ /** @description The request could not be completed. */
5933
+ default: {
5934
+ headers: {
5935
+ [name: string]: unknown;
5936
+ };
5937
+ content: {
5938
+ "application/json": components["schemas"]["Error"];
5939
+ };
5940
+ };
5941
+ };
5942
+ };
5943
+ "list-ipv4-pools": {
5944
+ parameters: {
5945
+ query: {
5946
+ region_id: string;
5947
+ page?: number;
5948
+ page_size?: number;
5949
+ };
5950
+ header?: never;
5951
+ path?: never;
5952
+ cookie?: never;
5953
+ };
5954
+ requestBody?: never;
5955
+ responses: {
5956
+ /** @description OK */
5957
+ 200: {
5958
+ headers: {
5959
+ [name: string]: unknown;
5960
+ };
5961
+ content: {
5962
+ "application/json": components["schemas"]["IPv4PoolListResponseBody"];
5963
+ };
5964
+ };
5965
+ /** @description Error */
5966
+ default: {
5967
+ headers: {
5968
+ [name: string]: unknown;
5969
+ };
5970
+ content: {
5971
+ "application/json": components["schemas"]["Error"];
5972
+ };
5973
+ };
5974
+ };
5975
+ };
5976
+ "list-peerings": {
5977
+ parameters: {
5978
+ query?: {
5979
+ limit?: number;
5980
+ offset?: number;
5981
+ };
5982
+ header?: never;
5983
+ path?: never;
5984
+ cookie?: never;
5985
+ };
5986
+ requestBody?: never;
5987
+ responses: {
5988
+ /** @description Success */
5989
+ 200: {
5990
+ headers: {
5991
+ [name: string]: unknown;
5992
+ };
5993
+ content: {
5994
+ "application/json": components["schemas"]["PeeringListResponseBody"];
5995
+ };
5996
+ };
5997
+ /** @description Error */
5998
+ default: {
5999
+ headers: {
6000
+ [name: string]: unknown;
6001
+ };
6002
+ content: {
6003
+ "application/json": components["schemas"]["Error"];
6004
+ };
6005
+ };
6006
+ };
6007
+ };
6008
+ "create-peering": {
6009
+ parameters: {
6010
+ query?: never;
6011
+ header?: never;
6012
+ path?: never;
6013
+ cookie?: never;
6014
+ };
6015
+ requestBody: {
6016
+ content: {
6017
+ "application/json": components["schemas"]["CreatePeeringRequestBody"];
6018
+ };
6019
+ };
6020
+ responses: {
6021
+ /** @description Success */
6022
+ 201: {
6023
+ headers: {
6024
+ [name: string]: unknown;
6025
+ };
6026
+ content: {
6027
+ "application/json": components["schemas"]["PeeringResource"];
6028
+ };
6029
+ };
6030
+ /** @description Error */
6031
+ default: {
6032
+ headers: {
6033
+ [name: string]: unknown;
6034
+ };
6035
+ content: {
6036
+ "application/json": components["schemas"]["Error"];
6037
+ };
6038
+ };
6039
+ };
6040
+ };
6041
+ "get-peering": {
6042
+ parameters: {
6043
+ query?: never;
6044
+ header?: never;
6045
+ path: {
6046
+ peeringId: string;
6047
+ };
6048
+ cookie?: never;
6049
+ };
6050
+ requestBody?: never;
6051
+ responses: {
6052
+ /** @description Success */
6053
+ 200: {
6054
+ headers: {
6055
+ [name: string]: unknown;
6056
+ };
6057
+ content: {
6058
+ "application/json": components["schemas"]["PeeringResource"];
6059
+ };
6060
+ };
6061
+ /** @description Error */
6062
+ default: {
6063
+ headers: {
6064
+ [name: string]: unknown;
6065
+ };
6066
+ content: {
6067
+ "application/json": components["schemas"]["Error"];
6068
+ };
6069
+ };
6070
+ };
6071
+ };
6072
+ "delete-peering": {
6073
+ parameters: {
6074
+ query?: never;
6075
+ header?: never;
6076
+ path: {
6077
+ peeringId: string;
6078
+ };
6079
+ cookie?: never;
6080
+ };
6081
+ requestBody?: never;
6082
+ responses: {
6083
+ /** @description Success */
6084
+ 202: {
6085
+ headers: {
6086
+ [name: string]: unknown;
6087
+ };
6088
+ content: {
6089
+ "application/json": components["schemas"]["PeeringResource"];
6090
+ };
6091
+ };
6092
+ /** @description Error */
6093
+ default: {
6094
+ headers: {
6095
+ [name: string]: unknown;
6096
+ };
6097
+ content: {
6098
+ "application/json": components["schemas"]["Error"];
6099
+ };
6100
+ };
6101
+ };
6102
+ };
6103
+ "accept-peering": {
6104
+ parameters: {
6105
+ query?: never;
6106
+ header?: never;
6107
+ path: {
6108
+ peeringId: string;
6109
+ };
6110
+ cookie?: never;
6111
+ };
6112
+ requestBody?: never;
6113
+ responses: {
6114
+ /** @description Success */
6115
+ 202: {
6116
+ headers: {
6117
+ [name: string]: unknown;
6118
+ };
6119
+ content: {
6120
+ "application/json": components["schemas"]["PeeringResource"];
6121
+ };
6122
+ };
6123
+ /** @description Error */
6124
+ default: {
6125
+ headers: {
6126
+ [name: string]: unknown;
6127
+ };
6128
+ content: {
6129
+ "application/json": components["schemas"]["Error"];
6130
+ };
6131
+ };
6132
+ };
6133
+ };
6134
+ "reject-peering": {
6135
+ parameters: {
6136
+ query?: never;
6137
+ header?: never;
6138
+ path: {
6139
+ peeringId: string;
6140
+ };
6141
+ cookie?: never;
6142
+ };
6143
+ requestBody?: never;
6144
+ responses: {
6145
+ /** @description Success */
6146
+ 200: {
6147
+ headers: {
6148
+ [name: string]: unknown;
6149
+ };
6150
+ content: {
6151
+ "application/json": components["schemas"]["PeeringResource"];
6152
+ };
6153
+ };
6154
+ /** @description Error */
6155
+ default: {
6156
+ headers: {
6157
+ [name: string]: unknown;
6158
+ };
6159
+ content: {
6160
+ "application/json": components["schemas"]["Error"];
6161
+ };
6162
+ };
6163
+ };
6164
+ };
4493
6165
  }