@leaflow/sdk 0.0.0-dev.23.g7fcf334 → 0.0.0-dev.232.g18ca775

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 (77) hide show
  1. package/README.md +22 -1
  2. package/dist/account/v1/client.d.ts +4 -0
  3. package/dist/account/v1/client.js +7 -0
  4. package/dist/account/v1/index.d.ts +33 -22
  5. package/dist/account/v1/index.js +4 -4
  6. package/dist/account/v1/schema.d.ts +307 -89
  7. package/dist/assistant/v1/client.d.ts +4 -0
  8. package/dist/assistant/v1/client.js +7 -0
  9. package/dist/assistant/v1/index.d.ts +71 -40
  10. package/dist/assistant/v1/index.js +4 -4
  11. package/dist/assistant/v1/schema.d.ts +1204 -139
  12. package/dist/billing/account/v1/client.d.ts +4 -0
  13. package/dist/billing/account/v1/client.js +7 -0
  14. package/dist/billing/account/v1/index.d.ts +143 -0
  15. package/dist/billing/account/v1/index.js +5 -0
  16. package/dist/billing/account/v1/schema.d.ts +4009 -0
  17. package/dist/billing/account/v1/schema.js +5 -0
  18. package/dist/billing/catalog/v1/client.d.ts +4 -0
  19. package/dist/billing/catalog/v1/client.js +7 -0
  20. package/dist/billing/catalog/v1/index.d.ts +29 -0
  21. package/dist/billing/catalog/v1/index.js +5 -0
  22. package/dist/billing/catalog/v1/schema.d.ts +910 -0
  23. package/dist/billing/catalog/v1/schema.js +5 -0
  24. package/dist/billing/index.d.ts +3 -0
  25. package/dist/billing/index.js +6 -0
  26. package/dist/billing/project/v1/client.d.ts +4 -0
  27. package/dist/billing/project/v1/client.js +7 -0
  28. package/dist/billing/project/v1/index.d.ts +45 -0
  29. package/dist/billing/project/v1/index.js +5 -0
  30. package/dist/billing/project/v1/schema.d.ts +1443 -0
  31. package/dist/billing/project/v1/schema.js +5 -0
  32. package/dist/canopy/v1/client.d.ts +4 -0
  33. package/dist/canopy/v1/client.js +7 -0
  34. package/dist/canopy/v1/index.d.ts +24 -23
  35. package/dist/canopy/v1/index.js +4 -4
  36. package/dist/canopy/v1/schema.d.ts +113 -109
  37. package/dist/compute/v1/client.d.ts +4 -0
  38. package/dist/compute/v1/client.js +7 -0
  39. package/dist/compute/v1/index.d.ts +182 -127
  40. package/dist/compute/v1/index.js +4 -4
  41. package/dist/compute/v1/schema.d.ts +1501 -286
  42. package/dist/dns/v1/client.d.ts +4 -0
  43. package/dist/dns/v1/client.js +7 -0
  44. package/dist/dns/v1/index.d.ts +43 -0
  45. package/dist/dns/v1/index.js +5 -0
  46. package/dist/dns/v1/schema.d.ts +887 -0
  47. package/dist/dns/v1/schema.js +5 -0
  48. package/dist/iam/v1/client.d.ts +4 -0
  49. package/dist/iam/v1/client.js +7 -0
  50. package/dist/iam/v1/index.d.ts +55 -32
  51. package/dist/iam/v1/index.js +4 -4
  52. package/dist/iam/v1/schema.d.ts +521 -88
  53. package/dist/index.d.ts +11 -7
  54. package/dist/index.js +19 -5
  55. package/dist/monitoring/v1/client.d.ts +4 -0
  56. package/dist/monitoring/v1/client.js +7 -0
  57. package/dist/monitoring/v1/index.d.ts +130 -49
  58. package/dist/monitoring/v1/index.js +4 -4
  59. package/dist/monitoring/v1/schema.d.ts +2420 -527
  60. package/dist/notification/v1/client.d.ts +4 -0
  61. package/dist/notification/v1/client.js +7 -0
  62. package/dist/notification/v1/index.d.ts +77 -0
  63. package/dist/notification/v1/index.js +5 -0
  64. package/dist/notification/v1/schema.d.ts +2048 -0
  65. package/dist/notification/v1/schema.js +5 -0
  66. package/dist/support/v1/client.d.ts +4 -0
  67. package/dist/support/v1/client.js +7 -0
  68. package/dist/support/v1/index.d.ts +51 -0
  69. package/dist/support/v1/index.js +5 -0
  70. package/dist/support/v1/schema.d.ts +1082 -0
  71. package/dist/support/v1/schema.js +5 -0
  72. package/dist/tunnel/v1/client.d.ts +4 -0
  73. package/dist/tunnel/v1/client.js +7 -0
  74. package/dist/tunnel/v1/index.d.ts +8 -7
  75. package/dist/tunnel/v1/index.js +4 -4
  76. package/dist/tunnel/v1/schema.d.ts +40 -34
  77. package/package.json +30 -10
@@ -19,7 +19,7 @@ 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
23
  */
24
24
  post: operations["create-backup"];
25
25
  delete?: never;
@@ -45,6 +45,8 @@ export interface paths {
45
45
  /**
46
46
  * Delete a backup
47
47
  * @description Independent of the source disk: deletion succeeds whether or not that disk still exists.
48
+ *
49
+ * Refused with `COMPUTE_RESOURCE_SUBSCRIBED` while a subscription pays for the backup, including a pay-as-you-go subscription. `meta.resource_id` names the backup. It is released when its subscription ends.
48
50
  */
49
51
  delete: operations["delete-backup"];
50
52
  options?: never;
@@ -66,7 +68,7 @@ export interface paths {
66
68
  * Restore from a backup
67
69
  * @description Restores onto a **newly created** disk. The source disk is unaffected and need not still exist.
68
70
  *
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.
71
+ * 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.
70
72
  */
71
73
  post: operations["restore-backup"];
72
74
  delete?: never;
@@ -82,7 +84,10 @@ export interface paths {
82
84
  path?: never;
83
85
  cookie?: never;
84
86
  };
85
- /** List disk types on sale */
87
+ /**
88
+ * List disk types on sale
89
+ * @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.
90
+ */
86
91
  get: operations["list-disk-types"];
87
92
  put?: never;
88
93
  post?: never;
@@ -92,6 +97,26 @@ export interface paths {
92
97
  patch?: never;
93
98
  trace?: never;
94
99
  };
100
+ "/api/v1/disk-types/{diskTypeId}": {
101
+ parameters: {
102
+ query?: never;
103
+ header?: never;
104
+ path?: never;
105
+ cookie?: never;
106
+ };
107
+ /**
108
+ * Get a disk type
109
+ * @description Retrieve capacity and performance constraints for an existing disk, including system disk types and types withdrawn from sale.
110
+ */
111
+ get: operations["get-disk-type"];
112
+ put?: never;
113
+ post?: never;
114
+ delete?: never;
115
+ options?: never;
116
+ head?: never;
117
+ patch?: never;
118
+ trace?: never;
119
+ };
95
120
  "/api/v1/images": {
96
121
  parameters: {
97
122
  query?: never;
@@ -102,6 +127,8 @@ export interface paths {
102
127
  /**
103
128
  * List images on sale
104
129
  * @description An image whose `min_ram_mb` exceeds the memory of the selected instance type cannot boot. Filter the options accordingly.
130
+ *
131
+ * 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
132
  */
106
133
  get: operations["list-images"];
107
134
  put?: never;
@@ -119,7 +146,10 @@ export interface paths {
119
146
  path?: never;
120
147
  cookie?: never;
121
148
  };
122
- /** List instance types on sale */
149
+ /**
150
+ * List instance types on sale
151
+ * @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.
152
+ */
123
153
  get: operations["list-instance-types"];
124
154
  put?: never;
125
155
  post?: never;
@@ -146,7 +176,7 @@ export interface paths {
146
176
  patch?: never;
147
177
  trace?: never;
148
178
  };
149
- "/api/v1/regions/{regionCode}/availability-zones": {
179
+ "/api/v1/regions/{regionId}/availability-zones": {
150
180
  parameters: {
151
181
  query?: never;
152
182
  header?: never;
@@ -182,6 +212,8 @@ export interface paths {
182
212
  /**
183
213
  * Create a disk
184
214
  * @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.
215
+ *
216
+ * 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.
185
217
  */
186
218
  post: operations["create-disk"];
187
219
  delete?: never;
@@ -207,6 +239,8 @@ export interface paths {
207
239
  /**
208
240
  * Delete a disk
209
241
  * @description Deletion is rejected while the disk is attached, or while snapshots created from it still exist.
242
+ *
243
+ * Refused with `COMPUTE_RESOURCE_SUBSCRIBED` while a subscription pays for the disk, including a pay-as-you-go subscription. `meta.resource_id` names the disk. It is released when its subscription ends.
210
244
  */
211
245
  delete: operations["delete-disk"];
212
246
  options?: never;
@@ -229,7 +263,13 @@ export interface paths {
229
263
  put?: never;
230
264
  /**
231
265
  * 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.
266
+ * @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.
267
+ *
268
+ * **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.
269
+ *
270
+ * 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.
271
+ *
272
+ * **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.
233
273
  */
234
274
  post: operations["resize-disk"];
235
275
  delete?: never;
@@ -277,6 +317,8 @@ export interface paths {
277
317
  * @description If the private network is not yet connected to the internet, connectivity is established as part of this call.
278
318
  *
279
319
  * IPv6 is not requested through this endpoint. IPv6 addresses are assigned to instances by the private network; enable IPv6 on that network instead.
320
+ *
321
+ * Refused with `PRIVATE_NETWORK_UNAVAILABLE`, before any order is created, when the private network's `status` is not `available`. `meta.private_network_id` names it.
280
322
  */
281
323
  post: operations["allocate-floating-ip"];
282
324
  delete?: never;
@@ -298,7 +340,9 @@ export interface paths {
298
340
  post?: never;
299
341
  /**
300
342
  * 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.
343
+ * @description Releases the floating IP after unbinding it. Completion is reported by the returned task.
344
+ *
345
+ * Refused with `COMPUTE_RESOURCE_SUBSCRIBED` while a subscription pays for the address or for its bandwidth, including a pay-as-you-go subscription. `meta.resource_id` names the floating IP. It is released when its subscriptions end.
302
346
  */
303
347
  delete: operations["release-floating-ip"];
304
348
  options?: never;
@@ -316,7 +360,9 @@ export interface paths {
316
360
  get?: never;
317
361
  /**
318
362
  * Set the bandwidth limit
319
- * @description Limits both directions at once. Limiting egress alone does not prevent ingress traffic from saturating the uplink.
363
+ * @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.
364
+ *
365
+ * 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.
320
366
  */
321
367
  put: operations["set-floating-ip-bandwidth"];
322
368
  post?: never;
@@ -354,22 +400,21 @@ export interface paths {
354
400
  path?: never;
355
401
  cookie?: never;
356
402
  };
357
- /** List instances */
403
+ /**
404
+ * List instances
405
+ * @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.
406
+ */
358
407
  get: operations["list-instances"];
359
408
  put?: never;
360
409
  /**
361
410
  * 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.
411
+ * @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. After an uncertain response, look the order up before submitting again.
363
412
  *
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.
413
+ * 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.
365
414
  *
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.
415
+ * 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.
367
416
  *
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.
369
- *
370
- * Instances are created in the availability zone of the instance type. Disks to be attached later must reside in the same zone.
371
- *
372
- * Creation is not complete when this endpoint returns and `status` is `provisioning`. Poll GET to observe the outcome.
417
+ * The network is checked before the order is created, and a request it refuses orders and charges nothing. It is refused with `PRIVATE_NETWORK_UNAVAILABLE` when the private network's `status` is not `available`, `SUBNET_UNAVAILABLE` or `SECURITY_GROUP_UNAVAILABLE` when the subnet or a security group is not ready, `SECURITY_GROUP_OTHER_PRIVATE_NETWORK` when a security group belongs to another private network, and `PORT_UNAVAILABLE` when the port's `status` is not `available`. `meta` names the resource.
373
418
  */
374
419
  post: operations["launch-instance"];
375
420
  delete?: never;
@@ -397,6 +442,8 @@ export interface paths {
397
442
  * @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
443
  *
399
444
  * An instance being captured as a private image cannot be released. Wait for the capture to finish, or delete that image first.
445
+ *
446
+ * Refused with `COMPUTE_RESOURCE_SUBSCRIBED` while a subscription pays for the instance, or for a disk that is deleted with it, including a pay-as-you-go subscription. `meta.resource_id` names that resource. It is released when its subscription ends.
400
447
  */
401
448
  delete: operations["delete-instance"];
402
449
  options?: never;
@@ -408,32 +455,6 @@ export interface paths {
408
455
  patch: operations["rename-instance"];
409
456
  trace?: never;
410
457
  };
411
- "/api/v1/instances/{instanceId}/actions": {
412
- parameters: {
413
- query?: never;
414
- header?: never;
415
- path?: never;
416
- cookie?: never;
417
- };
418
- get?: never;
419
- put?: never;
420
- /**
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.
423
- *
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.
425
- *
426
- * An instance suspended by the platform must be unsuspended first.
427
- *
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`.
429
- */
430
- post: operations["act-on-instance"];
431
- delete?: never;
432
- options?: never;
433
- head?: never;
434
- patch?: never;
435
- trace?: never;
436
- };
437
458
  "/api/v1/instances/{instanceId}/commands": {
438
459
  parameters: {
439
460
  query?: never;
@@ -447,6 +468,10 @@ export interface paths {
447
468
  * Run a command on an instance
448
469
  * @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.
449
470
  *
471
+ * **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.
472
+ *
473
+ * 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`.
474
+ *
450
475
  * Three conditions must hold; the instance is unreachable otherwise:
451
476
  *
452
477
  * - it is `running`
@@ -455,7 +480,7 @@ export interface paths {
455
480
  *
456
481
  * 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.
457
482
  *
458
- * **The host key is not verified.** Anyone in a position to intercept the connection can read the command and all of its output, so do not pass credentials this way.
483
+ * **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.
459
484
  *
460
485
  * Each stream is capped at 1 MiB. Beyond that the rest is discarded and `truncated` is true.
461
486
  */
@@ -479,7 +504,7 @@ export interface paths {
479
504
  * Open a remote console
480
505
  * @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.
481
506
  *
482
- * The returned address is single-use and expires within minutes. **Do not cache it**; request a new one before each use.
507
+ * The returned address is single-use and expires within minutes. Request a new one before each use.
483
508
  */
484
509
  post: operations["open-instance-console"];
485
510
  delete?: never;
@@ -510,6 +535,54 @@ export interface paths {
510
535
  patch?: never;
511
536
  trace?: never;
512
537
  };
538
+ "/api/v1/instances/{instanceId}/labels": {
539
+ parameters: {
540
+ query?: never;
541
+ header?: never;
542
+ path?: never;
543
+ cookie?: never;
544
+ };
545
+ get?: never;
546
+ /**
547
+ * Replace an instance's labels
548
+ * @description Records what this instance is for, as key-value pairs. Nothing on the platform reads them.
549
+ *
550
+ * **The whole set is replaced**: whatever is absent from the request is removed.
551
+ *
552
+ * Do not put credentials here. Labels are visible to platform operators.
553
+ */
554
+ put: operations["set-instance-labels"];
555
+ post?: never;
556
+ delete?: never;
557
+ options?: never;
558
+ head?: never;
559
+ patch?: never;
560
+ trace?: never;
561
+ };
562
+ "/api/v1/instances/{instanceId}/notes": {
563
+ parameters: {
564
+ query?: never;
565
+ header?: never;
566
+ path?: never;
567
+ cookie?: never;
568
+ };
569
+ get?: never;
570
+ /**
571
+ * Replace an instance's note
572
+ * @description A free-text note about this instance — what it runs, and what to be careful about before touching it.
573
+ *
574
+ * **The whole note is replaced**; send an empty string to clear it.
575
+ *
576
+ * Do not put credentials here. The note is visible to platform operators.
577
+ */
578
+ put: operations["set-instance-notes"];
579
+ post?: never;
580
+ delete?: never;
581
+ options?: never;
582
+ head?: never;
583
+ patch?: never;
584
+ trace?: never;
585
+ };
513
586
  "/api/v1/instances/{instanceId}/password": {
514
587
  parameters: {
515
588
  query?: never;
@@ -534,6 +607,34 @@ export interface paths {
534
607
  patch?: never;
535
608
  trace?: never;
536
609
  };
610
+ "/api/v1/instances/{instanceId}/reboot": {
611
+ parameters: {
612
+ query?: never;
613
+ header?: never;
614
+ path?: never;
615
+ cookie?: never;
616
+ };
617
+ get?: never;
618
+ put?: never;
619
+ /**
620
+ * Reboot an instance
621
+ * @description A reboot defaults to soft, in which the operating system shuts down normally before starting again.
622
+ *
623
+ * 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**.
624
+ *
625
+ * 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.
626
+ *
627
+ * An instance suspended by the platform must be unsuspended first.
628
+ *
629
+ * This endpoint returns immediately and the `status` it returns is the transient `rebooting`. Poll the instance until it settles at `running`.
630
+ */
631
+ post: operations["reboot-instance"];
632
+ delete?: never;
633
+ options?: never;
634
+ head?: never;
635
+ patch?: never;
636
+ trace?: never;
637
+ };
537
638
  "/api/v1/instances/{instanceId}/rebuild": {
538
639
  parameters: {
539
640
  query?: never;
@@ -546,6 +647,8 @@ export interface paths {
546
647
  /**
547
648
  * Rebuild an instance
548
649
  * @description **All data on the system disk is erased and cannot be recovered.** Attached data disks are unaffected.
650
+ *
651
+ * 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.
549
652
  */
550
653
  post: operations["rebuild-instance"];
551
654
  delete?: never;
@@ -565,11 +668,9 @@ export interface paths {
565
668
  put?: never;
566
669
  /**
567
670
  * Resize an instance
568
- * @description Only an instance type in the same region and availability zone can be selected, as attached disks cannot follow the instance elsewhere.
569
- *
570
- * 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.
671
+ * @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. After an uncertain response, look the order up before submitting again.
571
672
  *
572
- * **Both sizes hold resources while the resize is unconfirmed.** Confirm promptly once the status becomes `resize_verifying`.
673
+ * The new instance type takes effect, and is billed from then on, when the returned task succeeds. A completed resize is final and cannot be reverted; to return to the previous type, submit another resize.
573
674
  */
574
675
  post: operations["resize-instance"];
575
676
  delete?: never;
@@ -578,7 +679,7 @@ export interface paths {
578
679
  patch?: never;
579
680
  trace?: never;
580
681
  };
581
- "/api/v1/instances/{instanceId}/resize/confirm": {
682
+ "/api/v1/instances/{instanceId}/start": {
582
683
  parameters: {
583
684
  query?: never;
584
685
  header?: never;
@@ -588,17 +689,17 @@ export interface paths {
588
689
  get?: never;
589
690
  put?: never;
590
691
  /**
591
- * Confirm a resize
592
- * @description Releases the resources held by the previous size. `pending_instance_type_id` becomes the type in effect and is billed from then on.
692
+ * Start an instance
693
+ * @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.
593
694
  */
594
- post: operations["confirm-instance-resize"];
695
+ post: operations["start-instance"];
595
696
  delete?: never;
596
697
  options?: never;
597
698
  head?: never;
598
699
  patch?: never;
599
700
  trace?: never;
600
701
  };
601
- "/api/v1/instances/{instanceId}/resize/revert": {
702
+ "/api/v1/instances/{instanceId}/stop": {
602
703
  parameters: {
603
704
  query?: never;
604
705
  header?: never;
@@ -608,10 +709,10 @@ export interface paths {
608
709
  get?: never;
609
710
  put?: never;
610
711
  /**
611
- * Revert a resize
612
- * @description The instance returns to its previous size, `pending_instance_type_id` is discarded, and billing is unaffected by the resize.
712
+ * Stop an instance
713
+ * @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.
613
714
  */
614
- post: operations["revert-instance-resize"];
715
+ post: operations["stop-instance"];
615
716
  delete?: never;
616
717
  options?: never;
617
718
  head?: never;
@@ -670,7 +771,7 @@ export interface paths {
670
771
  put?: never;
671
772
  /**
672
773
  * Bind a floating IP to an instance
673
- * @description The floating IP is bound to the primary network interface of the instance.
774
+ * @description Changes the public IP binding on the instance's primary network interface. The returned task tracks confirmation of the binding change.
674
775
  */
675
776
  post: operations["attach-instance-floating-ip"];
676
777
  delete?: never;
@@ -689,7 +790,10 @@ export interface paths {
689
790
  get?: never;
690
791
  put?: never;
691
792
  post?: never;
692
- /** Unbind the floating IP of an instance */
793
+ /**
794
+ * Unbind the floating IP of an instance
795
+ * @description Changes the public IP binding on the instance's primary network interface. The returned task tracks confirmation of the binding change.
796
+ */
693
797
  delete: operations["detach-instance-floating-ip"];
694
798
  options?: never;
695
799
  head?: never;
@@ -815,7 +919,7 @@ export interface paths {
815
919
  *
816
920
  * **The image reflects the moment the capture started. Later changes to the instance are not included.**
817
921
  *
818
- * The capture has two phases. Poll the retrieve endpoint:
922
+ * The capture has two phases, reported by the status of the image:
819
923
  *
820
924
  * - `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.
821
925
  * - `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.
@@ -850,6 +954,8 @@ export interface paths {
850
954
  * @description Deletion is rejected while instances created from the image still exist, as they need it in order to be rebuilt.
851
955
  *
852
956
  * An image whose capture has not finished can be deleted; the capture is aborted.
957
+ *
958
+ * Refused with `COMPUTE_RESOURCE_SUBSCRIBED` while a subscription pays for the image, including a pay-as-you-go subscription. `meta.resource_id` names the image. It is released when its subscription ends.
853
959
  */
854
960
  delete: operations["delete-private-image"];
855
961
  options?: never;
@@ -1148,7 +1254,10 @@ export interface paths {
1148
1254
  get: operations["get-snapshot"];
1149
1255
  put?: never;
1150
1256
  post?: never;
1151
- /** Delete a snapshot */
1257
+ /**
1258
+ * Delete a snapshot
1259
+ * @description Refused with `COMPUTE_RESOURCE_SUBSCRIBED` while a subscription pays for the snapshot, including a pay-as-you-go subscription. `meta.resource_id` names the snapshot. It is released when its subscription ends.
1260
+ */
1152
1261
  delete: operations["delete-snapshot"];
1153
1262
  options?: never;
1154
1263
  head?: never;
@@ -1156,13 +1265,160 @@ export interface paths {
1156
1265
  patch: operations["rename-snapshot"];
1157
1266
  trace?: never;
1158
1267
  };
1268
+ "/api/v1/tasks/{taskId}": {
1269
+ parameters: {
1270
+ query?: never;
1271
+ header?: never;
1272
+ path?: never;
1273
+ cookie?: never;
1274
+ };
1275
+ /** Get a requested action */
1276
+ get: operations["get-task"];
1277
+ put?: never;
1278
+ post?: never;
1279
+ delete?: never;
1280
+ options?: never;
1281
+ head?: never;
1282
+ patch?: never;
1283
+ trace?: never;
1284
+ };
1285
+ "/api/v1/ipv4-pools": {
1286
+ parameters: {
1287
+ query?: never;
1288
+ header?: never;
1289
+ path?: never;
1290
+ cookie?: never;
1291
+ };
1292
+ /**
1293
+ * List public IP pools
1294
+ * @description Lists the public IP pools available for new allocations in this region.
1295
+ */
1296
+ get: operations["list-ipv4-pools"];
1297
+ put?: never;
1298
+ post?: never;
1299
+ delete?: never;
1300
+ options?: never;
1301
+ head?: never;
1302
+ patch?: never;
1303
+ trace?: never;
1304
+ };
1305
+ "/api/v1/peerings": {
1306
+ parameters: {
1307
+ query?: never;
1308
+ header?: never;
1309
+ path?: never;
1310
+ cookie?: never;
1311
+ };
1312
+ /** List peerings */
1313
+ get: operations["list-peerings"];
1314
+ put?: never;
1315
+ /**
1316
+ * Create peering
1317
+ * @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.
1318
+ */
1319
+ post: operations["create-peering"];
1320
+ delete?: never;
1321
+ options?: never;
1322
+ head?: never;
1323
+ patch?: never;
1324
+ trace?: never;
1325
+ };
1326
+ "/api/v1/peerings/{peeringId}": {
1327
+ parameters: {
1328
+ query?: never;
1329
+ header?: never;
1330
+ path?: never;
1331
+ cookie?: never;
1332
+ };
1333
+ /** Get peering */
1334
+ get: operations["get-peering"];
1335
+ put?: never;
1336
+ post?: never;
1337
+ /** Delete peering */
1338
+ delete: operations["delete-peering"];
1339
+ options?: never;
1340
+ head?: never;
1341
+ patch?: never;
1342
+ trace?: never;
1343
+ };
1344
+ "/api/v1/peerings/{peeringId}/accept": {
1345
+ parameters: {
1346
+ query?: never;
1347
+ header?: never;
1348
+ path?: never;
1349
+ cookie?: never;
1350
+ };
1351
+ get?: never;
1352
+ put?: never;
1353
+ /** Accept peering */
1354
+ post: operations["accept-peering"];
1355
+ delete?: never;
1356
+ options?: never;
1357
+ head?: never;
1358
+ patch?: never;
1359
+ trace?: never;
1360
+ };
1361
+ "/api/v1/peerings/{peeringId}/reject": {
1362
+ parameters: {
1363
+ query?: never;
1364
+ header?: never;
1365
+ path?: never;
1366
+ cookie?: never;
1367
+ };
1368
+ get?: never;
1369
+ put?: never;
1370
+ /** Reject peering */
1371
+ post: operations["reject-peering"];
1372
+ delete?: never;
1373
+ options?: never;
1374
+ head?: never;
1375
+ patch?: never;
1376
+ trace?: never;
1377
+ };
1159
1378
  }
1160
1379
  export type webhooks = Record<string, never>;
1161
1380
  export interface components {
1162
1381
  schemas: {
1382
+ PeeringResource: {
1383
+ /** Format: uuid */
1384
+ id: string;
1385
+ name: string;
1386
+ /** Format: uuid */
1387
+ region_id: string;
1388
+ /** Format: uuid */
1389
+ requester_project_id: string;
1390
+ /** Format: uuid */
1391
+ accepter_project_id: string;
1392
+ /** Format: uuid */
1393
+ requester_network_id: string;
1394
+ /** Format: uuid */
1395
+ accepter_network_id: string;
1396
+ /** @enum {string} */
1397
+ status: "pending_acceptance" | "provisioning" | "active" | "deleting" | "deleted" | "rejected" | "error";
1398
+ /** Format: date-time */
1399
+ created_at: string;
1400
+ failure_code?: string;
1401
+ };
1402
+ PeeringListResponseBody: {
1403
+ items: components["schemas"]["PeeringResource"][];
1404
+ total: number;
1405
+ };
1406
+ CreatePeeringRequestBody: {
1407
+ name: string;
1408
+ /** Format: uuid */
1409
+ requester_network_id: string;
1410
+ /** Format: uuid */
1411
+ accepter_project_id: string;
1412
+ /** Format: uuid */
1413
+ accepter_network_id: string;
1414
+ };
1163
1415
  Error: {
1164
1416
  code?: string;
1165
1417
  message: string;
1418
+ /**
1419
+ * @description What a given `code` carries alongside the message. The keys depend on the code,
1420
+ * and a client that does not recognise one ignores it.
1421
+ */
1166
1422
  meta?: {
1167
1423
  [key: string]: unknown;
1168
1424
  };
@@ -1170,14 +1426,13 @@ export interface components {
1170
1426
  status: number;
1171
1427
  };
1172
1428
  BackupResource: {
1173
- /** @description Availability zone of the source disk. A restore may target another zone in the same region */
1174
- availability_zone: string;
1175
1429
  /** Format: date-time */
1176
1430
  created_at: string;
1177
1431
  /** Format: uuid */
1178
1432
  id: string;
1179
1433
  name: string;
1180
- region_code: string;
1434
+ /** Format: uuid */
1435
+ region_id: string;
1181
1436
  /**
1182
1437
  * Format: int64
1183
1438
  * @description Capacity of the source disk when the backup was created. A restored disk cannot be smaller than this
@@ -1190,6 +1445,24 @@ export interface components {
1190
1445
  source_disk_id: string;
1191
1446
  /** @enum {string} */
1192
1447
  status: "provisioning" | "available" | "restoring" | "deleting" | "error";
1448
+ /** Format: uuid */
1449
+ order_id: string | null;
1450
+ /** Format: uuid */
1451
+ price_id: string | null;
1452
+ /** Format: uuid */
1453
+ subscription_item_id: string | null;
1454
+ /** @enum {string|null} */
1455
+ access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
1456
+ task: components["schemas"]["Task"] | null;
1457
+ /** Format: int64 */
1458
+ generation: number;
1459
+ /** Format: date-time */
1460
+ observed_at: string | null;
1461
+ /**
1462
+ * Format: uuid
1463
+ * @description Availability zone of the source disk. A restore may target another zone in the same region
1464
+ */
1465
+ source_availability_zone_id: string;
1193
1466
  };
1194
1467
  BackupListResponseBody: {
1195
1468
  items: components["schemas"]["BackupResource"][] | null;
@@ -1198,6 +1471,9 @@ export interface components {
1198
1471
  /** Format: uuid */
1199
1472
  disk_id: string;
1200
1473
  name: string;
1474
+ /** Format: uuid */
1475
+ price_id: string;
1476
+ order: components["schemas"]["OrderOptions"];
1201
1477
  };
1202
1478
  RenameBackupRequestBody: {
1203
1479
  name: string;
@@ -1205,7 +1481,7 @@ export interface components {
1205
1481
  RestoreBackupRequestBody: {
1206
1482
  /**
1207
1483
  * Format: uuid
1208
- * @description May differ from the availability zone of the source disk, but must be in the same region
1484
+ * @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
1209
1485
  */
1210
1486
  disk_type_id: string;
1211
1487
  name: string;
@@ -1214,33 +1490,79 @@ export interface components {
1214
1490
  * @description Matches the size of the backup when omitted. When given, it must not be smaller than the backup
1215
1491
  */
1216
1492
  size_gb?: number;
1493
+ /** Format: uuid */
1494
+ price_id: string;
1495
+ order: components["schemas"]["OrderOptions"];
1217
1496
  };
1218
1497
  DiskResource: {
1219
- attached_instance_id: string | null;
1220
- /** @description Availability zone the disk actually resides in. An instance must be in the same zone to attach it */
1221
- availability_zone: string;
1498
+ /**
1499
+ * Format: uuid
1500
+ * @description Availability zone the disk actually resides in. An instance must be in the same zone to attach it
1501
+ */
1502
+ availability_zone_id: string;
1222
1503
  /** Format: date-time */
1223
1504
  created_at: string;
1224
- /** @description Device name assigned by the system, as seen inside the instance */
1225
- device: string | null;
1226
1505
  /** Format: uuid */
1227
1506
  disk_type_id: string;
1228
1507
  /** Format: uuid */
1229
1508
  id: string;
1230
- /** @description A system disk is released with its instance and can be neither detached nor deleted individually */
1231
- is_system: boolean;
1232
1509
  name: string;
1233
- region_code: string;
1510
+ /** Format: uuid */
1511
+ region_id: string;
1234
1512
  /** Format: int64 */
1235
1513
  size_gb: number;
1514
+ /**
1515
+ * Format: int64
1516
+ * @description IOPS this disk is allowed. Null when its type is not rate-limited.
1517
+ *
1518
+ * Computed from the disk's own capacity, so it grows when the disk is grown — but see the
1519
+ * note on the resize endpoint: growing a disk that is attached is refused, precisely because
1520
+ * the new figure would not take effect until it was attached again.
1521
+ */
1522
+ iops: number | null;
1523
+ /**
1524
+ * Format: int64
1525
+ * @description Throughput this disk is allowed, in bytes per second. Null when its type is not rate-limited
1526
+ */
1527
+ throughput_bytes_per_sec: number | null;
1236
1528
  /** @enum {string} */
1237
1529
  status: "provisioning" | "available" | "attaching" | "in_use" | "detaching" | "resizing" | "reverting" | "restoring" | "releasing" | "deleting" | "error";
1530
+ /** Format: uuid */
1531
+ order_id: string | null;
1532
+ /** Format: uuid */
1533
+ price_id: string | null;
1534
+ /** Format: uuid */
1535
+ subscription_item_id: string | null;
1536
+ /** @enum {string|null} */
1537
+ access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
1538
+ task: components["schemas"]["Task"] | null;
1539
+ attachment?: components["schemas"]["DiskAttachment"] | null;
1540
+ /** Format: int64 */
1541
+ generation: number;
1542
+ /** Format: date-time */
1543
+ observed_at: string | null;
1238
1544
  };
1239
1545
  DiskTypeResource: {
1240
- availability_zone_code: string;
1546
+ /** Format: uuid */
1547
+ availability_zone_id: string;
1241
1548
  /** Format: uuid */
1242
1549
  id: string;
1243
- iops_display: string;
1550
+ /** @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. */
1551
+ for_system: boolean;
1552
+ /**
1553
+ * Format: int64
1554
+ * @description IOPS a disk of `min_size_gb` gets. Null when this type is not rate-limited.
1555
+ *
1556
+ * Performance grows with capacity, so this and `iops_at_max_size` are the two ends of the
1557
+ * range. The exact figure for the size actually bought appears on the disk itself once it
1558
+ * exists.
1559
+ */
1560
+ iops_at_min_size: number | null;
1561
+ /**
1562
+ * Format: int64
1563
+ * @description IOPS a disk of `max_size_gb` gets. Null when this type is not rate-limited
1564
+ */
1565
+ iops_at_max_size: number | null;
1244
1566
  /** Format: int64 */
1245
1567
  max_size_gb: number;
1246
1568
  /** @enum {string} */
@@ -1248,10 +1570,34 @@ export interface components {
1248
1570
  /** Format: int64 */
1249
1571
  min_size_gb: number;
1250
1572
  name: string;
1251
- region_code: string;
1573
+ /** Format: uuid */
1574
+ region_id: string;
1252
1575
  /** Format: int64 */
1253
1576
  step_gb: number;
1254
- throughput_display: string;
1577
+ /**
1578
+ * Format: int64
1579
+ * @description Throughput a disk of `min_size_gb` gets, in **bytes per second**. Null when this type is
1580
+ * not rate-limited.
1581
+ *
1582
+ * Bytes rather than MiB so the number needs no rounding on the way out; divide by 1048576
1583
+ * for MiB/s at the point of display.
1584
+ */
1585
+ throughput_at_min_size: number | null;
1586
+ /**
1587
+ * Format: int64
1588
+ * @description Throughput a disk of `max_size_gb` gets, in bytes per second. Null when this type is not rate-limited
1589
+ */
1590
+ throughput_at_max_size: number | null;
1591
+ /** @description Billing Product ID. Null when no Product is assigned; otherwise `compute`. */
1592
+ product_id: string | null;
1593
+ /** Format: uuid */
1594
+ plan_id: string | null;
1595
+ /** Format: uuid */
1596
+ snapshot_plan_id: string | null;
1597
+ /** Format: uuid */
1598
+ backup_plan_id: string | null;
1599
+ /** Format: uuid */
1600
+ private_image_plan_id: string | null;
1255
1601
  };
1256
1602
  DiskTypeListResponseBody: {
1257
1603
  items: components["schemas"]["DiskTypeResource"][] | null;
@@ -1260,6 +1606,8 @@ export interface components {
1260
1606
  architecture: string;
1261
1607
  /** Format: uuid */
1262
1608
  id: string;
1609
+ /** @description The account this image lets you log in as. The password set at creation belongs to this account */
1610
+ login_username: string;
1263
1611
  /** Format: int64 */
1264
1612
  min_disk_gb: number;
1265
1613
  /** Format: int64 */
@@ -1267,20 +1615,48 @@ export interface components {
1267
1615
  name: string;
1268
1616
  os_family: string;
1269
1617
  os_version: string;
1270
- region_code: string;
1618
+ /** Format: uuid */
1619
+ region_id: string;
1271
1620
  /** @description False means a new password can only be set by rebuilding an instance created from this image */
1272
1621
  supports_password_reset: boolean;
1273
1622
  };
1274
1623
  ImageListResponseBody: {
1275
- items: components["schemas"]["ImageResource"][] | null;
1624
+ items: components["schemas"]["ImageResource"][];
1625
+ /** Format: int64 */
1626
+ page: number;
1627
+ /** Format: int64 */
1628
+ page_size: number;
1629
+ /** Format: int64 */
1630
+ total_count?: number;
1276
1631
  };
1277
1632
  InstanceTypeResource: {
1278
- /** @description Availability zone of this instance type. A disk must be in the same zone to be attached */
1279
- availability_zone_code: string;
1633
+ /** Format: uuid */
1634
+ availability_zone_id: string;
1280
1635
  /** Format: uuid */
1281
1636
  id: string;
1282
- /** Format: int64 */
1637
+ /**
1638
+ * Format: int64
1639
+ * @description The most public bandwidth a machine of this type may be given, in Mbps. Asking for more
1640
+ * when creating a machine, or raising a bound address past it, is refused.
1641
+ *
1642
+ * A ceiling on what can be bought, not a speed. How fast the machine's own interfaces run is
1643
+ * `network_egress_kbps` / `network_ingress_kbps`.
1644
+ */
1283
1645
  max_bandwidth_mbps: number;
1646
+ /**
1647
+ * Format: int64
1648
+ * @description Outbound ceiling of **each** network interface, in kbps. Null when this type is not
1649
+ * rate-limited.
1650
+ *
1651
+ * Per interface rather than per machine: a machine with two interfaces has this ceiling on
1652
+ * each of them, not shared between them. `max_ports` says how many it may have.
1653
+ */
1654
+ network_egress_kbps: number | null;
1655
+ /**
1656
+ * Format: int64
1657
+ * @description Inbound ceiling of each network interface, in kbps. Null when this type is not rate-limited
1658
+ */
1659
+ network_ingress_kbps: number | null;
1284
1660
  /** Format: int64 */
1285
1661
  max_floating_ips: number;
1286
1662
  /** Format: int64 */
@@ -1288,24 +1664,44 @@ export interface components {
1288
1664
  name: string;
1289
1665
  /** Format: int64 */
1290
1666
  ram_mb: number;
1291
- region_code: string;
1667
+ /** Format: uuid */
1668
+ region_id: string;
1292
1669
  /** Format: int64 */
1293
1670
  vcpus: number;
1671
+ /** @description Billing Product ID. Null when no Product is assigned; otherwise `compute`. */
1672
+ product_id: string | null;
1673
+ /** Format: uuid */
1674
+ plan_id: string | null;
1294
1675
  };
1295
1676
  InstanceTypeListResponseBody: {
1296
- items: components["schemas"]["InstanceTypeResource"][] | null;
1677
+ items: components["schemas"]["InstanceTypeResource"][];
1678
+ /** Format: int64 */
1679
+ page: number;
1680
+ /** Format: int64 */
1681
+ page_size: number;
1682
+ /** Format: int64 */
1683
+ total_count?: number;
1297
1684
  };
1298
1685
  RegionResource: {
1299
- code: string;
1686
+ /** @description ISO 3166-1 alpha-2 country this region sits in. Two letters, uppercase. */
1300
1687
  country_code: string;
1688
+ /** @description Display name for this place, shown to tenants (Hong Kong). The stable handle is code. */
1301
1689
  name: string;
1690
+ /** @description The region's code, the way the outside world names this place (hk-1). Stable and human-written; addressing is by id. */
1691
+ code: string;
1692
+ /** Format: uuid */
1693
+ id: string;
1302
1694
  };
1303
1695
  RegionListResponseBody: {
1304
1696
  items: components["schemas"]["RegionResource"][] | null;
1305
1697
  };
1306
1698
  ZoneResource: {
1307
- code: string;
1699
+ /** @description Display name for this zone, shown to tenants (Hong Kong A). The stable handle is code. */
1308
1700
  name: string;
1701
+ /** @description The zone's code within its region (hk-1-a). Stable and human-written; addressing is by id. */
1702
+ code: string;
1703
+ /** Format: uuid */
1704
+ id: string;
1309
1705
  };
1310
1706
  ZoneListResponseBody: {
1311
1707
  items: components["schemas"]["ZoneResource"][] | null;
@@ -1314,7 +1710,10 @@ export interface components {
1314
1710
  items: components["schemas"]["DiskResource"][] | null;
1315
1711
  };
1316
1712
  CreateDiskRequestBody: {
1317
- /** Format: uuid */
1713
+ /**
1714
+ * Format: uuid
1715
+ * @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
1716
+ */
1318
1717
  disk_type_id: string;
1319
1718
  name: string;
1320
1719
  /** Format: int64 */
@@ -1324,6 +1723,9 @@ export interface components {
1324
1723
  * @description Restore from this snapshot. When given, the capacity need only be no smaller than the snapshot
1325
1724
  */
1326
1725
  snapshot_id?: string;
1726
+ /** Format: uuid */
1727
+ price_id: string;
1728
+ order: components["schemas"]["OrderOptions"];
1327
1729
  };
1328
1730
  RenameDiskRequestBody: {
1329
1731
  name: string;
@@ -1334,6 +1736,9 @@ export interface components {
1334
1736
  * @description Must be larger than the current capacity
1335
1737
  */
1336
1738
  size_gb: number;
1739
+ /** Format: uuid */
1740
+ price_id: string;
1741
+ order: components["schemas"]["OrderOptions"];
1337
1742
  };
1338
1743
  RevertDiskRequestBody: {
1339
1744
  /**
@@ -1344,22 +1749,38 @@ export interface components {
1344
1749
  };
1345
1750
  FloatingIPResource: {
1346
1751
  address: string;
1347
- attached_fixed_ip: string | null;
1348
- attached_port_id: string | null;
1349
1752
  /** Format: int64 */
1350
1753
  bandwidth_mbps: number | null;
1351
1754
  /** Format: date-time */
1352
1755
  created_at: string;
1353
- /** Format: date-time */
1354
- detached_at: string | null;
1355
1756
  /** Format: uuid */
1356
1757
  id: string;
1357
- region_code: string;
1358
- /**
1359
- * @description `idle` means the address is not bound to a network interface
1360
- * @enum {string}
1361
- */
1362
- status: "idle" | "bound";
1758
+ /** Format: uuid */
1759
+ region_id: string;
1760
+ /** @enum {string} */
1761
+ status: "pending" | "available" | "deleting" | "error" | "unknown";
1762
+ /** Format: uuid */
1763
+ order_id: string | null;
1764
+ /** Format: uuid */
1765
+ price_id: string | null;
1766
+ /** Format: uuid */
1767
+ subscription_item_id: string | null;
1768
+ /** @enum {string|null} */
1769
+ access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
1770
+ task: components["schemas"]["Task"] | null;
1771
+ /** Format: uuid */
1772
+ bandwidth_order_id: string | null;
1773
+ /** Format: uuid */
1774
+ bandwidth_price_id: string | null;
1775
+ /** Format: uuid */
1776
+ bandwidth_subscription_item_id: string | null;
1777
+ /** @enum {string|null} */
1778
+ bandwidth_access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
1779
+ /** Format: int64 */
1780
+ generation: number;
1781
+ /** Format: date-time */
1782
+ observed_at: string | null;
1783
+ binding: components["schemas"]["IPv4Binding"] | null;
1363
1784
  };
1364
1785
  FloatingIPListResponseBody: {
1365
1786
  items: components["schemas"]["FloatingIPResource"][] | null;
@@ -1367,8 +1788,27 @@ export interface components {
1367
1788
  AllocateFloatingIPRequestBody: {
1368
1789
  /** @description The address to allocate. Allocated by the platform when omitted */
1369
1790
  address?: string;
1791
+ /**
1792
+ * Format: int64
1793
+ * @description The bandwidth ceiling of this address, in Mbit/s, applied to both directions.
1794
+ *
1795
+ * Required, and there is no "unlimited": an address with no ceiling runs at line rate and is
1796
+ * charged nothing for the traffic, while the address itself bills normally — so the invoice
1797
+ * looks correct and nothing anywhere reports it.
1798
+ *
1799
+ * It is billed separately from the address, per Mbit/s-hour, and appears as its own line on
1800
+ * the order. Changing it later goes through the bandwidth endpoint.
1801
+ */
1802
+ bandwidth_mbps: number;
1370
1803
  /** Format: uuid */
1371
1804
  private_network_id: string;
1805
+ /** Format: uuid */
1806
+ ipv4_pool_id: string;
1807
+ /** Format: uuid */
1808
+ price_id: string;
1809
+ /** Format: uuid */
1810
+ bandwidth_price_id: string;
1811
+ order: components["schemas"]["OrderOptions"];
1372
1812
  };
1373
1813
  SetBandwidthRequestBody: {
1374
1814
  /**
@@ -1376,13 +1816,17 @@ export interface components {
1376
1816
  * @description Applied to both directions
1377
1817
  */
1378
1818
  mbps: number;
1819
+ /** Format: uuid */
1820
+ price_id: string;
1821
+ order: components["schemas"]["OrderOptions"];
1379
1822
  };
1380
1823
  BindFloatingIPRequestBody: {
1381
1824
  /** Format: uuid */
1382
- port_id: string;
1825
+ port_address_id: string;
1383
1826
  };
1384
1827
  InstanceResource: {
1385
- availability_zone: string;
1828
+ /** Format: uuid */
1829
+ availability_zone_id: string;
1386
1830
  /** Format: date-time */
1387
1831
  created_at: string;
1388
1832
  /** @description Hostname inside the instance; equals the instance id */
@@ -1401,12 +1845,15 @@ export interface components {
1401
1845
  instance_type_id: string;
1402
1846
  /** @description IPv6 address of the primary network interface. Assigned automatically once IPv6 is enabled on the private network */
1403
1847
  ipv6_address: string | null;
1848
+ /** @description Your own classification of this instance, as key-value pairs. Empty when never set */
1849
+ labels: {
1850
+ [key: string]: string;
1851
+ };
1852
+ /** @description The account to log in as over SSH. The password set at creation belongs to this account */
1853
+ login_username: string;
1404
1854
  name: string;
1405
- /**
1406
- * Format: uuid
1407
- * @description Non-empty while a resize awaits confirmation. Confirming puts this type into effect, reverting discards it
1408
- */
1409
- pending_instance_type_id: string | null;
1855
+ /** @description A free-text note about this instance. Empty when never set */
1856
+ notes: string;
1410
1857
  /**
1411
1858
  * Format: uuid
1412
1859
  * @description Non-empty when the instance was created from a private image
@@ -1414,50 +1861,96 @@ export interface components {
1414
1861
  private_image_id: string | null;
1415
1862
  /** @description Private address of the instance */
1416
1863
  private_ip: string | null;
1417
- /** @description Private network of the primary network interface */
1864
+ /** Format: uuid */
1418
1865
  private_network_id: string | null;
1419
1866
  /** @description Floating IPv4 addresses bound to the primary network interface; an empty array when none are bound */
1420
1867
  public_ips: string[] | null;
1421
- region_code: string;
1422
- /**
1423
- * @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.
1424
- *
1425
- * `transitioning` is the fallback for a change that falls into none of the categories above. It does not indicate an error; keep polling.
1426
- *
1427
- * `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.
1428
- * @enum {string}
1429
- */
1430
- status: "provisioning" | "running" | "stopped" | "starting" | "stopping" | "rebooting" | "transitioning" | "resizing" | "resize_verifying" | "error" | "deleting" | "suspended";
1431
- /** @description Subnet of the primary network interface */
1868
+ /** Format: uuid */
1869
+ region_id: string;
1870
+ /** @enum {string} */
1871
+ status: "pending" | "building" | "active" | "stopped" | "paused" | "suspended" | "shelved" | "shelved_offloaded" | "rescued" | "deleting" | "deleted" | "error" | "unknown";
1872
+ /** Format: uuid */
1432
1873
  subnet_id: string | null;
1433
- /**
1434
- * Format: date-time
1435
- * @description Non-empty once the platform has suspended the instance, which must be lifted before any operation
1436
- */
1437
- suspended_at: string | null;
1438
1874
  /** Format: date-time */
1439
1875
  updated_at: string;
1876
+ /** @enum {string} */
1877
+ desired_state: "running" | "stopped" | "deleted";
1878
+ /** @enum {string} */
1879
+ power_state: "no_state" | "running" | "paused" | "shutdown" | "crashed" | "suspended" | "unknown";
1880
+ /** @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. */
1881
+ task_state: string;
1882
+ /** Format: int64 */
1883
+ generation: number;
1884
+ /** Format: date-time */
1885
+ observed_at: string | null;
1886
+ restrictions: components["schemas"]["InstanceRestriction"][];
1887
+ task: components["schemas"]["Task"] | null;
1888
+ /** Format: uuid */
1889
+ order_id: string | null;
1890
+ /** Format: uuid */
1891
+ price_id: string | null;
1892
+ /** Format: uuid */
1893
+ subscription_item_id: string | null;
1894
+ /** @enum {string|null} */
1895
+ access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
1896
+ /**
1897
+ * Format: uuid
1898
+ * @description Non-empty when the instance was created from a disk you already had, instead of from an image
1899
+ */
1900
+ source_disk_id: string | null;
1440
1901
  };
1441
1902
  InstanceListResponseBody: {
1442
- items: components["schemas"]["InstanceResource"][] | null;
1903
+ items: components["schemas"]["InstanceResource"][];
1904
+ /** Format: int64 */
1905
+ page: number;
1906
+ /** Format: int64 */
1907
+ page_size: number;
1908
+ /** Format: int64 */
1909
+ total_count?: number;
1443
1910
  };
1444
1911
  LaunchInstanceRequestBody: {
1912
+ /**
1913
+ * Format: uuid
1914
+ * @description Bind a floating IP you already hold, instead of allocating a new one. It must be idle and in
1915
+ * the same region.
1916
+ *
1917
+ * Mutually exclusive with `bandwidth_mbps`: an address you already hold has its own bandwidth
1918
+ * ceiling, set when it was allocated, and changing it is a separate operation.
1919
+ *
1920
+ * Like `bandwidth_mbps`, this happens **inside the creation**: if binding fails, no instance is
1921
+ * created. Binding afterwards is still possible from the instance page, but then it is two
1922
+ * operations and a failure in between leaves an instance you cannot reach.
1923
+ *
1924
+ * Only one instance can be created when it is used — one address binds to one interface.
1925
+ */
1926
+ floating_ip_id?: string;
1445
1927
  /**
1446
1928
  * Format: int64
1447
1929
  * @description Number of instances to create; 1 when omitted. Names are numbered automatically for several
1930
+ * @default 1
1448
1931
  */
1449
1932
  count?: number;
1450
1933
  /** @description Have the platform generate a random password, returned only in this response */
1451
1934
  generate_password?: boolean;
1452
1935
  /**
1453
1936
  * Format: uuid
1454
- * @description A platform image. Exactly one of this and `private_image_id`
1937
+ * @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`
1938
+ */
1939
+ boot_disk_id?: string;
1940
+ /**
1941
+ * Format: uuid
1942
+ * @description A platform image, and it must be one currently on sale. Exactly one of this, `private_image_id` and `boot_disk_id`
1455
1943
  */
1456
1944
  image_id?: string;
1457
- /** Format: uuid */
1945
+ /**
1946
+ * Format: uuid
1947
+ * @description An instance type currently on sale. A withdrawn one is rejected even though its identifier still resolves
1948
+ */
1458
1949
  instance_type_id: string;
1950
+ /** @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 */
1951
+ login_username?: string;
1459
1952
  name: string;
1460
- /** @description Root password. Only the SSH public keys of the project are used when omitted */
1953
+ /** @description The password to set, on the login account and on root. Only the SSH public keys of the project are used when omitted */
1461
1954
  password?: string;
1462
1955
  /**
1463
1956
  * Format: uuid
@@ -1466,14 +1959,9 @@ export interface components {
1466
1959
  port_id?: string;
1467
1960
  /**
1468
1961
  * Format: uuid
1469
- * @description A private image. Exactly one of this and `image_id`
1962
+ * @description A private image. Exactly one of this, `image_id` and `boot_disk_id`
1470
1963
  */
1471
1964
  private_image_id?: string;
1472
- /**
1473
- * Format: int64
1474
- * @description System disk capacity in GB. Chosen automatically from the requirement of the image and the platform minimum when omitted
1475
- */
1476
- root_disk_gb?: number;
1477
1965
  /** @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 */
1478
1966
  security_group_ids?: string[] | null;
1479
1967
  /**
@@ -1481,22 +1969,27 @@ export interface components {
1481
1969
  * @description Create the primary network interface in this subnet. Exactly one of this and `port_id`
1482
1970
  */
1483
1971
  subnet_id?: string;
1972
+ order: components["schemas"]["OrderOptions"];
1973
+ /** Format: uuid */
1974
+ price_id: string;
1975
+ boot_disk?: components["schemas"]["NewBootDisk"];
1976
+ floating_ip?: components["schemas"]["NewFloatingIP"];
1484
1977
  };
1485
- LaunchInstanceResponseBody: {
1486
- /** @description Non-empty when only some of the instances were created, stating why the sequence stopped */
1487
- failure: string | null;
1488
- /** @description Returned in request order; an array even for a single instance */
1489
- instances: components["schemas"]["InstanceResource"][] | null;
1490
- /** @description Returned only in this response; store it immediately. All instances of a batch share it */
1491
- password: string;
1978
+ SetInstanceLabelsRequestBody: {
1979
+ /** @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 */
1980
+ labels: {
1981
+ [key: string]: string;
1982
+ };
1983
+ };
1984
+ SetInstanceNotesRequestBody: {
1985
+ /** @description The complete note. Send an empty string to clear it */
1986
+ notes: string;
1492
1987
  };
1493
1988
  RenameInstanceRequestBody: {
1494
1989
  name: string;
1495
1990
  };
1496
- ActOnInstanceRequestBody: {
1497
- /** @enum {string} */
1498
- action: "start" | "stop" | "reboot";
1499
- /** @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 */
1991
+ RebootInstanceRequestBody: {
1992
+ /** @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 */
1500
1993
  force?: boolean;
1501
1994
  };
1502
1995
  RunCommandRequestBody: {
@@ -1507,16 +2000,11 @@ export interface components {
1507
2000
  * @description Kill the command after this long. 60 when omitted
1508
2001
  */
1509
2002
  timeout_seconds?: number;
1510
- /**
1511
- * @description The SSH user to log in as. It is the account the platform sets a password for at creation
1512
- * @default root
1513
- */
1514
- username?: string;
1515
2003
  };
1516
2004
  CommandResultResponseBody: {
1517
2005
  /**
1518
2006
  * Format: int64
1519
- * @description Null when the command was killed rather than finishing on its own, which includes the timeout
2007
+ * @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
1520
2008
  */
1521
2009
  exit_code: number | null;
1522
2010
  stderr: string;
@@ -1548,7 +2036,7 @@ export interface components {
1548
2036
  generate_password?: boolean;
1549
2037
  /**
1550
2038
  * Format: uuid
1551
- * @description A platform image. Exactly one of this and `private_image_id`
2039
+ * @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`
1552
2040
  */
1553
2041
  image_id?: string;
1554
2042
  password?: string;
@@ -1569,6 +2057,9 @@ export interface components {
1569
2057
  * @description Must be in the same region and availability zone as the current instance type
1570
2058
  */
1571
2059
  instance_type_id: string;
2060
+ order: components["schemas"]["OrderOptions"];
2061
+ /** Format: uuid */
2062
+ price_id: string;
1572
2063
  };
1573
2064
  AttachDiskRequestBody: {
1574
2065
  /** Format: uuid */
@@ -1579,21 +2070,22 @@ export interface components {
1579
2070
  floating_ip_id: string;
1580
2071
  };
1581
2072
  PortResource: {
1582
- attached_instance_id: string | null;
1583
2073
  /** Format: uuid */
1584
2074
  id: string;
1585
- ipv6_address: string | null;
1586
- /** @description A primary network interface is created and released with its instance and cannot be detached individually */
1587
- is_primary: boolean;
1588
2075
  mac: string | null;
1589
2076
  name: string;
1590
- private_ip: string | null;
1591
2077
  /** Format: uuid */
1592
2078
  private_network_id: string;
1593
2079
  /** @description Floating IPv4 addresses bound to this network interface; an empty array when none are bound */
1594
2080
  public_ips: string[] | null;
1595
- /** Format: uuid */
1596
- subnet_id: string;
2081
+ addresses?: components["schemas"]["PortAddress"][];
2082
+ attachment?: components["schemas"]["PortAttachment"] | null;
2083
+ /** @enum {string} */
2084
+ status: "pending" | "available" | "deleting" | "error" | "unknown";
2085
+ /** Format: int64 */
2086
+ generation: number;
2087
+ /** Format: date-time */
2088
+ observed_at: string | null;
1597
2089
  };
1598
2090
  PortListResponseBody: {
1599
2091
  items: components["schemas"]["PortResource"][] | null;
@@ -1607,6 +2099,12 @@ export interface components {
1607
2099
  action: string;
1608
2100
  /** @description The user who initiated the operation. Empty when the platform performed it */
1609
2101
  actor: string | null;
2102
+ /**
2103
+ * @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.
2104
+ *
2105
+ * 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.
2106
+ */
2107
+ actor_name: string | null;
1610
2108
  /** @description True when the operation was performed by the platform */
1611
2109
  by_platform: boolean;
1612
2110
  /** Format: date-time */
@@ -1619,25 +2117,30 @@ export interface components {
1619
2117
  payload: {
1620
2118
  [key: string]: unknown;
1621
2119
  };
1622
- region_code: string | null;
2120
+ /** Format: uuid */
2121
+ region_id: string | null;
1623
2122
  /** @description Empty for create operations: the id of the new resource is in the response, not in the request path */
1624
2123
  subject_id: string;
1625
2124
  subject_type: string;
1626
2125
  succeeded: boolean;
1627
2126
  };
1628
2127
  OperationLogListResponseBody: {
1629
- items: components["schemas"]["OperationLogResource"][] | null;
2128
+ items: components["schemas"]["OperationLogResource"][];
1630
2129
  /** Format: int64 */
1631
- total: number;
2130
+ page: number;
2131
+ /** Format: int64 */
2132
+ page_size: number;
2133
+ /** Format: int64 */
2134
+ total_count?: number;
1632
2135
  };
1633
2136
  CreatePortRequestBody: {
1634
2137
  name?: string;
1635
- /** @description The private address to assign. Allocated automatically when omitted */
1636
- private_ip?: string;
1637
2138
  /** @description At least one, and all must belong to the same private network */
1638
2139
  security_group_ids: string[] | null;
1639
2140
  /** Format: uuid */
1640
2141
  subnet_id: string;
2142
+ /** @description The private address to assign. Allocated automatically when omitted */
2143
+ address?: string;
1641
2144
  };
1642
2145
  PrivateImageResource: {
1643
2146
  architecture: string;
@@ -1647,6 +2150,8 @@ export interface components {
1647
2150
  failure: string | null;
1648
2151
  /** Format: uuid */
1649
2152
  id: string;
2153
+ /** @description The account this image lets you log in as. The password set at creation belongs to this account */
2154
+ login_username: string;
1650
2155
  /**
1651
2156
  * Format: int64
1652
2157
  * @description The system disk of an instance created from this image cannot be smaller than this
@@ -1660,8 +2165,8 @@ export interface components {
1660
2165
  name: string;
1661
2166
  os_family: string;
1662
2167
  os_version: string;
1663
- /** @description An image can only be used in the region that holds it */
1664
- region_code: string;
2168
+ /** Format: uuid */
2169
+ region_id: string;
1665
2170
  /**
1666
2171
  * Format: int64
1667
2172
  * @description Storage occupied by the image; 0 until the capture completes
@@ -1676,9 +2181,28 @@ export interface components {
1676
2181
  status: "provisioning" | "uploading" | "available" | "deleting" | "error";
1677
2182
  /** @description False means a new password can only be set by rebuilding an instance created from this image */
1678
2183
  supports_password_reset: boolean;
2184
+ /** Format: uuid */
2185
+ order_id: string | null;
2186
+ /** Format: uuid */
2187
+ price_id: string | null;
2188
+ /** Format: uuid */
2189
+ subscription_item_id: string | null;
2190
+ /** @enum {string|null} */
2191
+ access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
2192
+ task: components["schemas"]["Task"] | null;
2193
+ /** Format: int64 */
2194
+ generation: number;
2195
+ /** Format: date-time */
2196
+ observed_at: string | null;
1679
2197
  };
1680
2198
  PrivateImageListResponseBody: {
1681
- items: components["schemas"]["PrivateImageResource"][] | null;
2199
+ items: components["schemas"]["PrivateImageResource"][];
2200
+ /** Format: int64 */
2201
+ page: number;
2202
+ /** Format: int64 */
2203
+ page_size: number;
2204
+ /** Format: int64 */
2205
+ total_count?: number;
1682
2206
  };
1683
2207
  CreatePrivateImageRequestBody: {
1684
2208
  /**
@@ -1687,6 +2211,9 @@ export interface components {
1687
2211
  */
1688
2212
  instance_id: string;
1689
2213
  name: string;
2214
+ /** Format: uuid */
2215
+ price_id: string;
2216
+ order: components["schemas"]["OrderOptions"];
1690
2217
  };
1691
2218
  RenamePrivateImageRequestBody: {
1692
2219
  name: string;
@@ -1699,9 +2226,13 @@ export interface components {
1699
2226
  /** Format: uuid */
1700
2227
  id: string;
1701
2228
  name: string;
1702
- region_code: string;
1703
- /** @enum {string} */
1704
- status: "available" | "error";
2229
+ /** Format: uuid */
2230
+ region_id: string;
2231
+ /**
2232
+ * @description Only `available` accepts new instances, interfaces and floating IPs
2233
+ * @enum {string}
2234
+ */
2235
+ status: "pending" | "available" | "deleting" | "error" | "unknown";
1705
2236
  /** Format: date-time */
1706
2237
  updated_at: string;
1707
2238
  };
@@ -1712,7 +2243,8 @@ export interface components {
1712
2243
  /** @description Must be an RFC 1918 private CIDR with a prefix length between /8 and /24, for example `10.0.0.0/16` */
1713
2244
  cidr: string;
1714
2245
  name: string;
1715
- region_code: string;
2246
+ /** Format: uuid */
2247
+ region_id: string;
1716
2248
  };
1717
2249
  RenamePrivateNetworkRequestBody: {
1718
2250
  name: string;
@@ -1728,13 +2260,19 @@ export interface components {
1728
2260
  status: "pending" | "active" | "draining";
1729
2261
  };
1730
2262
  RouteResource: {
2263
+ /**
2264
+ * Format: uuid
2265
+ * @description System-owned peering route. Delete the peering to remove this route.
2266
+ */
2267
+ peering_id?: string;
1731
2268
  /** Format: date-time */
1732
2269
  created_at: string;
1733
2270
  description: string;
1734
2271
  destination: string;
1735
2272
  /** Format: uuid */
1736
2273
  id: string;
1737
- nexthop: string;
2274
+ /** @description Present for custom routes; peering routes expose peering_id instead. */
2275
+ nexthop?: string;
1738
2276
  };
1739
2277
  RouteListResponseBody: {
1740
2278
  items: components["schemas"]["RouteResource"][] | null;
@@ -1840,38 +2378,268 @@ export interface components {
1840
2378
  /** @description Equivalent to `0.0.0.0/0` or `::/0` when omitted */
1841
2379
  remote_ip_prefix?: string;
1842
2380
  };
1843
- SnapshotResource: {
1844
- /** @description A disk restored from this snapshot must reside in this availability zone */
1845
- availability_zone: string;
1846
- /** Format: date-time */
1847
- created_at: string;
1848
- /** Format: uuid */
1849
- disk_id: string;
1850
- /** Format: uuid */
1851
- id: string;
1852
- name: string;
1853
- region_code: string;
2381
+ SnapshotResource: {
2382
+ /**
2383
+ * Format: uuid
2384
+ * @description A disk restored from this snapshot must reside in this availability zone
2385
+ */
2386
+ availability_zone_id: string;
2387
+ /** Format: date-time */
2388
+ created_at: string;
2389
+ /** Format: uuid */
2390
+ disk_id: string;
2391
+ /** Format: uuid */
2392
+ id: string;
2393
+ name: string;
2394
+ /** Format: uuid */
2395
+ region_id: string;
2396
+ /**
2397
+ * Format: int64
2398
+ * @description Capacity of the source disk when the snapshot was created. A disk restored from it cannot be smaller
2399
+ */
2400
+ size_gb: number;
2401
+ /** @enum {string} */
2402
+ status: "provisioning" | "available" | "restoring" | "deleting" | "error";
2403
+ /** Format: uuid */
2404
+ order_id: string | null;
2405
+ /** Format: uuid */
2406
+ price_id: string | null;
2407
+ /** Format: uuid */
2408
+ subscription_item_id: string | null;
2409
+ /** @enum {string|null} */
2410
+ access_state: "pending" | "enabled" | "suspended" | "reclaimed" | null;
2411
+ task: components["schemas"]["Task"] | null;
2412
+ /** Format: int64 */
2413
+ generation: number;
2414
+ /** Format: date-time */
2415
+ observed_at: string | null;
2416
+ };
2417
+ SnapshotListResponseBody: {
2418
+ items: components["schemas"]["SnapshotResource"][] | null;
2419
+ };
2420
+ CreateSnapshotRequestBody: {
2421
+ /** Format: uuid */
2422
+ disk_id: string;
2423
+ name: string;
2424
+ /** Format: uuid */
2425
+ price_id: string;
2426
+ order: components["schemas"]["OrderOptions"];
2427
+ };
2428
+ RenameSecurityGroupRequestBody: {
2429
+ name: string;
2430
+ };
2431
+ RenameSnapshotRequestBody: {
2432
+ name: string;
2433
+ };
2434
+ /** @description Purchase options. Every request places an order of its own. */
2435
+ OrderOptions: {
2436
+ /**
2437
+ * @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. When false, the order is created without payment, and its invoice, if any, is paid through Billing.
2438
+ * @default true
2439
+ */
2440
+ auto_pay?: boolean;
2441
+ expected_amount?: string;
2442
+ redemption_code?: string;
2443
+ };
2444
+ /** @description Identifies the purchase. Read the order for purchase progress and its invoice for amounts and payment status. */
2445
+ PlacedOrder: {
2446
+ /**
2447
+ * Format: uuid
2448
+ * @description The invoice for this purchase. Null when there is no immediate invoice. Read the invoice for its current payment state.
2449
+ */
2450
+ invoice_id: string | null;
2451
+ /**
2452
+ * Format: uuid
2453
+ * @description The order, including for purchases without an immediate charge. Payment alone does not imply that the service has completed delivery.
2454
+ */
2455
+ order_id: string;
2456
+ };
2457
+ /** @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. */
2458
+ PurchaseResult: {
2459
+ /**
2460
+ * Format: uuid
2461
+ * @description The Compute task that carries out the purchase.
2462
+ */
2463
+ task_id: string;
2464
+ order: components["schemas"]["PlacedOrder"];
2465
+ };
2466
+ /** @description A system disk purchased in the same order. Required when booting from an image; mutually exclusive with boot_disk_id. */
2467
+ NewBootDisk: {
2468
+ /**
2469
+ * Format: uuid
2470
+ * @description A system disk type on sale in the availability zone of the instance, one whose `for_system` is true
2471
+ */
2472
+ disk_type_id: string;
2473
+ /** Format: int64 */
2474
+ size_gb: number;
2475
+ /** Format: uuid */
2476
+ price_id: string;
2477
+ /** @default true */
2478
+ delete_with_instance?: boolean;
2479
+ };
2480
+ /** @description An address and bandwidth purchased in the same order. Mutually exclusive with floating_ip_id. */
2481
+ NewFloatingIP: {
2482
+ /** Format: uuid */
2483
+ price_id: string;
2484
+ /** Format: uuid */
2485
+ bandwidth_price_id: string;
2486
+ /** Format: int64 */
2487
+ bandwidth_mbps: number;
2488
+ /** Format: uuid */
2489
+ ipv4_pool_id: string;
2490
+ };
2491
+ /** @description An independent restriction on use. Removing one restriction never removes another source’s restriction or changes the user’s desired power state. */
2492
+ InstanceRestriction: {
2493
+ /** Format: uuid */
2494
+ id: string;
2495
+ /** @enum {string} */
2496
+ source: "billing" | "iam" | "operator";
2497
+ source_id: string;
2498
+ reason_code: string;
2499
+ /** Format: date-time */
2500
+ created_at: string;
2501
+ };
2502
+ PowerRequest: {
2503
+ /** Format: int64 */
2504
+ expected_generation?: number;
2505
+ };
2506
+ /** @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. */
2507
+ Task: {
2508
+ /** Format: uuid */
2509
+ id: string;
2510
+ /** @description Action requested from the owning service. */
2511
+ type: string;
2512
+ /** @enum {string} */
2513
+ state: "pending" | "running" | "succeeded" | "failed" | "canceled";
2514
+ /** @description Terminal failure. Absent while work can still recover. */
2515
+ error?: components["schemas"]["Error"];
2516
+ /** Format: date-time */
2517
+ created_at: string;
2518
+ /** Format: date-time */
2519
+ started_at: string | null;
2520
+ /** Format: date-time */
2521
+ completed_at: string | null;
2522
+ };
2523
+ PortAddress: {
2524
+ /** Format: uuid */
2525
+ id: string;
2526
+ /** Format: uuid */
2527
+ subnet_id: string;
2528
+ address: string;
2529
+ is_primary: boolean;
2530
+ /** @enum {string} */
2531
+ state: "reserved" | "assigned" | "releasing" | "released" | "unknown";
2532
+ /** Format: date-time */
2533
+ assigned_at: string | null;
2534
+ /** Format: date-time */
2535
+ released_at: string | null;
2536
+ };
2537
+ DiskAttachment: {
2538
+ /** Format: uuid */
2539
+ id: string;
2540
+ /** Format: uuid */
2541
+ instance_id: string;
2542
+ /** Format: uuid */
2543
+ disk_id: string;
2544
+ /** @enum {string} */
2545
+ role: "boot" | "data";
2546
+ delete_with_instance: boolean;
2547
+ /** @enum {string} */
2548
+ state: "reserved" | "attaching" | "attached" | "detaching" | "released" | "unknown";
2549
+ /** Format: date-time */
2550
+ attached_at: string | null;
2551
+ /** Format: date-time */
2552
+ detached_at: string | null;
2553
+ /** Format: date-time */
2554
+ released_at: string | null;
2555
+ device: string | null;
2556
+ };
2557
+ DiskAttachmentList: {
2558
+ items: components["schemas"]["DiskAttachment"][];
2559
+ /** Format: int64 */
2560
+ page: number;
2561
+ /** Format: int64 */
2562
+ page_size: number;
2563
+ /** Format: int64 */
2564
+ total_count: number;
2565
+ };
2566
+ PortAttachment: {
2567
+ /** Format: uuid */
2568
+ id: string;
2569
+ /** Format: uuid */
2570
+ instance_id: string;
2571
+ /** Format: uuid */
2572
+ port_id: string;
2573
+ /** @enum {string} */
2574
+ role: "primary" | "additional";
2575
+ delete_with_instance: boolean;
2576
+ /** @enum {string} */
2577
+ state: "reserved" | "attaching" | "attached" | "detaching" | "released" | "unknown";
2578
+ /** Format: date-time */
2579
+ attached_at: string | null;
2580
+ /** Format: date-time */
2581
+ detached_at: string | null;
2582
+ /** Format: date-time */
2583
+ released_at: string | null;
2584
+ };
2585
+ PortAttachmentList: {
2586
+ items: components["schemas"]["PortAttachment"][];
2587
+ /** Format: int64 */
2588
+ page: number;
2589
+ /** Format: int64 */
2590
+ page_size: number;
2591
+ /** Format: int64 */
2592
+ total_count: number;
2593
+ };
2594
+ LaunchInstanceResponseBody: {
2595
+ /** @description Instances created by this operation. Empty before resource creation starts. */
2596
+ instance_ids: string[];
1854
2597
  /**
1855
- * Format: int64
1856
- * @description Capacity of the source disk when the snapshot was created. A disk restored from it cannot be smaller
2598
+ * Format: uuid
2599
+ * @description The Compute task that carries out the purchase.
1857
2600
  */
1858
- size_gb: number;
1859
- /** @enum {string} */
1860
- status: "provisioning" | "available" | "restoring" | "deleting" | "error";
1861
- };
1862
- SnapshotListResponseBody: {
1863
- items: components["schemas"]["SnapshotResource"][] | null;
2601
+ task_id: string;
2602
+ order: components["schemas"]["PlacedOrder"];
2603
+ /** @description Generated login password, returned only by this response. Null when no password was generated. */
2604
+ password: string | null;
1864
2605
  };
1865
- CreateSnapshotRequestBody: {
2606
+ IPv4PoolResource: {
1866
2607
  /** Format: uuid */
1867
- disk_id: string;
2608
+ id: string;
2609
+ /** Format: uuid */
2610
+ region_id: string;
1868
2611
  name: string;
2612
+ /** Format: uuid */
2613
+ plan_id: string | null;
2614
+ /** Format: uuid */
2615
+ bandwidth_plan_id: string | null;
1869
2616
  };
1870
- RenameSecurityGroupRequestBody: {
1871
- name: string;
2617
+ IPv4PoolListResponseBody: {
2618
+ items: components["schemas"]["IPv4PoolResource"][];
2619
+ /** Format: int64 */
2620
+ page: number;
2621
+ /** Format: int64 */
2622
+ page_size: number;
2623
+ /** Format: int64 */
2624
+ total_count?: number;
1872
2625
  };
1873
- RenameSnapshotRequestBody: {
1874
- name: string;
2626
+ IPv4Binding: {
2627
+ /** Format: uuid */
2628
+ id: string;
2629
+ /** Format: uuid */
2630
+ ipv4_allocation_id: string;
2631
+ /** Format: uuid */
2632
+ port_address_id: string;
2633
+ address: string;
2634
+ fixed_ip: string;
2635
+ /** @enum {string} */
2636
+ state: "binding" | "bound" | "unbinding" | "released" | "unknown";
2637
+ /** Format: date-time */
2638
+ bound_at: string | null;
2639
+ /** Format: date-time */
2640
+ unbound_at: string | null;
2641
+ /** Format: date-time */
2642
+ released_at: string | null;
1875
2643
  };
1876
2644
  };
1877
2645
  responses: never;
@@ -1933,7 +2701,7 @@ export interface operations {
1933
2701
  [name: string]: unknown;
1934
2702
  };
1935
2703
  content: {
1936
- "application/json": components["schemas"]["BackupResource"];
2704
+ "application/json": components["schemas"]["PurchaseResult"];
1937
2705
  };
1938
2706
  };
1939
2707
  /** @description Error */
@@ -1989,12 +2757,23 @@ export interface operations {
1989
2757
  };
1990
2758
  requestBody?: never;
1991
2759
  responses: {
1992
- /** @description No Content */
1993
- 204: {
2760
+ /** @description The action was accepted. Wait for the returned task to finish. */
2761
+ 202: {
1994
2762
  headers: {
1995
2763
  [name: string]: unknown;
1996
2764
  };
1997
- content?: never;
2765
+ content: {
2766
+ "application/json": components["schemas"]["Task"];
2767
+ };
2768
+ };
2769
+ /** @description The deletion was refused. */
2770
+ 409: {
2771
+ headers: {
2772
+ [name: string]: unknown;
2773
+ };
2774
+ content: {
2775
+ "application/json": components["schemas"]["Error"];
2776
+ };
1998
2777
  };
1999
2778
  /** @description Error */
2000
2779
  default: {
@@ -2063,7 +2842,7 @@ export interface operations {
2063
2842
  [name: string]: unknown;
2064
2843
  };
2065
2844
  content: {
2066
- "application/json": components["schemas"]["DiskResource"];
2845
+ "application/json": components["schemas"]["PurchaseResult"];
2067
2846
  };
2068
2847
  };
2069
2848
  /** @description Error */
@@ -2080,7 +2859,9 @@ export interface operations {
2080
2859
  "list-disk-types": {
2081
2860
  parameters: {
2082
2861
  query: {
2083
- region_code: string;
2862
+ region_id: string;
2863
+ /** @description `true` lists only system disk types and `false` only data disk types. Both are listed when omitted. */
2864
+ for_system?: boolean;
2084
2865
  };
2085
2866
  header?: never;
2086
2867
  path?: never;
@@ -2108,10 +2889,43 @@ export interface operations {
2108
2889
  };
2109
2890
  };
2110
2891
  };
2892
+ "get-disk-type": {
2893
+ parameters: {
2894
+ query?: never;
2895
+ header?: never;
2896
+ path: {
2897
+ diskTypeId: string;
2898
+ };
2899
+ cookie?: never;
2900
+ };
2901
+ requestBody?: never;
2902
+ responses: {
2903
+ /** @description OK */
2904
+ 200: {
2905
+ headers: {
2906
+ [name: string]: unknown;
2907
+ };
2908
+ content: {
2909
+ "application/json": components["schemas"]["DiskTypeResource"];
2910
+ };
2911
+ };
2912
+ /** @description Error */
2913
+ default: {
2914
+ headers: {
2915
+ [name: string]: unknown;
2916
+ };
2917
+ content: {
2918
+ "application/json": components["schemas"]["Error"];
2919
+ };
2920
+ };
2921
+ };
2922
+ };
2111
2923
  "list-images": {
2112
2924
  parameters: {
2113
2925
  query: {
2114
- region_code: string;
2926
+ region_id: string;
2927
+ page?: number;
2928
+ page_size?: number;
2115
2929
  };
2116
2930
  header?: never;
2117
2931
  path?: never;
@@ -2142,7 +2956,9 @@ export interface operations {
2142
2956
  "list-instance-types": {
2143
2957
  parameters: {
2144
2958
  query: {
2145
- region_code: string;
2959
+ region_id: string;
2960
+ page?: number;
2961
+ page_size?: number;
2146
2962
  };
2147
2963
  header?: never;
2148
2964
  path?: never;
@@ -2204,7 +3020,7 @@ export interface operations {
2204
3020
  query?: never;
2205
3021
  header?: never;
2206
3022
  path: {
2207
- regionCode: string;
3023
+ regionId: string;
2208
3024
  };
2209
3025
  cookie?: never;
2210
3026
  };
@@ -2233,9 +3049,9 @@ export interface operations {
2233
3049
  "list-disks": {
2234
3050
  parameters: {
2235
3051
  query?: {
2236
- region_code?: string;
3052
+ region_id?: string;
2237
3053
  /** @description Supplied together with `region_code` to filter attachable disks */
2238
- availability_zone?: string;
3054
+ availability_zone_id?: string;
2239
3055
  };
2240
3056
  header?: never;
2241
3057
  path?: never;
@@ -2282,7 +3098,7 @@ export interface operations {
2282
3098
  [name: string]: unknown;
2283
3099
  };
2284
3100
  content: {
2285
- "application/json": components["schemas"]["DiskResource"];
3101
+ "application/json": components["schemas"]["PurchaseResult"];
2286
3102
  };
2287
3103
  };
2288
3104
  /** @description Error */
@@ -2338,12 +3154,23 @@ export interface operations {
2338
3154
  };
2339
3155
  requestBody?: never;
2340
3156
  responses: {
2341
- /** @description No Content */
2342
- 204: {
3157
+ /** @description The action was accepted. Wait for the returned task to finish. */
3158
+ 202: {
2343
3159
  headers: {
2344
3160
  [name: string]: unknown;
2345
3161
  };
2346
- content?: never;
3162
+ content: {
3163
+ "application/json": components["schemas"]["Task"];
3164
+ };
3165
+ };
3166
+ /** @description The deletion was refused. */
3167
+ 409: {
3168
+ headers: {
3169
+ [name: string]: unknown;
3170
+ };
3171
+ content: {
3172
+ "application/json": components["schemas"]["Error"];
3173
+ };
2347
3174
  };
2348
3175
  /** @description Error */
2349
3176
  default: {
@@ -2412,7 +3239,7 @@ export interface operations {
2412
3239
  [name: string]: unknown;
2413
3240
  };
2414
3241
  content: {
2415
- "application/json": components["schemas"]["DiskResource"];
3242
+ "application/json": components["schemas"]["PurchaseResult"];
2416
3243
  };
2417
3244
  };
2418
3245
  /** @description Error */
@@ -2441,13 +3268,13 @@ export interface operations {
2441
3268
  };
2442
3269
  };
2443
3270
  responses: {
2444
- /** @description OK */
2445
- 200: {
3271
+ /** @description The action was accepted. Wait for the returned task to finish. */
3272
+ 202: {
2446
3273
  headers: {
2447
3274
  [name: string]: unknown;
2448
3275
  };
2449
3276
  content: {
2450
- "application/json": components["schemas"]["DiskResource"];
3277
+ "application/json": components["schemas"]["Task"];
2451
3278
  };
2452
3279
  };
2453
3280
  /** @description Error */
@@ -2509,7 +3336,7 @@ export interface operations {
2509
3336
  [name: string]: unknown;
2510
3337
  };
2511
3338
  content: {
2512
- "application/json": components["schemas"]["FloatingIPResource"];
3339
+ "application/json": components["schemas"]["PurchaseResult"];
2513
3340
  };
2514
3341
  };
2515
3342
  /** @description Error */
@@ -2565,12 +3392,23 @@ export interface operations {
2565
3392
  };
2566
3393
  requestBody?: never;
2567
3394
  responses: {
2568
- /** @description No Content */
2569
- 204: {
3395
+ /** @description The release has been accepted. */
3396
+ 202: {
2570
3397
  headers: {
2571
3398
  [name: string]: unknown;
2572
3399
  };
2573
- content?: never;
3400
+ content: {
3401
+ "application/json": components["schemas"]["Task"];
3402
+ };
3403
+ };
3404
+ /** @description The deletion was refused. */
3405
+ 409: {
3406
+ headers: {
3407
+ [name: string]: unknown;
3408
+ };
3409
+ content: {
3410
+ "application/json": components["schemas"]["Error"];
3411
+ };
2574
3412
  };
2575
3413
  /** @description Error */
2576
3414
  default: {
@@ -2604,7 +3442,7 @@ export interface operations {
2604
3442
  [name: string]: unknown;
2605
3443
  };
2606
3444
  content: {
2607
- "application/json": components["schemas"]["FloatingIPResource"];
3445
+ "application/json": components["schemas"]["PurchaseResult"];
2608
3446
  };
2609
3447
  };
2610
3448
  /** @description Error */
@@ -2686,7 +3524,12 @@ export interface operations {
2686
3524
  };
2687
3525
  "list-instances": {
2688
3526
  parameters: {
2689
- query?: never;
3527
+ query?: {
3528
+ /** @description Only instances carrying this label, written as `key:value` — for example `env:prod`. Both halves are matched exactly */
3529
+ label?: string;
3530
+ page?: number;
3531
+ page_size?: number;
3532
+ };
2690
3533
  header?: never;
2691
3534
  path?: never;
2692
3535
  cookie?: never;
@@ -2726,8 +3569,8 @@ export interface operations {
2726
3569
  };
2727
3570
  };
2728
3571
  responses: {
2729
- /** @description Created */
2730
- 201: {
3572
+ /** @description Accepted */
3573
+ 202: {
2731
3574
  headers: {
2732
3575
  [name: string]: unknown;
2733
3576
  };
@@ -2788,12 +3631,23 @@ export interface operations {
2788
3631
  };
2789
3632
  requestBody?: never;
2790
3633
  responses: {
2791
- /** @description No Content */
2792
- 204: {
3634
+ /** @description The action was accepted. Wait for the returned task to finish. */
3635
+ 202: {
2793
3636
  headers: {
2794
3637
  [name: string]: unknown;
2795
3638
  };
2796
- content?: never;
3639
+ content: {
3640
+ "application/json": components["schemas"]["Task"];
3641
+ };
3642
+ };
3643
+ /** @description The deletion was refused. */
3644
+ 409: {
3645
+ headers: {
3646
+ [name: string]: unknown;
3647
+ };
3648
+ content: {
3649
+ "application/json": components["schemas"]["Error"];
3650
+ };
2797
3651
  };
2798
3652
  /** @description Error */
2799
3653
  default: {
@@ -2841,7 +3695,7 @@ export interface operations {
2841
3695
  };
2842
3696
  };
2843
3697
  };
2844
- "act-on-instance": {
3698
+ "run-instance-command": {
2845
3699
  parameters: {
2846
3700
  query?: never;
2847
3701
  header?: never;
@@ -2852,7 +3706,7 @@ export interface operations {
2852
3706
  };
2853
3707
  requestBody: {
2854
3708
  content: {
2855
- "application/json": components["schemas"]["ActOnInstanceRequestBody"];
3709
+ "application/json": components["schemas"]["RunCommandRequestBody"];
2856
3710
  };
2857
3711
  };
2858
3712
  responses: {
@@ -2862,7 +3716,7 @@ export interface operations {
2862
3716
  [name: string]: unknown;
2863
3717
  };
2864
3718
  content: {
2865
- "application/json": components["schemas"]["InstanceResource"];
3719
+ "application/json": components["schemas"]["CommandResultResponseBody"];
2866
3720
  };
2867
3721
  };
2868
3722
  /** @description Error */
@@ -2876,7 +3730,7 @@ export interface operations {
2876
3730
  };
2877
3731
  };
2878
3732
  };
2879
- "run-instance-command": {
3733
+ "open-instance-console": {
2880
3734
  parameters: {
2881
3735
  query?: never;
2882
3736
  header?: never;
@@ -2885,11 +3739,41 @@ export interface operations {
2885
3739
  };
2886
3740
  cookie?: never;
2887
3741
  };
2888
- requestBody: {
2889
- content: {
2890
- "application/json": components["schemas"]["RunCommandRequestBody"];
3742
+ requestBody?: never;
3743
+ responses: {
3744
+ /** @description OK */
3745
+ 200: {
3746
+ headers: {
3747
+ [name: string]: unknown;
3748
+ };
3749
+ content: {
3750
+ "application/json": components["schemas"]["ConsoleResponseBody"];
3751
+ };
3752
+ };
3753
+ /** @description Error */
3754
+ default: {
3755
+ headers: {
3756
+ [name: string]: unknown;
3757
+ };
3758
+ content: {
3759
+ "application/json": components["schemas"]["Error"];
3760
+ };
3761
+ };
3762
+ };
3763
+ };
3764
+ "get-instance-console-output": {
3765
+ parameters: {
3766
+ query?: {
3767
+ /** @description Number of trailing lines to return; 0 returns the entire output */
3768
+ lines?: number;
3769
+ };
3770
+ header?: never;
3771
+ path: {
3772
+ instanceId: string;
2891
3773
  };
3774
+ cookie?: never;
2892
3775
  };
3776
+ requestBody?: never;
2893
3777
  responses: {
2894
3778
  /** @description OK */
2895
3779
  200: {
@@ -2897,7 +3781,7 @@ export interface operations {
2897
3781
  [name: string]: unknown;
2898
3782
  };
2899
3783
  content: {
2900
- "application/json": components["schemas"]["CommandResultResponseBody"];
3784
+ "application/json": components["schemas"]["ConsoleOutputResponseBody"];
2901
3785
  };
2902
3786
  };
2903
3787
  /** @description Error */
@@ -2911,7 +3795,7 @@ export interface operations {
2911
3795
  };
2912
3796
  };
2913
3797
  };
2914
- "open-instance-console": {
3798
+ "set-instance-labels": {
2915
3799
  parameters: {
2916
3800
  query?: never;
2917
3801
  header?: never;
@@ -2920,7 +3804,11 @@ export interface operations {
2920
3804
  };
2921
3805
  cookie?: never;
2922
3806
  };
2923
- requestBody?: never;
3807
+ requestBody: {
3808
+ content: {
3809
+ "application/json": components["schemas"]["SetInstanceLabelsRequestBody"];
3810
+ };
3811
+ };
2924
3812
  responses: {
2925
3813
  /** @description OK */
2926
3814
  200: {
@@ -2928,7 +3816,7 @@ export interface operations {
2928
3816
  [name: string]: unknown;
2929
3817
  };
2930
3818
  content: {
2931
- "application/json": components["schemas"]["ConsoleResponseBody"];
3819
+ "application/json": components["schemas"]["InstanceResource"];
2932
3820
  };
2933
3821
  };
2934
3822
  /** @description Error */
@@ -2942,19 +3830,20 @@ export interface operations {
2942
3830
  };
2943
3831
  };
2944
3832
  };
2945
- "get-instance-console-output": {
3833
+ "set-instance-notes": {
2946
3834
  parameters: {
2947
- query?: {
2948
- /** @description Number of trailing lines to return; 0 returns the entire output */
2949
- lines?: number;
2950
- };
3835
+ query?: never;
2951
3836
  header?: never;
2952
3837
  path: {
2953
3838
  instanceId: string;
2954
3839
  };
2955
3840
  cookie?: never;
2956
3841
  };
2957
- requestBody?: never;
3842
+ requestBody: {
3843
+ content: {
3844
+ "application/json": components["schemas"]["SetInstanceNotesRequestBody"];
3845
+ };
3846
+ };
2958
3847
  responses: {
2959
3848
  /** @description OK */
2960
3849
  200: {
@@ -2962,7 +3851,7 @@ export interface operations {
2962
3851
  [name: string]: unknown;
2963
3852
  };
2964
3853
  content: {
2965
- "application/json": components["schemas"]["ConsoleOutputResponseBody"];
3854
+ "application/json": components["schemas"]["InstanceResource"];
2966
3855
  };
2967
3856
  };
2968
3857
  /** @description Error */
@@ -3011,6 +3900,41 @@ export interface operations {
3011
3900
  };
3012
3901
  };
3013
3902
  };
3903
+ "reboot-instance": {
3904
+ parameters: {
3905
+ query?: never;
3906
+ header?: never;
3907
+ path: {
3908
+ instanceId: string;
3909
+ };
3910
+ cookie?: never;
3911
+ };
3912
+ requestBody: {
3913
+ content: {
3914
+ "application/json": components["schemas"]["RebootInstanceRequestBody"];
3915
+ };
3916
+ };
3917
+ responses: {
3918
+ /** @description The action was accepted. Wait for the returned task to finish. */
3919
+ 202: {
3920
+ headers: {
3921
+ [name: string]: unknown;
3922
+ };
3923
+ content: {
3924
+ "application/json": components["schemas"]["Task"];
3925
+ };
3926
+ };
3927
+ /** @description Error */
3928
+ default: {
3929
+ headers: {
3930
+ [name: string]: unknown;
3931
+ };
3932
+ content: {
3933
+ "application/json": components["schemas"]["Error"];
3934
+ };
3935
+ };
3936
+ };
3937
+ };
3014
3938
  "rebuild-instance": {
3015
3939
  parameters: {
3016
3940
  query?: never;
@@ -3061,13 +3985,13 @@ export interface operations {
3061
3985
  };
3062
3986
  };
3063
3987
  responses: {
3064
- /** @description OK */
3065
- 200: {
3988
+ /** @description Accepted */
3989
+ 202: {
3066
3990
  headers: {
3067
3991
  [name: string]: unknown;
3068
3992
  };
3069
3993
  content: {
3070
- "application/json": components["schemas"]["InstanceResource"];
3994
+ "application/json": components["schemas"]["PurchaseResult"];
3071
3995
  };
3072
3996
  };
3073
3997
  /** @description Error */
@@ -3081,7 +4005,7 @@ export interface operations {
3081
4005
  };
3082
4006
  };
3083
4007
  };
3084
- "confirm-instance-resize": {
4008
+ "start-instance": {
3085
4009
  parameters: {
3086
4010
  query?: never;
3087
4011
  header?: never;
@@ -3090,15 +4014,19 @@ export interface operations {
3090
4014
  };
3091
4015
  cookie?: never;
3092
4016
  };
3093
- requestBody?: never;
4017
+ requestBody: {
4018
+ content: {
4019
+ "application/json": components["schemas"]["PowerRequest"];
4020
+ };
4021
+ };
3094
4022
  responses: {
3095
- /** @description OK */
3096
- 200: {
4023
+ /** @description The action was accepted. Wait for the returned task to finish. */
4024
+ 202: {
3097
4025
  headers: {
3098
4026
  [name: string]: unknown;
3099
4027
  };
3100
4028
  content: {
3101
- "application/json": components["schemas"]["InstanceResource"];
4029
+ "application/json": components["schemas"]["Task"];
3102
4030
  };
3103
4031
  };
3104
4032
  /** @description Error */
@@ -3112,7 +4040,7 @@ export interface operations {
3112
4040
  };
3113
4041
  };
3114
4042
  };
3115
- "revert-instance-resize": {
4043
+ "stop-instance": {
3116
4044
  parameters: {
3117
4045
  query?: never;
3118
4046
  header?: never;
@@ -3121,15 +4049,19 @@ export interface operations {
3121
4049
  };
3122
4050
  cookie?: never;
3123
4051
  };
3124
- requestBody?: never;
4052
+ requestBody: {
4053
+ content: {
4054
+ "application/json": components["schemas"]["PowerRequest"];
4055
+ };
4056
+ };
3125
4057
  responses: {
3126
- /** @description OK */
3127
- 200: {
4058
+ /** @description The action was accepted. Wait for the returned task to finish. */
4059
+ 202: {
3128
4060
  headers: {
3129
4061
  [name: string]: unknown;
3130
4062
  };
3131
4063
  content: {
3132
- "application/json": components["schemas"]["InstanceResource"];
4064
+ "application/json": components["schemas"]["Task"];
3133
4065
  };
3134
4066
  };
3135
4067
  /** @description Error */
@@ -3145,7 +4077,10 @@ export interface operations {
3145
4077
  };
3146
4078
  "list-instance-disks": {
3147
4079
  parameters: {
3148
- query?: never;
4080
+ query?: {
4081
+ page?: number;
4082
+ page_size?: number;
4083
+ };
3149
4084
  header?: never;
3150
4085
  path: {
3151
4086
  instanceId: string;
@@ -3160,7 +4095,7 @@ export interface operations {
3160
4095
  [name: string]: unknown;
3161
4096
  };
3162
4097
  content: {
3163
- "application/json": components["schemas"]["DiskListResponseBody"];
4098
+ "application/json": components["schemas"]["DiskAttachmentList"];
3164
4099
  };
3165
4100
  };
3166
4101
  /** @description Error */
@@ -3189,13 +4124,13 @@ export interface operations {
3189
4124
  };
3190
4125
  };
3191
4126
  responses: {
3192
- /** @description OK */
3193
- 200: {
4127
+ /** @description The action was accepted. Wait for the returned task to finish. */
4128
+ 202: {
3194
4129
  headers: {
3195
4130
  [name: string]: unknown;
3196
4131
  };
3197
4132
  content: {
3198
- "application/json": components["schemas"]["DiskResource"];
4133
+ "application/json": components["schemas"]["Task"];
3199
4134
  };
3200
4135
  };
3201
4136
  /** @description Error */
@@ -3221,13 +4156,13 @@ export interface operations {
3221
4156
  };
3222
4157
  requestBody?: never;
3223
4158
  responses: {
3224
- /** @description OK */
3225
- 200: {
4159
+ /** @description The action was accepted. Wait for the returned task to finish. */
4160
+ 202: {
3226
4161
  headers: {
3227
4162
  [name: string]: unknown;
3228
4163
  };
3229
4164
  content: {
3230
- "application/json": components["schemas"]["DiskResource"];
4165
+ "application/json": components["schemas"]["Task"];
3231
4166
  };
3232
4167
  };
3233
4168
  /** @description Error */
@@ -3256,7 +4191,7 @@ export interface operations {
3256
4191
  };
3257
4192
  };
3258
4193
  responses: {
3259
- /** @description OK */
4194
+ /** @description The current floating IP binding */
3260
4195
  200: {
3261
4196
  headers: {
3262
4197
  [name: string]: unknown;
@@ -3288,7 +4223,7 @@ export interface operations {
3288
4223
  };
3289
4224
  requestBody?: never;
3290
4225
  responses: {
3291
- /** @description OK */
4226
+ /** @description The current floating IP binding */
3292
4227
  200: {
3293
4228
  headers: {
3294
4229
  [name: string]: unknown;
@@ -3310,7 +4245,10 @@ export interface operations {
3310
4245
  };
3311
4246
  "list-instance-ports": {
3312
4247
  parameters: {
3313
- query?: never;
4248
+ query?: {
4249
+ page?: number;
4250
+ page_size?: number;
4251
+ };
3314
4252
  header?: never;
3315
4253
  path: {
3316
4254
  instanceId: string;
@@ -3325,7 +4263,7 @@ export interface operations {
3325
4263
  [name: string]: unknown;
3326
4264
  };
3327
4265
  content: {
3328
- "application/json": components["schemas"]["PortListResponseBody"];
4266
+ "application/json": components["schemas"]["PortAttachmentList"];
3329
4267
  };
3330
4268
  };
3331
4269
  /** @description Error */
@@ -3354,13 +4292,13 @@ export interface operations {
3354
4292
  };
3355
4293
  };
3356
4294
  responses: {
3357
- /** @description OK */
3358
- 200: {
4295
+ /** @description The action was accepted. Wait for the returned task to finish. */
4296
+ 202: {
3359
4297
  headers: {
3360
4298
  [name: string]: unknown;
3361
4299
  };
3362
4300
  content: {
3363
- "application/json": components["schemas"]["PortResource"];
4301
+ "application/json": components["schemas"]["Task"];
3364
4302
  };
3365
4303
  };
3366
4304
  /** @description Error */
@@ -3386,13 +4324,13 @@ export interface operations {
3386
4324
  };
3387
4325
  requestBody?: never;
3388
4326
  responses: {
3389
- /** @description OK */
3390
- 200: {
4327
+ /** @description The action was accepted. Wait for the returned task to finish. */
4328
+ 202: {
3391
4329
  headers: {
3392
4330
  [name: string]: unknown;
3393
4331
  };
3394
4332
  content: {
3395
- "application/json": components["schemas"]["PortResource"];
4333
+ "application/json": components["schemas"]["Task"];
3396
4334
  };
3397
4335
  };
3398
4336
  /** @description Error */
@@ -3411,8 +4349,8 @@ export interface operations {
3411
4349
  query?: {
3412
4350
  /** @description Return a single kind of operation; the value matches the operation id of the endpoint */
3413
4351
  action?: string;
3414
- limit?: number;
3415
- offset?: number;
4352
+ page?: number;
4353
+ page_size?: number;
3416
4354
  };
3417
4355
  header?: never;
3418
4356
  path?: never;
@@ -3535,7 +4473,9 @@ export interface operations {
3535
4473
  parameters: {
3536
4474
  query?: {
3537
4475
  /** @description Return only the images of this region. An image can only be used in the region that holds it */
3538
- region_code?: string;
4476
+ region_id?: string;
4477
+ page?: number;
4478
+ page_size?: number;
3539
4479
  };
3540
4480
  header?: never;
3541
4481
  path?: never;
@@ -3582,7 +4522,7 @@ export interface operations {
3582
4522
  [name: string]: unknown;
3583
4523
  };
3584
4524
  content: {
3585
- "application/json": components["schemas"]["PrivateImageResource"];
4525
+ "application/json": components["schemas"]["PurchaseResult"];
3586
4526
  };
3587
4527
  };
3588
4528
  /** @description Error */
@@ -3638,12 +4578,23 @@ export interface operations {
3638
4578
  };
3639
4579
  requestBody?: never;
3640
4580
  responses: {
3641
- /** @description No Content */
3642
- 204: {
4581
+ /** @description The action was accepted. Wait for the returned task to finish. */
4582
+ 202: {
3643
4583
  headers: {
3644
4584
  [name: string]: unknown;
3645
4585
  };
3646
- content?: never;
4586
+ content: {
4587
+ "application/json": components["schemas"]["Task"];
4588
+ };
4589
+ };
4590
+ /** @description The deletion was refused. */
4591
+ 409: {
4592
+ headers: {
4593
+ [name: string]: unknown;
4594
+ };
4595
+ content: {
4596
+ "application/json": components["schemas"]["Error"];
4597
+ };
3647
4598
  };
3648
4599
  /** @description Error */
3649
4600
  default: {
@@ -3695,7 +4646,7 @@ export interface operations {
3695
4646
  parameters: {
3696
4647
  query?: {
3697
4648
  /** @description Returns every region when omitted */
3698
- region_code?: string;
4649
+ region_id?: string;
3699
4650
  };
3700
4651
  header?: never;
3701
4652
  path?: never;
@@ -4170,7 +5121,7 @@ export interface operations {
4170
5121
  "list-security-groups": {
4171
5122
  parameters: {
4172
5123
  query?: {
4173
- region_code?: string;
5124
+ region_id?: string;
4174
5125
  /** @description Return only the security groups of this private network */
4175
5126
  private_network_id?: string;
4176
5127
  };
@@ -4475,7 +5426,7 @@ export interface operations {
4475
5426
  [name: string]: unknown;
4476
5427
  };
4477
5428
  content: {
4478
- "application/json": components["schemas"]["SnapshotResource"];
5429
+ "application/json": components["schemas"]["PurchaseResult"];
4479
5430
  };
4480
5431
  };
4481
5432
  /** @description Error */
@@ -4531,12 +5482,23 @@ export interface operations {
4531
5482
  };
4532
5483
  requestBody?: never;
4533
5484
  responses: {
4534
- /** @description No Content */
4535
- 204: {
5485
+ /** @description The action was accepted. Wait for the returned task to finish. */
5486
+ 202: {
4536
5487
  headers: {
4537
5488
  [name: string]: unknown;
4538
5489
  };
4539
- content?: never;
5490
+ content: {
5491
+ "application/json": components["schemas"]["Task"];
5492
+ };
5493
+ };
5494
+ /** @description The deletion was refused. */
5495
+ 409: {
5496
+ headers: {
5497
+ [name: string]: unknown;
5498
+ };
5499
+ content: {
5500
+ "application/json": components["schemas"]["Error"];
5501
+ };
4540
5502
  };
4541
5503
  /** @description Error */
4542
5504
  default: {
@@ -4584,4 +5546,257 @@ export interface operations {
4584
5546
  };
4585
5547
  };
4586
5548
  };
5549
+ "get-task": {
5550
+ parameters: {
5551
+ query?: never;
5552
+ header?: never;
5553
+ path: {
5554
+ taskId: string;
5555
+ };
5556
+ cookie?: never;
5557
+ };
5558
+ requestBody?: never;
5559
+ responses: {
5560
+ /** @description The task. */
5561
+ 200: {
5562
+ headers: {
5563
+ [name: string]: unknown;
5564
+ };
5565
+ content: {
5566
+ "application/json": components["schemas"]["Task"];
5567
+ };
5568
+ };
5569
+ /** @description The request could not be completed. */
5570
+ default: {
5571
+ headers: {
5572
+ [name: string]: unknown;
5573
+ };
5574
+ content: {
5575
+ "application/json": components["schemas"]["Error"];
5576
+ };
5577
+ };
5578
+ };
5579
+ };
5580
+ "list-ipv4-pools": {
5581
+ parameters: {
5582
+ query: {
5583
+ region_id: string;
5584
+ page?: number;
5585
+ page_size?: number;
5586
+ };
5587
+ header?: never;
5588
+ path?: never;
5589
+ cookie?: never;
5590
+ };
5591
+ requestBody?: never;
5592
+ responses: {
5593
+ /** @description OK */
5594
+ 200: {
5595
+ headers: {
5596
+ [name: string]: unknown;
5597
+ };
5598
+ content: {
5599
+ "application/json": components["schemas"]["IPv4PoolListResponseBody"];
5600
+ };
5601
+ };
5602
+ /** @description Error */
5603
+ default: {
5604
+ headers: {
5605
+ [name: string]: unknown;
5606
+ };
5607
+ content: {
5608
+ "application/json": components["schemas"]["Error"];
5609
+ };
5610
+ };
5611
+ };
5612
+ };
5613
+ "list-peerings": {
5614
+ parameters: {
5615
+ query?: {
5616
+ limit?: number;
5617
+ offset?: number;
5618
+ };
5619
+ header?: never;
5620
+ path?: never;
5621
+ cookie?: never;
5622
+ };
5623
+ requestBody?: never;
5624
+ responses: {
5625
+ /** @description Success */
5626
+ 200: {
5627
+ headers: {
5628
+ [name: string]: unknown;
5629
+ };
5630
+ content: {
5631
+ "application/json": components["schemas"]["PeeringListResponseBody"];
5632
+ };
5633
+ };
5634
+ /** @description Error */
5635
+ default: {
5636
+ headers: {
5637
+ [name: string]: unknown;
5638
+ };
5639
+ content: {
5640
+ "application/json": components["schemas"]["Error"];
5641
+ };
5642
+ };
5643
+ };
5644
+ };
5645
+ "create-peering": {
5646
+ parameters: {
5647
+ query?: never;
5648
+ header?: never;
5649
+ path?: never;
5650
+ cookie?: never;
5651
+ };
5652
+ requestBody: {
5653
+ content: {
5654
+ "application/json": components["schemas"]["CreatePeeringRequestBody"];
5655
+ };
5656
+ };
5657
+ responses: {
5658
+ /** @description Success */
5659
+ 201: {
5660
+ headers: {
5661
+ [name: string]: unknown;
5662
+ };
5663
+ content: {
5664
+ "application/json": components["schemas"]["PeeringResource"];
5665
+ };
5666
+ };
5667
+ /** @description Error */
5668
+ default: {
5669
+ headers: {
5670
+ [name: string]: unknown;
5671
+ };
5672
+ content: {
5673
+ "application/json": components["schemas"]["Error"];
5674
+ };
5675
+ };
5676
+ };
5677
+ };
5678
+ "get-peering": {
5679
+ parameters: {
5680
+ query?: never;
5681
+ header?: never;
5682
+ path: {
5683
+ peeringId: string;
5684
+ };
5685
+ cookie?: never;
5686
+ };
5687
+ requestBody?: never;
5688
+ responses: {
5689
+ /** @description Success */
5690
+ 200: {
5691
+ headers: {
5692
+ [name: string]: unknown;
5693
+ };
5694
+ content: {
5695
+ "application/json": components["schemas"]["PeeringResource"];
5696
+ };
5697
+ };
5698
+ /** @description Error */
5699
+ default: {
5700
+ headers: {
5701
+ [name: string]: unknown;
5702
+ };
5703
+ content: {
5704
+ "application/json": components["schemas"]["Error"];
5705
+ };
5706
+ };
5707
+ };
5708
+ };
5709
+ "delete-peering": {
5710
+ parameters: {
5711
+ query?: never;
5712
+ header?: never;
5713
+ path: {
5714
+ peeringId: string;
5715
+ };
5716
+ cookie?: never;
5717
+ };
5718
+ requestBody?: never;
5719
+ responses: {
5720
+ /** @description Success */
5721
+ 202: {
5722
+ headers: {
5723
+ [name: string]: unknown;
5724
+ };
5725
+ content: {
5726
+ "application/json": components["schemas"]["PeeringResource"];
5727
+ };
5728
+ };
5729
+ /** @description Error */
5730
+ default: {
5731
+ headers: {
5732
+ [name: string]: unknown;
5733
+ };
5734
+ content: {
5735
+ "application/json": components["schemas"]["Error"];
5736
+ };
5737
+ };
5738
+ };
5739
+ };
5740
+ "accept-peering": {
5741
+ parameters: {
5742
+ query?: never;
5743
+ header?: never;
5744
+ path: {
5745
+ peeringId: string;
5746
+ };
5747
+ cookie?: never;
5748
+ };
5749
+ requestBody?: never;
5750
+ responses: {
5751
+ /** @description Success */
5752
+ 202: {
5753
+ headers: {
5754
+ [name: string]: unknown;
5755
+ };
5756
+ content: {
5757
+ "application/json": components["schemas"]["PeeringResource"];
5758
+ };
5759
+ };
5760
+ /** @description Error */
5761
+ default: {
5762
+ headers: {
5763
+ [name: string]: unknown;
5764
+ };
5765
+ content: {
5766
+ "application/json": components["schemas"]["Error"];
5767
+ };
5768
+ };
5769
+ };
5770
+ };
5771
+ "reject-peering": {
5772
+ parameters: {
5773
+ query?: never;
5774
+ header?: never;
5775
+ path: {
5776
+ peeringId: string;
5777
+ };
5778
+ cookie?: never;
5779
+ };
5780
+ requestBody?: never;
5781
+ responses: {
5782
+ /** @description Success */
5783
+ 200: {
5784
+ headers: {
5785
+ [name: string]: unknown;
5786
+ };
5787
+ content: {
5788
+ "application/json": components["schemas"]["PeeringResource"];
5789
+ };
5790
+ };
5791
+ /** @description Error */
5792
+ default: {
5793
+ headers: {
5794
+ [name: string]: unknown;
5795
+ };
5796
+ content: {
5797
+ "application/json": components["schemas"]["Error"];
5798
+ };
5799
+ };
5800
+ };
5801
+ };
4587
5802
  }