@leaflow/sdk 0.0.0-dev.13.g732c6b7 → 0.0.0-dev.130.g2ad4b23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -12
- package/dist/account/v1/index.d.ts +14 -2
- package/dist/account/v1/schema.d.ts +368 -81
- package/dist/assistant/v1/index.d.ts +30 -2
- package/dist/assistant/v1/schema.d.ts +1089 -133
- package/dist/billing/v1/index.d.ts +192 -0
- package/dist/billing/v1/index.js +5 -0
- package/dist/billing/v1/schema.d.ts +4625 -0
- package/dist/billing/v1/schema.js +5 -0
- package/dist/canopy/v1/schema.d.ts +113 -109
- package/dist/compute/v1/index.d.ts +30 -6
- package/dist/compute/v1/schema.d.ts +1202 -273
- package/dist/dns/v1/index.d.ts +42 -0
- package/dist/dns/v1/index.js +5 -0
- package/dist/dns/v1/schema.d.ts +887 -0
- package/dist/dns/v1/schema.js +5 -0
- package/dist/fleet/v1/index.d.ts +6 -0
- package/dist/fleet/v1/index.js +5 -0
- package/dist/fleet/v1/schema.d.ts +156 -0
- package/dist/fleet/v1/schema.js +5 -0
- package/dist/iam/v1/index.d.ts +26 -4
- package/dist/iam/v1/schema.d.ts +515 -88
- package/dist/index.d.ts +5 -0
- package/dist/monitoring/v1/index.d.ts +84 -4
- package/dist/monitoring/v1/schema.d.ts +2420 -527
- package/dist/notification/v1/index.d.ts +76 -0
- package/dist/notification/v1/index.js +5 -0
- package/dist/notification/v1/schema.d.ts +2048 -0
- package/dist/notification/v1/schema.js +5 -0
- package/dist/support/v1/index.d.ts +50 -0
- package/dist/support/v1/index.js +5 -0
- package/dist/support/v1/schema.d.ts +1082 -0
- package/dist/support/v1/schema.js +5 -0
- package/dist/tunnel/v1/index.d.ts +14 -36
- package/dist/tunnel/v1/schema.d.ts +70 -510
- package/package.json +2 -2
|
@@ -10,16 +10,16 @@ export interface paths {
|
|
|
10
10
|
path?: never;
|
|
11
11
|
cookie?: never;
|
|
12
12
|
};
|
|
13
|
-
/**
|
|
13
|
+
/** List backups */
|
|
14
14
|
get: operations["list-backups"];
|
|
15
15
|
put?: never;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
18
|
-
* @description
|
|
17
|
+
* Create a backup
|
|
18
|
+
* @description A backup is a complete copy of a disk held in separate storage: **it remains restorable after the source disk is deleted, and can be restored to another availability zone in the same region.** A snapshot offers neither capability, as it resides in the same storage as the source disk and prevents that disk from being deleted while it exists.
|
|
19
19
|
*
|
|
20
|
-
*
|
|
20
|
+
* Disks attached to a running instance, including system disks, can be backed up.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
22
|
+
* The duration depends on the amount of data. The backup is not complete when this endpoint returns; poll the retrieve endpoint.
|
|
23
23
|
*/
|
|
24
24
|
post: operations["create-backup"];
|
|
25
25
|
delete?: never;
|
|
@@ -36,20 +36,20 @@ export interface paths {
|
|
|
36
36
|
cookie?: never;
|
|
37
37
|
};
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
40
|
-
* @description
|
|
39
|
+
* Retrieve a backup
|
|
40
|
+
* @description Queries the current state of the backup, which makes it slower but more accurate than the list endpoint. Use it to poll creation progress.
|
|
41
41
|
*/
|
|
42
42
|
get: operations["get-backup"];
|
|
43
43
|
put?: never;
|
|
44
44
|
post?: never;
|
|
45
45
|
/**
|
|
46
|
-
*
|
|
47
|
-
* @description
|
|
46
|
+
* Delete a backup
|
|
47
|
+
* @description Independent of the source disk: deletion succeeds whether or not that disk still exists.
|
|
48
48
|
*/
|
|
49
49
|
delete: operations["delete-backup"];
|
|
50
50
|
options?: never;
|
|
51
51
|
head?: never;
|
|
52
|
-
/**
|
|
52
|
+
/** Rename a backup */
|
|
53
53
|
patch: operations["rename-backup"];
|
|
54
54
|
trace?: never;
|
|
55
55
|
};
|
|
@@ -63,10 +63,10 @@ export interface paths {
|
|
|
63
63
|
get?: never;
|
|
64
64
|
put?: never;
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
67
|
-
* @description
|
|
66
|
+
* Restore from a backup
|
|
67
|
+
* @description Restores onto a **newly created** disk. The source disk is unaffected and need not still exist.
|
|
68
68
|
*
|
|
69
|
-
*
|
|
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.
|
|
70
70
|
*/
|
|
71
71
|
post: operations["restore-backup"];
|
|
72
72
|
delete?: never;
|
|
@@ -82,7 +82,10 @@ export interface paths {
|
|
|
82
82
|
path?: never;
|
|
83
83
|
cookie?: never;
|
|
84
84
|
};
|
|
85
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* List disk types on sale
|
|
87
|
+
* @description Only disk types currently on sale are listed. A withdrawn one disappears from here and can no longer be bought, while the disks already on it keep working and can still be resized.
|
|
88
|
+
*/
|
|
86
89
|
get: operations["list-disk-types"];
|
|
87
90
|
put?: never;
|
|
88
91
|
post?: never;
|
|
@@ -92,6 +95,26 @@ export interface paths {
|
|
|
92
95
|
patch?: never;
|
|
93
96
|
trace?: never;
|
|
94
97
|
};
|
|
98
|
+
"/api/v1/disk-types/{diskTypeId}": {
|
|
99
|
+
parameters: {
|
|
100
|
+
query?: never;
|
|
101
|
+
header?: never;
|
|
102
|
+
path?: never;
|
|
103
|
+
cookie?: never;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Get a disk type
|
|
107
|
+
* @description Retrieve capacity and performance constraints for an existing disk, including system disk types and types withdrawn from sale.
|
|
108
|
+
*/
|
|
109
|
+
get: operations["get-disk-type"];
|
|
110
|
+
put?: never;
|
|
111
|
+
post?: never;
|
|
112
|
+
delete?: never;
|
|
113
|
+
options?: never;
|
|
114
|
+
head?: never;
|
|
115
|
+
patch?: never;
|
|
116
|
+
trace?: never;
|
|
117
|
+
};
|
|
95
118
|
"/api/v1/images": {
|
|
96
119
|
parameters: {
|
|
97
120
|
query?: never;
|
|
@@ -100,8 +123,10 @@ export interface paths {
|
|
|
100
123
|
cookie?: never;
|
|
101
124
|
};
|
|
102
125
|
/**
|
|
103
|
-
*
|
|
104
|
-
* @description min_ram_mb
|
|
126
|
+
* List images on sale
|
|
127
|
+
* @description An image whose `min_ram_mb` exceeds the memory of the selected instance type cannot boot. Filter the options accordingly.
|
|
128
|
+
*
|
|
129
|
+
* 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
130
|
*/
|
|
106
131
|
get: operations["list-images"];
|
|
107
132
|
put?: never;
|
|
@@ -119,7 +144,10 @@ export interface paths {
|
|
|
119
144
|
path?: never;
|
|
120
145
|
cookie?: never;
|
|
121
146
|
};
|
|
122
|
-
/**
|
|
147
|
+
/**
|
|
148
|
+
* List instance types on sale
|
|
149
|
+
* @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.
|
|
150
|
+
*/
|
|
123
151
|
get: operations["list-instance-types"];
|
|
124
152
|
put?: never;
|
|
125
153
|
post?: never;
|
|
@@ -136,7 +164,7 @@ export interface paths {
|
|
|
136
164
|
path?: never;
|
|
137
165
|
cookie?: never;
|
|
138
166
|
};
|
|
139
|
-
/**
|
|
167
|
+
/** List available regions */
|
|
140
168
|
get: operations["list-regions"];
|
|
141
169
|
put?: never;
|
|
142
170
|
post?: never;
|
|
@@ -154,8 +182,8 @@ export interface paths {
|
|
|
154
182
|
cookie?: never;
|
|
155
183
|
};
|
|
156
184
|
/**
|
|
157
|
-
*
|
|
158
|
-
* @description
|
|
185
|
+
* List the availability zones of a region
|
|
186
|
+
* @description A disk and an instance must reside in the same availability zone to be attached. Confirm the zone before creating either.
|
|
159
187
|
*/
|
|
160
188
|
get: operations["list-availability-zones"];
|
|
161
189
|
put?: never;
|
|
@@ -174,14 +202,16 @@ export interface paths {
|
|
|
174
202
|
cookie?: never;
|
|
175
203
|
};
|
|
176
204
|
/**
|
|
177
|
-
*
|
|
178
|
-
* @description
|
|
205
|
+
* List disks
|
|
206
|
+
* @description When both `region_code` and `availability_zone` are supplied, only disks attachable to an instance at that location are returned.
|
|
179
207
|
*/
|
|
180
208
|
get: operations["list-disks"];
|
|
181
209
|
put?: never;
|
|
182
210
|
/**
|
|
183
|
-
*
|
|
184
|
-
* @description
|
|
211
|
+
* Create a disk
|
|
212
|
+
* @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.
|
|
213
|
+
*
|
|
214
|
+
* A disk type that has been withdrawn is rejected with `DISK_TYPE_RETIRED`, even though its identifier still resolves. Withdrawn types stop appearing in the disk type listing; disks already bought on one keep working and can still be resized.
|
|
185
215
|
*/
|
|
186
216
|
post: operations["create-disk"];
|
|
187
217
|
delete?: never;
|
|
@@ -198,22 +228,22 @@ export interface paths {
|
|
|
198
228
|
cookie?: never;
|
|
199
229
|
};
|
|
200
230
|
/**
|
|
201
|
-
*
|
|
202
|
-
* @description
|
|
231
|
+
* Retrieve a disk
|
|
232
|
+
* @description Queries the current state of the disk, which makes it slower but more accurate than the list endpoint.
|
|
203
233
|
*/
|
|
204
234
|
get: operations["get-disk"];
|
|
205
235
|
put?: never;
|
|
206
236
|
post?: never;
|
|
207
237
|
/**
|
|
208
|
-
*
|
|
209
|
-
* @description
|
|
238
|
+
* Delete a disk
|
|
239
|
+
* @description Deletion is rejected while the disk is attached, or while snapshots created from it still exist.
|
|
210
240
|
*/
|
|
211
241
|
delete: operations["delete-disk"];
|
|
212
242
|
options?: never;
|
|
213
243
|
head?: never;
|
|
214
244
|
/**
|
|
215
|
-
*
|
|
216
|
-
* @description
|
|
245
|
+
* Rename a disk
|
|
246
|
+
* @description Changes the name only. Use the resize endpoint for capacity; type and availability zone are immutable.
|
|
217
247
|
*/
|
|
218
248
|
patch: operations["rename-disk"];
|
|
219
249
|
trace?: never;
|
|
@@ -228,8 +258,14 @@ export interface paths {
|
|
|
228
258
|
get?: never;
|
|
229
259
|
put?: never;
|
|
230
260
|
/**
|
|
231
|
-
*
|
|
232
|
-
* @description
|
|
261
|
+
* Resize a disk
|
|
262
|
+
* @description Capacity can only be increased; shrinking is not supported. Extend the file system inside the instance once the resize completes.
|
|
263
|
+
*
|
|
264
|
+
* **A data disk whose performance grows with its size has to be detached first.** The storage backend decides a volume's limit when the volume is attached and never revisits it, so growing one that is attached would give you the capacity immediately and leave the speed at the old size's figure — indefinitely, and stopping the instance does not help. Rather than take the money for performance that does not arrive, this is refused with `DISK_RESIZE_NEEDS_DETACH`; detach the disk, resize it, and attach it again.
|
|
265
|
+
*
|
|
266
|
+
* It is only refused when the two sizes really would differ in speed. A disk whose type has no QoS level, or whose performance has already reached the type's ceiling, grows online as before.
|
|
267
|
+
*
|
|
268
|
+
* **A system disk is the exception and grows online**, because a root volume cannot be detached at all. Its performance does not change with size for exactly that reason — system disk types are required to carry a level that does not scale.
|
|
233
269
|
*/
|
|
234
270
|
post: operations["resize-disk"];
|
|
235
271
|
delete?: never;
|
|
@@ -248,12 +284,12 @@ export interface paths {
|
|
|
248
284
|
get?: never;
|
|
249
285
|
put?: never;
|
|
250
286
|
/**
|
|
251
|
-
*
|
|
252
|
-
* @description
|
|
287
|
+
* Revert to a snapshot
|
|
288
|
+
* @description Restores the contents of the disk to the moment the snapshot was taken. **All data written after that moment is lost and cannot be recovered.**
|
|
253
289
|
*
|
|
254
|
-
*
|
|
290
|
+
* Three restrictions apply: only the most recent snapshot of the disk can be reverted to; the disk must be detached from its instance first; and a disk resized since the snapshot was taken cannot be reverted. To return to an earlier point in time, or to keep the existing disk, create a new disk from the snapshot instead.
|
|
255
291
|
*
|
|
256
|
-
*
|
|
292
|
+
* The revert is not complete when this endpoint returns; poll the retrieve endpoint.
|
|
257
293
|
*/
|
|
258
294
|
post: operations["revert-disk"];
|
|
259
295
|
delete?: never;
|
|
@@ -269,14 +305,14 @@ export interface paths {
|
|
|
269
305
|
path?: never;
|
|
270
306
|
cookie?: never;
|
|
271
307
|
};
|
|
272
|
-
/**
|
|
308
|
+
/** List floating IPs */
|
|
273
309
|
get: operations["list-floating-ips"];
|
|
274
310
|
put?: never;
|
|
275
311
|
/**
|
|
276
|
-
*
|
|
277
|
-
* @description
|
|
312
|
+
* Allocate a floating IP
|
|
313
|
+
* @description If the private network is not yet connected to the internet, connectivity is established as part of this call.
|
|
278
314
|
*
|
|
279
|
-
* IPv6
|
|
315
|
+
* IPv6 is not requested through this endpoint. IPv6 addresses are assigned to instances by the private network; enable IPv6 on that network instead.
|
|
280
316
|
*/
|
|
281
317
|
post: operations["allocate-floating-ip"];
|
|
282
318
|
delete?: never;
|
|
@@ -292,13 +328,13 @@ export interface paths {
|
|
|
292
328
|
path?: never;
|
|
293
329
|
cookie?: never;
|
|
294
330
|
};
|
|
295
|
-
/**
|
|
331
|
+
/** Retrieve a floating IP */
|
|
296
332
|
get: operations["get-floating-ip"];
|
|
297
333
|
put?: never;
|
|
298
334
|
post?: never;
|
|
299
335
|
/**
|
|
300
|
-
*
|
|
301
|
-
* @description
|
|
336
|
+
* Release a floating IP
|
|
337
|
+
* @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.
|
|
302
338
|
*/
|
|
303
339
|
delete: operations["release-floating-ip"];
|
|
304
340
|
options?: never;
|
|
@@ -315,8 +351,10 @@ export interface paths {
|
|
|
315
351
|
};
|
|
316
352
|
get?: never;
|
|
317
353
|
/**
|
|
318
|
-
*
|
|
319
|
-
* @description
|
|
354
|
+
* Set the bandwidth limit
|
|
355
|
+
* @description Limits both directions at once. Limiting egress alone does not prevent ingress traffic from saturating the uplink.
|
|
356
|
+
*
|
|
357
|
+
* While the address is bound to an instance, the ceiling has to fit that instance type's `max_bandwidth_mbps`; asking for more is refused with `INSTANCE_BANDWIDTH_CEILING`. An address bound to nothing is not checked against any type — there is none to check against — and is checked again when it is attached.
|
|
320
358
|
*/
|
|
321
359
|
put: operations["set-floating-ip-bandwidth"];
|
|
322
360
|
post?: never;
|
|
@@ -334,12 +372,12 @@ export interface paths {
|
|
|
334
372
|
cookie?: never;
|
|
335
373
|
};
|
|
336
374
|
get?: never;
|
|
337
|
-
/**
|
|
375
|
+
/** Bind a floating IP to a network interface */
|
|
338
376
|
put: operations["bind-floating-ip"];
|
|
339
377
|
post?: never;
|
|
340
378
|
/**
|
|
341
|
-
*
|
|
342
|
-
* @description
|
|
379
|
+
* Unbind a floating IP
|
|
380
|
+
* @description The address remains held by the project and simply no longer points at any network interface.
|
|
343
381
|
*/
|
|
344
382
|
delete: operations["unbind-floating-ip"];
|
|
345
383
|
options?: never;
|
|
@@ -354,22 +392,29 @@ export interface paths {
|
|
|
354
392
|
path?: never;
|
|
355
393
|
cookie?: never;
|
|
356
394
|
};
|
|
357
|
-
/**
|
|
395
|
+
/**
|
|
396
|
+
* List instances
|
|
397
|
+
* @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.
|
|
398
|
+
*/
|
|
358
399
|
get: operations["list-instances"];
|
|
359
400
|
put?: never;
|
|
360
401
|
/**
|
|
361
|
-
*
|
|
362
|
-
* @description
|
|
402
|
+
* Create instances
|
|
403
|
+
* @description **A password must be set in the request.** The request is rejected otherwise, since the resulting instance would be unreachable. The platform can generate one, in which case it is returned only in this response.
|
|
363
404
|
*
|
|
364
|
-
* `count`
|
|
405
|
+
* `count` creates several instances at once, 20 at most. Names are numbered `-1`, `-2` automatically and all instances share one password. **`instances` in the response is always an array**, including for a single instance.
|
|
365
406
|
*
|
|
366
|
-
*
|
|
407
|
+
* 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.
|
|
367
408
|
*
|
|
368
|
-
*
|
|
409
|
+
* Exactly one source must be given: `image_id` for a platform image, `private_image_id` for a private image, or `boot_disk_id` to boot a disk you already have. Supplying more than one, or none, is rejected.
|
|
369
410
|
*
|
|
370
|
-
*
|
|
411
|
+
* A platform image that has been withdrawn is rejected with `IMAGE_RETIRED`, and an instance type that has been withdrawn with `INSTANCE_TYPE_RETIRED` — in both cases the identifier still resolves. Withdrawn entries stop appearing in their listing, so an identifier held in a script, a template or an earlier order is the way this is usually hit: reread the listing and pick another. Instances already running either are unaffected, and one on a withdrawn image can still be rebuilt onto it.
|
|
371
412
|
*
|
|
372
|
-
*
|
|
413
|
+
* `boot_disk_id` recovers an instance that can no longer be repaired from the inside. Snapshot its disk, restore that snapshot into a new disk, attach the new disk to another instance and repair it there, then create an instance from it. That disk is not deleted when the instance is released; it is detached and returned to you.
|
|
414
|
+
*
|
|
415
|
+
* Instances are created in the availability zone of the instance type. Disks to be attached later must reside in the same zone.
|
|
416
|
+
*
|
|
417
|
+
* Creation is not complete when this endpoint returns and `status` is `provisioning`. Poll GET to observe the outcome.
|
|
373
418
|
*/
|
|
374
419
|
post: operations["launch-instance"];
|
|
375
420
|
delete?: never;
|
|
@@ -386,29 +431,29 @@ export interface paths {
|
|
|
386
431
|
cookie?: never;
|
|
387
432
|
};
|
|
388
433
|
/**
|
|
389
|
-
*
|
|
390
|
-
* @description
|
|
434
|
+
* Retrieve an instance
|
|
435
|
+
* @description Queries the current state of the instance, which makes it slower but more accurate than the list endpoint. Use it to poll creation progress.
|
|
391
436
|
*/
|
|
392
437
|
get: operations["get-instance"];
|
|
393
438
|
put?: never;
|
|
394
439
|
post?: never;
|
|
395
440
|
/**
|
|
396
|
-
*
|
|
397
|
-
* @description
|
|
441
|
+
* Release an instance
|
|
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.
|
|
400
445
|
*/
|
|
401
446
|
delete: operations["delete-instance"];
|
|
402
447
|
options?: never;
|
|
403
448
|
head?: never;
|
|
404
449
|
/**
|
|
405
|
-
*
|
|
406
|
-
* @description
|
|
450
|
+
* Rename an instance
|
|
451
|
+
* @description Changes the display name only. The hostname inside the instance is unchanged; it equals the instance id.
|
|
407
452
|
*/
|
|
408
453
|
patch: operations["rename-instance"];
|
|
409
454
|
trace?: never;
|
|
410
455
|
};
|
|
411
|
-
"/api/v1/instances/{instanceId}/
|
|
456
|
+
"/api/v1/instances/{instanceId}/commands": {
|
|
412
457
|
parameters: {
|
|
413
458
|
query?: never;
|
|
414
459
|
header?: never;
|
|
@@ -418,14 +463,26 @@ export interface paths {
|
|
|
418
463
|
get?: never;
|
|
419
464
|
put?: never;
|
|
420
465
|
/**
|
|
421
|
-
*
|
|
422
|
-
* @description
|
|
466
|
+
* Run a command on an instance
|
|
467
|
+
* @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.
|
|
468
|
+
*
|
|
469
|
+
* **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.
|
|
423
470
|
*
|
|
424
|
-
*
|
|
471
|
+
* 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`.
|
|
425
472
|
*
|
|
426
|
-
*
|
|
473
|
+
* Three conditions must hold; the instance is unreachable otherwise:
|
|
474
|
+
*
|
|
475
|
+
* - it is `running`
|
|
476
|
+
* - a floating IP is bound to it, since this endpoint connects over the public internet
|
|
477
|
+
* - its security group permits inbound TCP 22
|
|
478
|
+
*
|
|
479
|
+
* 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.
|
|
480
|
+
*
|
|
481
|
+
* **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.
|
|
482
|
+
*
|
|
483
|
+
* Each stream is capped at 1 MiB. Beyond that the rest is discarded and `truncated` is true.
|
|
427
484
|
*/
|
|
428
|
-
post: operations["
|
|
485
|
+
post: operations["run-instance-command"];
|
|
429
486
|
delete?: never;
|
|
430
487
|
options?: never;
|
|
431
488
|
head?: never;
|
|
@@ -442,10 +499,10 @@ export interface paths {
|
|
|
442
499
|
get?: never;
|
|
443
500
|
put?: never;
|
|
444
501
|
/**
|
|
445
|
-
*
|
|
446
|
-
* @description
|
|
502
|
+
* Open a remote console
|
|
503
|
+
* @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.
|
|
447
504
|
*
|
|
448
|
-
*
|
|
505
|
+
* The returned address is single-use and expires within minutes. **Do not cache it**; request a new one before each use.
|
|
449
506
|
*/
|
|
450
507
|
post: operations["open-instance-console"];
|
|
451
508
|
delete?: never;
|
|
@@ -462,10 +519,10 @@ export interface paths {
|
|
|
462
519
|
cookie?: never;
|
|
463
520
|
};
|
|
464
521
|
/**
|
|
465
|
-
*
|
|
466
|
-
* @description
|
|
522
|
+
* Read the console output
|
|
523
|
+
* @description The raw text produced by the instance during boot and by the kernel. Consult it first when login fails or the remote console shows no output: it reveals where boot stopped, whether the system disk was mounted, and whether initialisation reported errors.
|
|
467
524
|
*
|
|
468
|
-
*
|
|
525
|
+
* Instances in an error state, and instances suspended by the platform, can be read as well.
|
|
469
526
|
*/
|
|
470
527
|
get: operations["get-instance-console-output"];
|
|
471
528
|
put?: never;
|
|
@@ -476,6 +533,54 @@ export interface paths {
|
|
|
476
533
|
patch?: never;
|
|
477
534
|
trace?: never;
|
|
478
535
|
};
|
|
536
|
+
"/api/v1/instances/{instanceId}/labels": {
|
|
537
|
+
parameters: {
|
|
538
|
+
query?: never;
|
|
539
|
+
header?: never;
|
|
540
|
+
path?: never;
|
|
541
|
+
cookie?: never;
|
|
542
|
+
};
|
|
543
|
+
get?: never;
|
|
544
|
+
/**
|
|
545
|
+
* Replace an instance's labels
|
|
546
|
+
* @description Records what this instance is for, as key-value pairs. Nothing on the platform reads them.
|
|
547
|
+
*
|
|
548
|
+
* **The whole set is replaced**: whatever is absent from the request is removed.
|
|
549
|
+
*
|
|
550
|
+
* Do not put credentials here. Labels are visible to platform operators.
|
|
551
|
+
*/
|
|
552
|
+
put: operations["set-instance-labels"];
|
|
553
|
+
post?: never;
|
|
554
|
+
delete?: never;
|
|
555
|
+
options?: never;
|
|
556
|
+
head?: never;
|
|
557
|
+
patch?: never;
|
|
558
|
+
trace?: never;
|
|
559
|
+
};
|
|
560
|
+
"/api/v1/instances/{instanceId}/notes": {
|
|
561
|
+
parameters: {
|
|
562
|
+
query?: never;
|
|
563
|
+
header?: never;
|
|
564
|
+
path?: never;
|
|
565
|
+
cookie?: never;
|
|
566
|
+
};
|
|
567
|
+
get?: never;
|
|
568
|
+
/**
|
|
569
|
+
* Replace an instance's note
|
|
570
|
+
* @description A free-text note about this instance — what it runs, and what to be careful about before touching it.
|
|
571
|
+
*
|
|
572
|
+
* **The whole note is replaced**; send an empty string to clear it.
|
|
573
|
+
*
|
|
574
|
+
* Do not put credentials here. The note is visible to platform operators.
|
|
575
|
+
*/
|
|
576
|
+
put: operations["set-instance-notes"];
|
|
577
|
+
post?: never;
|
|
578
|
+
delete?: never;
|
|
579
|
+
options?: never;
|
|
580
|
+
head?: never;
|
|
581
|
+
patch?: never;
|
|
582
|
+
trace?: never;
|
|
583
|
+
};
|
|
479
584
|
"/api/v1/instances/{instanceId}/password": {
|
|
480
585
|
parameters: {
|
|
481
586
|
query?: never;
|
|
@@ -486,12 +591,12 @@ export interface paths {
|
|
|
486
591
|
get?: never;
|
|
487
592
|
put?: never;
|
|
488
593
|
/**
|
|
489
|
-
*
|
|
490
|
-
* @description
|
|
594
|
+
* Reset the login password
|
|
595
|
+
* @description Changes the root password without a reboot. The instance must be running.
|
|
491
596
|
*
|
|
492
|
-
*
|
|
597
|
+
* **Not every image supports this.** Images whose `supports_password_reset` is false cannot, and a new password can then only be set by rebuilding the instance, which erases all data on the system disk.
|
|
493
598
|
*
|
|
494
|
-
*
|
|
599
|
+
* The request is also rejected when the image is marked as supported but the corresponding component has been removed or stopped inside the instance.
|
|
495
600
|
*/
|
|
496
601
|
post: operations["reset-instance-password"];
|
|
497
602
|
delete?: never;
|
|
@@ -500,6 +605,34 @@ export interface paths {
|
|
|
500
605
|
patch?: never;
|
|
501
606
|
trace?: never;
|
|
502
607
|
};
|
|
608
|
+
"/api/v1/instances/{instanceId}/reboot": {
|
|
609
|
+
parameters: {
|
|
610
|
+
query?: never;
|
|
611
|
+
header?: never;
|
|
612
|
+
path?: never;
|
|
613
|
+
cookie?: never;
|
|
614
|
+
};
|
|
615
|
+
get?: never;
|
|
616
|
+
put?: never;
|
|
617
|
+
/**
|
|
618
|
+
* Reboot an instance
|
|
619
|
+
* @description A reboot defaults to soft, in which the operating system shuts down normally before starting again.
|
|
620
|
+
*
|
|
621
|
+
* 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**.
|
|
622
|
+
*
|
|
623
|
+
* 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.
|
|
624
|
+
*
|
|
625
|
+
* An instance suspended by the platform must be unsuspended first.
|
|
626
|
+
*
|
|
627
|
+
* This endpoint returns immediately and the `status` it returns is the transient `rebooting`. Poll the instance until it settles at `running`.
|
|
628
|
+
*/
|
|
629
|
+
post: operations["reboot-instance"];
|
|
630
|
+
delete?: never;
|
|
631
|
+
options?: never;
|
|
632
|
+
head?: never;
|
|
633
|
+
patch?: never;
|
|
634
|
+
trace?: never;
|
|
635
|
+
};
|
|
503
636
|
"/api/v1/instances/{instanceId}/rebuild": {
|
|
504
637
|
parameters: {
|
|
505
638
|
query?: never;
|
|
@@ -510,8 +643,10 @@ export interface paths {
|
|
|
510
643
|
get?: never;
|
|
511
644
|
put?: never;
|
|
512
645
|
/**
|
|
513
|
-
*
|
|
514
|
-
* @description
|
|
646
|
+
* Rebuild an instance
|
|
647
|
+
* @description **All data on the system disk is erased and cannot be recovered.** Attached data disks are unaffected.
|
|
648
|
+
*
|
|
649
|
+
* 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.
|
|
515
650
|
*/
|
|
516
651
|
post: operations["rebuild-instance"];
|
|
517
652
|
delete?: never;
|
|
@@ -530,12 +665,12 @@ export interface paths {
|
|
|
530
665
|
get?: never;
|
|
531
666
|
put?: never;
|
|
532
667
|
/**
|
|
533
|
-
*
|
|
534
|
-
* @description
|
|
668
|
+
* Resize an instance
|
|
669
|
+
* @description Only an instance type in the same region and availability zone can be selected, as attached disks cannot follow the instance elsewhere.
|
|
535
670
|
*
|
|
536
|
-
*
|
|
671
|
+
* 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.
|
|
537
672
|
*
|
|
538
|
-
*
|
|
673
|
+
* **Both sizes hold resources while the resize is unconfirmed.** Confirm promptly once the status becomes `resize_verifying`.
|
|
539
674
|
*/
|
|
540
675
|
post: operations["resize-instance"];
|
|
541
676
|
delete?: never;
|
|
@@ -554,8 +689,8 @@ export interface paths {
|
|
|
554
689
|
get?: never;
|
|
555
690
|
put?: never;
|
|
556
691
|
/**
|
|
557
|
-
*
|
|
558
|
-
* @description
|
|
692
|
+
* Confirm a resize
|
|
693
|
+
* @description Releases the resources held by the previous size. `pending_instance_type_id` becomes the type in effect and is billed from then on.
|
|
559
694
|
*/
|
|
560
695
|
post: operations["confirm-instance-resize"];
|
|
561
696
|
delete?: never;
|
|
@@ -574,8 +709,8 @@ export interface paths {
|
|
|
574
709
|
get?: never;
|
|
575
710
|
put?: never;
|
|
576
711
|
/**
|
|
577
|
-
*
|
|
578
|
-
* @description
|
|
712
|
+
* Revert a resize
|
|
713
|
+
* @description The instance returns to its previous size, `pending_instance_type_id` is discarded, and billing is unaffected by the resize.
|
|
579
714
|
*/
|
|
580
715
|
post: operations["revert-instance-resize"];
|
|
581
716
|
delete?: never;
|
|
@@ -584,6 +719,52 @@ export interface paths {
|
|
|
584
719
|
patch?: never;
|
|
585
720
|
trace?: never;
|
|
586
721
|
};
|
|
722
|
+
"/api/v1/instances/{instanceId}/start": {
|
|
723
|
+
parameters: {
|
|
724
|
+
query?: never;
|
|
725
|
+
header?: never;
|
|
726
|
+
path?: never;
|
|
727
|
+
cookie?: never;
|
|
728
|
+
};
|
|
729
|
+
get?: never;
|
|
730
|
+
put?: never;
|
|
731
|
+
/**
|
|
732
|
+
* Start an instance
|
|
733
|
+
* @description An instance suspended by the platform must be unsuspended first.
|
|
734
|
+
*
|
|
735
|
+
* This endpoint returns immediately and the `status` it returns is the transient `starting`. Poll the instance until it settles at `running`.
|
|
736
|
+
*/
|
|
737
|
+
post: operations["start-instance"];
|
|
738
|
+
delete?: never;
|
|
739
|
+
options?: never;
|
|
740
|
+
head?: never;
|
|
741
|
+
patch?: never;
|
|
742
|
+
trace?: never;
|
|
743
|
+
};
|
|
744
|
+
"/api/v1/instances/{instanceId}/stop": {
|
|
745
|
+
parameters: {
|
|
746
|
+
query?: never;
|
|
747
|
+
header?: never;
|
|
748
|
+
path?: never;
|
|
749
|
+
cookie?: never;
|
|
750
|
+
};
|
|
751
|
+
get?: never;
|
|
752
|
+
put?: never;
|
|
753
|
+
/**
|
|
754
|
+
* Stop an instance
|
|
755
|
+
* @description The operating system is asked to shut down and is powered off once it does, or once it stops responding for long enough. Stopping does not release the instance: it keeps its disks, its addresses and its name, and starts again where it left off.
|
|
756
|
+
*
|
|
757
|
+
* An instance suspended by the platform must be unsuspended first.
|
|
758
|
+
*
|
|
759
|
+
* This endpoint returns immediately and the `status` it returns is the transient `stopping`. Poll the instance until it settles at `stopped`.
|
|
760
|
+
*/
|
|
761
|
+
post: operations["stop-instance"];
|
|
762
|
+
delete?: never;
|
|
763
|
+
options?: never;
|
|
764
|
+
head?: never;
|
|
765
|
+
patch?: never;
|
|
766
|
+
trace?: never;
|
|
767
|
+
};
|
|
587
768
|
"/api/v1/instances/{instanceId}/disks": {
|
|
588
769
|
parameters: {
|
|
589
770
|
query?: never;
|
|
@@ -591,12 +772,12 @@ export interface paths {
|
|
|
591
772
|
path?: never;
|
|
592
773
|
cookie?: never;
|
|
593
774
|
};
|
|
594
|
-
/**
|
|
775
|
+
/** List the disks attached to an instance */
|
|
595
776
|
get: operations["list-instance-disks"];
|
|
596
777
|
put?: never;
|
|
597
778
|
/**
|
|
598
|
-
*
|
|
599
|
-
* @description
|
|
779
|
+
* Attach a disk
|
|
780
|
+
* @description The disk must be in the same region and availability zone as the instance. Partition it and mount the file system inside the instance once it is attached.
|
|
600
781
|
*/
|
|
601
782
|
post: operations["attach-disk"];
|
|
602
783
|
delete?: never;
|
|
@@ -616,8 +797,8 @@ export interface paths {
|
|
|
616
797
|
put?: never;
|
|
617
798
|
post?: never;
|
|
618
799
|
/**
|
|
619
|
-
*
|
|
620
|
-
* @description
|
|
800
|
+
* Detach a disk
|
|
801
|
+
* @description Unmount the device inside the instance before calling this endpoint. Forcibly detaching a file system that is being written to corrupts data.
|
|
621
802
|
*/
|
|
622
803
|
delete: operations["detach-disk"];
|
|
623
804
|
options?: never;
|
|
@@ -635,8 +816,8 @@ export interface paths {
|
|
|
635
816
|
get?: never;
|
|
636
817
|
put?: never;
|
|
637
818
|
/**
|
|
638
|
-
*
|
|
639
|
-
* @description
|
|
819
|
+
* Bind a floating IP to an instance
|
|
820
|
+
* @description The floating IP is bound to the primary network interface of the instance.
|
|
640
821
|
*/
|
|
641
822
|
post: operations["attach-instance-floating-ip"];
|
|
642
823
|
delete?: never;
|
|
@@ -655,7 +836,7 @@ export interface paths {
|
|
|
655
836
|
get?: never;
|
|
656
837
|
put?: never;
|
|
657
838
|
post?: never;
|
|
658
|
-
/**
|
|
839
|
+
/** Unbind the floating IP of an instance */
|
|
659
840
|
delete: operations["detach-instance-floating-ip"];
|
|
660
841
|
options?: never;
|
|
661
842
|
head?: never;
|
|
@@ -669,10 +850,10 @@ export interface paths {
|
|
|
669
850
|
path?: never;
|
|
670
851
|
cookie?: never;
|
|
671
852
|
};
|
|
672
|
-
/**
|
|
853
|
+
/** List the network interfaces of an instance */
|
|
673
854
|
get: operations["list-instance-ports"];
|
|
674
855
|
put?: never;
|
|
675
|
-
/**
|
|
856
|
+
/** Attach a network interface */
|
|
676
857
|
post: operations["attach-port"];
|
|
677
858
|
delete?: never;
|
|
678
859
|
options?: never;
|
|
@@ -691,8 +872,8 @@ export interface paths {
|
|
|
691
872
|
put?: never;
|
|
692
873
|
post?: never;
|
|
693
874
|
/**
|
|
694
|
-
*
|
|
695
|
-
* @description
|
|
875
|
+
* Detach a network interface
|
|
876
|
+
* @description The primary network interface cannot be detached; the instance would lose its network address.
|
|
696
877
|
*/
|
|
697
878
|
delete: operations["detach-port"];
|
|
698
879
|
options?: never;
|
|
@@ -708,12 +889,12 @@ export interface paths {
|
|
|
708
889
|
cookie?: never;
|
|
709
890
|
};
|
|
710
891
|
/**
|
|
711
|
-
*
|
|
712
|
-
* @description
|
|
892
|
+
* List the operation log of the project
|
|
893
|
+
* @description Records every write operation in the project: who performed it, when, on what, and whether it succeeded. Read operations are not recorded.
|
|
713
894
|
*
|
|
714
|
-
*
|
|
895
|
+
* **Operations performed by the platform are included, but the individual operator is not disclosed** and `by_platform` is true. Suspension for non-payment and bans for abuse are examples: the time at which an instance was stopped by the platform is needed, whereas the operator is internal information.
|
|
715
896
|
*
|
|
716
|
-
*
|
|
897
|
+
* Fields such as passwords are replaced with a placeholder as the record is written and never appear in `payload`.
|
|
717
898
|
*/
|
|
718
899
|
get: operations["list-operation-logs"];
|
|
719
900
|
put?: never;
|
|
@@ -731,12 +912,12 @@ export interface paths {
|
|
|
731
912
|
path?: never;
|
|
732
913
|
cookie?: never;
|
|
733
914
|
};
|
|
734
|
-
/**
|
|
915
|
+
/** List network interfaces */
|
|
735
916
|
get: operations["list-ports"];
|
|
736
917
|
put?: never;
|
|
737
918
|
/**
|
|
738
|
-
*
|
|
739
|
-
* @description
|
|
919
|
+
* Create a network interface
|
|
920
|
+
* @description The new network interface is not attached to any instance. Primary network interfaces are not created here; they are created with the instance.
|
|
740
921
|
*/
|
|
741
922
|
post: operations["create-port"];
|
|
742
923
|
delete?: never;
|
|
@@ -756,8 +937,8 @@ export interface paths {
|
|
|
756
937
|
put?: never;
|
|
757
938
|
post?: never;
|
|
758
939
|
/**
|
|
759
|
-
*
|
|
760
|
-
* @description
|
|
940
|
+
* Delete a network interface
|
|
941
|
+
* @description The primary network interface cannot be deleted on its own, as it is released with the instance. A network interface still attached to an instance cannot be deleted either.
|
|
761
942
|
*/
|
|
762
943
|
delete: operations["delete-port"];
|
|
763
944
|
options?: never;
|
|
@@ -772,23 +953,23 @@ export interface paths {
|
|
|
772
953
|
path?: never;
|
|
773
954
|
cookie?: never;
|
|
774
955
|
};
|
|
775
|
-
/**
|
|
956
|
+
/** List private images */
|
|
776
957
|
get: operations["list-private-images"];
|
|
777
958
|
put?: never;
|
|
778
959
|
/**
|
|
779
|
-
*
|
|
780
|
-
* @description
|
|
960
|
+
* Capture an instance as a private image
|
|
961
|
+
* @description Captured from the system disk of the instance; data disks are not included. The resulting image can create instances and rebuild them, and remains usable after the source instance is released.
|
|
781
962
|
*
|
|
782
|
-
*
|
|
963
|
+
* **The image reflects the moment the capture started. Later changes to the instance are not included.**
|
|
783
964
|
*
|
|
784
|
-
*
|
|
965
|
+
* The capture has two phases. Poll the retrieve endpoint:
|
|
785
966
|
*
|
|
786
|
-
* - `provisioning`
|
|
787
|
-
* - `uploading`
|
|
967
|
+
* - `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.
|
|
968
|
+
* - `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.
|
|
788
969
|
*
|
|
789
|
-
*
|
|
970
|
+
* The file system of a running instance may be captured mid-write, in which case the image is equivalent to the disk contents after a power loss. Where consistency matters, stop the instance before starting the capture and start it again once the status becomes `uploading`.
|
|
790
971
|
*
|
|
791
|
-
*
|
|
972
|
+
* The instance can be started, stopped and used normally during the capture, but cannot be released.
|
|
792
973
|
*/
|
|
793
974
|
post: operations["create-private-image"];
|
|
794
975
|
delete?: never;
|
|
@@ -805,22 +986,22 @@ export interface paths {
|
|
|
805
986
|
cookie?: never;
|
|
806
987
|
};
|
|
807
988
|
/**
|
|
808
|
-
*
|
|
809
|
-
* @description
|
|
989
|
+
* Retrieve a private image
|
|
990
|
+
* @description Use this endpoint to poll capture progress. When `status` is `error`, `failure` states the reason.
|
|
810
991
|
*/
|
|
811
992
|
get: operations["get-private-image"];
|
|
812
993
|
put?: never;
|
|
813
994
|
post?: never;
|
|
814
995
|
/**
|
|
815
|
-
*
|
|
816
|
-
* @description
|
|
996
|
+
* Delete a private image
|
|
997
|
+
* @description Deletion is rejected while instances created from the image still exist, as they need it in order to be rebuilt.
|
|
817
998
|
*
|
|
818
|
-
*
|
|
999
|
+
* An image whose capture has not finished can be deleted; the capture is aborted.
|
|
819
1000
|
*/
|
|
820
1001
|
delete: operations["delete-private-image"];
|
|
821
1002
|
options?: never;
|
|
822
1003
|
head?: never;
|
|
823
|
-
/**
|
|
1004
|
+
/** Rename a private image */
|
|
824
1005
|
patch: operations["rename-private-image"];
|
|
825
1006
|
trace?: never;
|
|
826
1007
|
};
|
|
@@ -831,12 +1012,12 @@ export interface paths {
|
|
|
831
1012
|
path?: never;
|
|
832
1013
|
cookie?: never;
|
|
833
1014
|
};
|
|
834
|
-
/**
|
|
1015
|
+
/** List private networks */
|
|
835
1016
|
get: operations["list-private-networks"];
|
|
836
1017
|
put?: never;
|
|
837
1018
|
/**
|
|
838
|
-
*
|
|
839
|
-
* @description
|
|
1019
|
+
* Create a private network
|
|
1020
|
+
* @description Creates a network, a router and a default security group in one call. The default security group denies all inbound traffic and permits all outbound traffic.
|
|
840
1021
|
*/
|
|
841
1022
|
post: operations["create-private-network"];
|
|
842
1023
|
delete?: never;
|
|
@@ -852,20 +1033,20 @@ export interface paths {
|
|
|
852
1033
|
path?: never;
|
|
853
1034
|
cookie?: never;
|
|
854
1035
|
};
|
|
855
|
-
/**
|
|
1036
|
+
/** Retrieve a private network */
|
|
856
1037
|
get: operations["get-private-network"];
|
|
857
1038
|
put?: never;
|
|
858
1039
|
post?: never;
|
|
859
1040
|
/**
|
|
860
|
-
*
|
|
861
|
-
* @description
|
|
1041
|
+
* Release a private network
|
|
1042
|
+
* @description Release is rejected while instances or network interfaces remain in the network. IPv6, the router and the security groups are released with it.
|
|
862
1043
|
*/
|
|
863
1044
|
delete: operations["delete-private-network"];
|
|
864
1045
|
options?: never;
|
|
865
1046
|
head?: never;
|
|
866
1047
|
/**
|
|
867
|
-
*
|
|
868
|
-
* @description
|
|
1048
|
+
* Rename a private network
|
|
1049
|
+
* @description Changes the display name only. The CIDR, the routes and the internet gateway are immutable.
|
|
869
1050
|
*/
|
|
870
1051
|
patch: operations["rename-private-network"];
|
|
871
1052
|
trace?: never;
|
|
@@ -877,19 +1058,19 @@ export interface paths {
|
|
|
877
1058
|
path?: never;
|
|
878
1059
|
cookie?: never;
|
|
879
1060
|
};
|
|
880
|
-
/**
|
|
1061
|
+
/** Retrieve the IPv6 configuration of a private network */
|
|
881
1062
|
get: operations["get-private-network-ipv6"];
|
|
882
1063
|
put?: never;
|
|
883
1064
|
/**
|
|
884
|
-
*
|
|
885
|
-
* @description
|
|
1065
|
+
* Enable IPv6 on a private network
|
|
1066
|
+
* @description Allocates an IPv6 prefix to the private network. Addresses are assigned to instances by the network itself, can be neither requested nor released individually, and consume no public IPv4 address.
|
|
886
1067
|
*
|
|
887
|
-
*
|
|
1068
|
+
* If the private network is not yet connected to the internet, connectivity is established as part of this call.
|
|
888
1069
|
*/
|
|
889
1070
|
post: operations["enable-private-network-ipv6"];
|
|
890
1071
|
/**
|
|
891
|
-
*
|
|
892
|
-
* @description
|
|
1072
|
+
* Disable IPv6 on a private network
|
|
1073
|
+
* @description A released prefix is not re-allocated immediately.
|
|
893
1074
|
*/
|
|
894
1075
|
delete: operations["disable-private-network-ipv6"];
|
|
895
1076
|
options?: never;
|
|
@@ -904,12 +1085,12 @@ export interface paths {
|
|
|
904
1085
|
path?: never;
|
|
905
1086
|
cookie?: never;
|
|
906
1087
|
};
|
|
907
|
-
/**
|
|
1088
|
+
/** List static routes */
|
|
908
1089
|
get: operations["list-routes"];
|
|
909
1090
|
put?: never;
|
|
910
1091
|
/**
|
|
911
|
-
*
|
|
912
|
-
* @description
|
|
1092
|
+
* Create a static route
|
|
1093
|
+
* @description Three forms that would sever connectivity are rejected: a destination of `0.0.0.0/0`, which overrides the default route and takes every floating IP offline immediately; a destination equal to the CIDR of a subnet, which overrides its directly connected route; and a next hop equal to the gateway of a subnet, which points back at the router itself.
|
|
913
1094
|
*/
|
|
914
1095
|
post: operations["create-route"];
|
|
915
1096
|
delete?: never;
|
|
@@ -928,7 +1109,7 @@ export interface paths {
|
|
|
928
1109
|
get?: never;
|
|
929
1110
|
put?: never;
|
|
930
1111
|
post?: never;
|
|
931
|
-
/**
|
|
1112
|
+
/** Delete a static route */
|
|
932
1113
|
delete: operations["delete-route"];
|
|
933
1114
|
options?: never;
|
|
934
1115
|
head?: never;
|
|
@@ -943,12 +1124,12 @@ export interface paths {
|
|
|
943
1124
|
cookie?: never;
|
|
944
1125
|
};
|
|
945
1126
|
/**
|
|
946
|
-
*
|
|
947
|
-
* @description IPv6
|
|
1127
|
+
* List subnets
|
|
1128
|
+
* @description IPv6 subnets are included, with `ip_version` 6. They are created when IPv6 is enabled and cannot be deleted individually.
|
|
948
1129
|
*/
|
|
949
1130
|
get: operations["list-subnets"];
|
|
950
1131
|
put?: never;
|
|
951
|
-
/**
|
|
1132
|
+
/** Create a subnet */
|
|
952
1133
|
post: operations["create-subnet"];
|
|
953
1134
|
delete?: never;
|
|
954
1135
|
options?: never;
|
|
@@ -964,8 +1145,8 @@ export interface paths {
|
|
|
964
1145
|
cookie?: never;
|
|
965
1146
|
};
|
|
966
1147
|
/**
|
|
967
|
-
*
|
|
968
|
-
* @description
|
|
1148
|
+
* Suggest the next free CIDR
|
|
1149
|
+
* @description The returned value is a suggestion and is validated again when the subnet is created. It exists to avoid errors when computing the next free CIDR by hand.
|
|
969
1150
|
*/
|
|
970
1151
|
get: operations["suggest-subnet-cidr"];
|
|
971
1152
|
put?: never;
|
|
@@ -987,8 +1168,8 @@ export interface paths {
|
|
|
987
1168
|
put?: never;
|
|
988
1169
|
post?: never;
|
|
989
1170
|
/**
|
|
990
|
-
*
|
|
991
|
-
* @description
|
|
1171
|
+
* Delete a subnet
|
|
1172
|
+
* @description Deletion is rejected while network interfaces remain in the subnet, or while a static route has a next hop inside its CIDR.
|
|
992
1173
|
*/
|
|
993
1174
|
delete: operations["delete-subnet"];
|
|
994
1175
|
options?: never;
|
|
@@ -1003,12 +1184,12 @@ export interface paths {
|
|
|
1003
1184
|
path?: never;
|
|
1004
1185
|
cookie?: never;
|
|
1005
1186
|
};
|
|
1006
|
-
/**
|
|
1187
|
+
/** List security groups */
|
|
1007
1188
|
get: operations["list-security-groups"];
|
|
1008
1189
|
put?: never;
|
|
1009
1190
|
/**
|
|
1010
|
-
*
|
|
1011
|
-
* @description
|
|
1191
|
+
* Create a security group
|
|
1192
|
+
* @description A new security group carries one rule, permitting ICMP fragmentation-needed messages (type 3, code 4). Without it path MTU discovery fails, which presents as connections that establish and then stall on large packets.
|
|
1012
1193
|
*/
|
|
1013
1194
|
post: operations["create-security-group"];
|
|
1014
1195
|
delete?: never;
|
|
@@ -1024,18 +1205,22 @@ export interface paths {
|
|
|
1024
1205
|
path?: never;
|
|
1025
1206
|
cookie?: never;
|
|
1026
1207
|
};
|
|
1027
|
-
/**
|
|
1208
|
+
/** Retrieve a security group */
|
|
1028
1209
|
get: operations["get-security-group"];
|
|
1029
1210
|
put?: never;
|
|
1030
1211
|
post?: never;
|
|
1031
1212
|
/**
|
|
1032
|
-
*
|
|
1033
|
-
* @description
|
|
1213
|
+
* Delete a security group
|
|
1214
|
+
* @description The default security group cannot be deleted, as it is released with the private network. A security group still referenced by a network interface cannot be deleted either.
|
|
1034
1215
|
*/
|
|
1035
1216
|
delete: operations["delete-security-group"];
|
|
1036
1217
|
options?: never;
|
|
1037
1218
|
head?: never;
|
|
1038
|
-
|
|
1219
|
+
/**
|
|
1220
|
+
* Rename a security group
|
|
1221
|
+
* @description Changes the name only. Use the rule endpoints to change rules.
|
|
1222
|
+
*/
|
|
1223
|
+
patch: operations["rename-security-group"];
|
|
1039
1224
|
trace?: never;
|
|
1040
1225
|
};
|
|
1041
1226
|
"/api/v1/security-groups/{securityGroupId}/rules": {
|
|
@@ -1045,12 +1230,12 @@ export interface paths {
|
|
|
1045
1230
|
path?: never;
|
|
1046
1231
|
cookie?: never;
|
|
1047
1232
|
};
|
|
1048
|
-
/**
|
|
1233
|
+
/** List security group rules */
|
|
1049
1234
|
get: operations["list-security-group-rules"];
|
|
1050
1235
|
put?: never;
|
|
1051
1236
|
/**
|
|
1052
|
-
*
|
|
1053
|
-
* @description
|
|
1237
|
+
* Create a security group rule
|
|
1238
|
+
* @description Adding an identical rule twice is rejected. For that comparison `0.0.0.0/0`, `::/0` and an omitted value are treated as equivalent.
|
|
1054
1239
|
*/
|
|
1055
1240
|
post: operations["create-security-group-rule"];
|
|
1056
1241
|
delete?: never;
|
|
@@ -1069,7 +1254,7 @@ export interface paths {
|
|
|
1069
1254
|
get?: never;
|
|
1070
1255
|
put?: never;
|
|
1071
1256
|
post?: never;
|
|
1072
|
-
/**
|
|
1257
|
+
/** Delete a security group rule */
|
|
1073
1258
|
delete: operations["delete-security-group-rule"];
|
|
1074
1259
|
options?: never;
|
|
1075
1260
|
head?: never;
|
|
@@ -1083,14 +1268,14 @@ export interface paths {
|
|
|
1083
1268
|
path?: never;
|
|
1084
1269
|
cookie?: never;
|
|
1085
1270
|
};
|
|
1086
|
-
/**
|
|
1271
|
+
/** List snapshots */
|
|
1087
1272
|
get: operations["list-snapshots"];
|
|
1088
1273
|
put?: never;
|
|
1089
1274
|
/**
|
|
1090
|
-
*
|
|
1091
|
-
* @description
|
|
1275
|
+
* Create a snapshot
|
|
1276
|
+
* @description Disks attached to a running instance can be snapshotted. A snapshot records the state of the block device at a point in time and may be inconsistent at the file-system level, so run `sync` inside the instance first where the data matters.
|
|
1092
1277
|
*
|
|
1093
|
-
*
|
|
1278
|
+
* **A snapshot of a system disk cannot be used to revert that system disk**: reverting requires the disk to be detached, and a system disk cannot be detached. It can be used to create a new data disk. To preserve and restore an entire system, use a private image; for a copy that crosses availability zones and survives deletion of the disk, use a backup.
|
|
1094
1279
|
*/
|
|
1095
1280
|
post: operations["create-snapshot"];
|
|
1096
1281
|
delete?: never;
|
|
@@ -1106,15 +1291,15 @@ export interface paths {
|
|
|
1106
1291
|
path?: never;
|
|
1107
1292
|
cookie?: never;
|
|
1108
1293
|
};
|
|
1109
|
-
/**
|
|
1294
|
+
/** Retrieve a snapshot */
|
|
1110
1295
|
get: operations["get-snapshot"];
|
|
1111
1296
|
put?: never;
|
|
1112
1297
|
post?: never;
|
|
1113
|
-
/**
|
|
1298
|
+
/** Delete a snapshot */
|
|
1114
1299
|
delete: operations["delete-snapshot"];
|
|
1115
1300
|
options?: never;
|
|
1116
1301
|
head?: never;
|
|
1117
|
-
/**
|
|
1302
|
+
/** Rename a snapshot */
|
|
1118
1303
|
patch: operations["rename-snapshot"];
|
|
1119
1304
|
trace?: never;
|
|
1120
1305
|
};
|
|
@@ -1125,6 +1310,10 @@ export interface components {
|
|
|
1125
1310
|
Error: {
|
|
1126
1311
|
code?: string;
|
|
1127
1312
|
message: string;
|
|
1313
|
+
/**
|
|
1314
|
+
* @description What a given `code` carries alongside the message. The keys depend on the code,
|
|
1315
|
+
* and a client that does not recognise one ignores it.
|
|
1316
|
+
*/
|
|
1128
1317
|
meta?: {
|
|
1129
1318
|
[key: string]: unknown;
|
|
1130
1319
|
};
|
|
@@ -1132,7 +1321,7 @@ export interface components {
|
|
|
1132
1321
|
status: number;
|
|
1133
1322
|
};
|
|
1134
1323
|
BackupResource: {
|
|
1135
|
-
/** @description
|
|
1324
|
+
/** @description Availability zone of the source disk. A restore may target another zone in the same region */
|
|
1136
1325
|
availability_zone: string;
|
|
1137
1326
|
/** Format: date-time */
|
|
1138
1327
|
created_at: string;
|
|
@@ -1142,12 +1331,12 @@ export interface components {
|
|
|
1142
1331
|
region_code: string;
|
|
1143
1332
|
/**
|
|
1144
1333
|
* Format: int64
|
|
1145
|
-
* @description
|
|
1334
|
+
* @description Capacity of the source disk when the backup was created. A restored disk cannot be smaller than this
|
|
1146
1335
|
*/
|
|
1147
1336
|
size_gb: number;
|
|
1148
1337
|
/**
|
|
1149
1338
|
* Format: uuid
|
|
1150
|
-
* @description
|
|
1339
|
+
* @description The disk this backup was taken from. The backup remains usable after that disk is deleted
|
|
1151
1340
|
*/
|
|
1152
1341
|
source_disk_id: string;
|
|
1153
1342
|
/** @enum {string} */
|
|
@@ -1167,42 +1356,80 @@ export interface components {
|
|
|
1167
1356
|
RestoreBackupRequestBody: {
|
|
1168
1357
|
/**
|
|
1169
1358
|
* Format: uuid
|
|
1170
|
-
* @description
|
|
1359
|
+
* @description May differ from the availability zone of the source disk, but must be in the same region. It has to be on sale — restoring creates a new disk, so a withdrawn type is rejected here as well
|
|
1171
1360
|
*/
|
|
1172
1361
|
disk_type_id: string;
|
|
1173
1362
|
name: string;
|
|
1174
1363
|
/**
|
|
1175
1364
|
* Format: int64
|
|
1176
|
-
* @description
|
|
1365
|
+
* @description Matches the size of the backup when omitted. When given, it must not be smaller than the backup
|
|
1177
1366
|
*/
|
|
1178
1367
|
size_gb?: number;
|
|
1179
1368
|
};
|
|
1180
1369
|
DiskResource: {
|
|
1181
1370
|
attached_instance_id: string | null;
|
|
1182
|
-
/** @description
|
|
1371
|
+
/** @description Availability zone the disk actually resides in. An instance must be in the same zone to attach it */
|
|
1183
1372
|
availability_zone: string;
|
|
1184
1373
|
/** Format: date-time */
|
|
1185
1374
|
created_at: string;
|
|
1186
|
-
/** @description
|
|
1375
|
+
/** @description Device name assigned by the system, as seen inside the instance */
|
|
1187
1376
|
device: string | null;
|
|
1188
1377
|
/** Format: uuid */
|
|
1189
1378
|
disk_type_id: string;
|
|
1190
1379
|
/** Format: uuid */
|
|
1191
1380
|
id: string;
|
|
1192
|
-
/** @description
|
|
1381
|
+
/** @description A system disk is released with its instance and can be neither detached nor deleted individually */
|
|
1193
1382
|
is_system: boolean;
|
|
1194
1383
|
name: string;
|
|
1195
1384
|
region_code: string;
|
|
1196
1385
|
/** Format: int64 */
|
|
1197
1386
|
size_gb: number;
|
|
1387
|
+
/**
|
|
1388
|
+
* Format: int64
|
|
1389
|
+
* @description IOPS this disk is allowed. Null when its type is not rate-limited.
|
|
1390
|
+
*
|
|
1391
|
+
* Computed from the disk's own capacity, so it grows when the disk is grown — but see the
|
|
1392
|
+
* note on the resize endpoint: growing a disk that is attached is refused, precisely because
|
|
1393
|
+
* the new figure would not take effect until it was attached again.
|
|
1394
|
+
*/
|
|
1395
|
+
iops: number | null;
|
|
1396
|
+
/**
|
|
1397
|
+
* Format: int64
|
|
1398
|
+
* @description Throughput this disk is allowed, in bytes per second. Null when its type is not rate-limited
|
|
1399
|
+
*/
|
|
1400
|
+
throughput_bytes_per_sec: number | null;
|
|
1198
1401
|
/** @enum {string} */
|
|
1199
1402
|
status: "provisioning" | "available" | "attaching" | "in_use" | "detaching" | "resizing" | "reverting" | "restoring" | "releasing" | "deleting" | "error";
|
|
1403
|
+
/**
|
|
1404
|
+
* @description How this disk is paid for. `postpaid` is billed by the hour for as long as it exists;
|
|
1405
|
+
* `prepaid` was bought outright for a term.
|
|
1406
|
+
*
|
|
1407
|
+
* **Not the term.** How long it was bought for belongs to the order, not to the disk:
|
|
1408
|
+
* renewing can change it, and a machine bought for a year and then renewed for a month is
|
|
1409
|
+
* still a prepaid machine. Ask billing for the term and the expiry — they live there, and
|
|
1410
|
+
* they are the only two values a renewal moves.
|
|
1411
|
+
* @enum {string}
|
|
1412
|
+
*/
|
|
1413
|
+
charge_type: "postpaid" | "prepaid";
|
|
1200
1414
|
};
|
|
1201
1415
|
DiskTypeResource: {
|
|
1202
1416
|
availability_zone_code: string;
|
|
1203
1417
|
/** Format: uuid */
|
|
1204
1418
|
id: string;
|
|
1205
|
-
|
|
1419
|
+
/**
|
|
1420
|
+
* Format: int64
|
|
1421
|
+
* @description IOPS a disk of `min_size_gb` gets. Null when this type is not rate-limited.
|
|
1422
|
+
*
|
|
1423
|
+
* Performance grows with capacity, so this and `iops_at_max_size` are the two ends of the
|
|
1424
|
+
* range. The exact figure for the size actually bought appears on the disk itself once it
|
|
1425
|
+
* exists.
|
|
1426
|
+
*/
|
|
1427
|
+
iops_at_min_size: number | null;
|
|
1428
|
+
/**
|
|
1429
|
+
* Format: int64
|
|
1430
|
+
* @description IOPS a disk of `max_size_gb` gets. Null when this type is not rate-limited
|
|
1431
|
+
*/
|
|
1432
|
+
iops_at_max_size: number | null;
|
|
1206
1433
|
/** Format: int64 */
|
|
1207
1434
|
max_size_gb: number;
|
|
1208
1435
|
/** @enum {string} */
|
|
@@ -1213,7 +1440,62 @@ export interface components {
|
|
|
1213
1440
|
region_code: string;
|
|
1214
1441
|
/** Format: int64 */
|
|
1215
1442
|
step_gb: number;
|
|
1216
|
-
|
|
1443
|
+
/**
|
|
1444
|
+
* Format: int64
|
|
1445
|
+
* @description Throughput a disk of `min_size_gb` gets, in **bytes per second**. Null when this type is
|
|
1446
|
+
* not rate-limited.
|
|
1447
|
+
*
|
|
1448
|
+
* Bytes rather than MiB so the number needs no rounding on the way out; divide by 1048576
|
|
1449
|
+
* for MiB/s at the point of display.
|
|
1450
|
+
*/
|
|
1451
|
+
throughput_at_min_size: number | null;
|
|
1452
|
+
/**
|
|
1453
|
+
* Format: int64
|
|
1454
|
+
* @description Throughput a disk of `max_size_gb` gets, in bytes per second. Null when this type is not rate-limited
|
|
1455
|
+
*/
|
|
1456
|
+
throughput_at_max_size: number | null;
|
|
1457
|
+
/**
|
|
1458
|
+
* @description Whether any capacity is left in this type's pool.
|
|
1459
|
+
*
|
|
1460
|
+
* The same shape as on an instance type, but it answers less here: a disk is sold by the
|
|
1461
|
+
* GiB, so "not sold out" does not mean the size being asked for fits. `remaining` is the
|
|
1462
|
+
* field that decides that, and this one only says whether the pool is empty outright.
|
|
1463
|
+
*
|
|
1464
|
+
* It reflects a limit set by operations, not what the storage backend physically has —
|
|
1465
|
+
* raising the limit does not create capacity, and a type that is not sold out can still fail
|
|
1466
|
+
* to create if the backend is full.
|
|
1467
|
+
*
|
|
1468
|
+
* Advisory: it is read when the list is built, and capacity can be taken between that read
|
|
1469
|
+
* and the order. The order is what actually refuses.
|
|
1470
|
+
*/
|
|
1471
|
+
sold_out: boolean;
|
|
1472
|
+
/**
|
|
1473
|
+
* Format: int64
|
|
1474
|
+
* @description How much capacity is left, **in GiB**. Absent when this type is not limited at all.
|
|
1475
|
+
*
|
|
1476
|
+
* Unlike an instance type, where this is a count of machines, here it is an amount of
|
|
1477
|
+
* storage — and it is the number that bounds the size a customer may ask for. A picker that
|
|
1478
|
+
* offers sizes above it produces orders that are refused after the customer has chosen
|
|
1479
|
+
* everything else.
|
|
1480
|
+
*
|
|
1481
|
+
* Absent is not zero and not "unknown": a type with no limit simply has no number to show.
|
|
1482
|
+
* Reporting it as a number would need a sentinel, and any sentinel eventually gets compared
|
|
1483
|
+
* against a real size.
|
|
1484
|
+
*/
|
|
1485
|
+
remaining?: number;
|
|
1486
|
+
/**
|
|
1487
|
+
* @description What buying this type outright costs, per term. Empty means this type is only sold by the
|
|
1488
|
+
* hour.
|
|
1489
|
+
*
|
|
1490
|
+
* **The amount is per GiB for the whole term**, not the price of one disk: a disk's size is
|
|
1491
|
+
* chosen by the customer, so the total is this figure times the size. That differs from an
|
|
1492
|
+
* instance type, where the same field is the price of one machine — the unit follows what
|
|
1493
|
+
* the product is sold by, and the order is priced the same way.
|
|
1494
|
+
*
|
|
1495
|
+
* Advisory, like `sold_out`: it is read when the list is built. The order is what fixes the
|
|
1496
|
+
* price, and it refuses rather than falling back to hourly if the term is not sold.
|
|
1497
|
+
*/
|
|
1498
|
+
prepaid_prices?: components["schemas"]["PrepaidPrice"][];
|
|
1217
1499
|
};
|
|
1218
1500
|
DiskTypeListResponseBody: {
|
|
1219
1501
|
items: components["schemas"]["DiskTypeResource"][] | null;
|
|
@@ -1222,6 +1504,8 @@ export interface components {
|
|
|
1222
1504
|
architecture: string;
|
|
1223
1505
|
/** Format: uuid */
|
|
1224
1506
|
id: string;
|
|
1507
|
+
/** @description The account this image lets you log in as. The password set at creation belongs to this account */
|
|
1508
|
+
login_username: string;
|
|
1225
1509
|
/** Format: int64 */
|
|
1226
1510
|
min_disk_gb: number;
|
|
1227
1511
|
/** Format: int64 */
|
|
@@ -1230,19 +1514,53 @@ export interface components {
|
|
|
1230
1514
|
os_family: string;
|
|
1231
1515
|
os_version: string;
|
|
1232
1516
|
region_code: string;
|
|
1233
|
-
/** @description
|
|
1517
|
+
/** @description False means a new password can only be set by rebuilding an instance created from this image */
|
|
1234
1518
|
supports_password_reset: boolean;
|
|
1235
1519
|
};
|
|
1236
1520
|
ImageListResponseBody: {
|
|
1237
1521
|
items: components["schemas"]["ImageResource"][] | null;
|
|
1238
1522
|
};
|
|
1523
|
+
PrepaidPrice: {
|
|
1524
|
+
/**
|
|
1525
|
+
* @description An ISO 8601 duration (P1M, P1Y). A duration rather than a number of months: months are not
|
|
1526
|
+
* the same length, and storing a number leaves whoever reads it to decide what it means.
|
|
1527
|
+
*/
|
|
1528
|
+
term: string;
|
|
1529
|
+
/**
|
|
1530
|
+
* @description A decimal string, not a float. Money that survives a round trip through binary floating
|
|
1531
|
+
* point is money that stops adding up.
|
|
1532
|
+
*/
|
|
1533
|
+
amount: string;
|
|
1534
|
+
currency: string;
|
|
1535
|
+
};
|
|
1239
1536
|
InstanceTypeResource: {
|
|
1240
|
-
/** @description
|
|
1537
|
+
/** @description Availability zone of this instance type. A disk must be in the same zone to be attached */
|
|
1241
1538
|
availability_zone_code: string;
|
|
1242
1539
|
/** Format: uuid */
|
|
1243
1540
|
id: string;
|
|
1244
|
-
/**
|
|
1541
|
+
/**
|
|
1542
|
+
* Format: int64
|
|
1543
|
+
* @description The most public bandwidth a machine of this type may be given, in Mbps. Asking for more
|
|
1544
|
+
* when creating a machine, or raising a bound address past it, is refused.
|
|
1545
|
+
*
|
|
1546
|
+
* A ceiling on what can be bought, not a speed. How fast the machine's own interfaces run is
|
|
1547
|
+
* `network_egress_kbps` / `network_ingress_kbps`.
|
|
1548
|
+
*/
|
|
1245
1549
|
max_bandwidth_mbps: number;
|
|
1550
|
+
/**
|
|
1551
|
+
* Format: int64
|
|
1552
|
+
* @description Outbound ceiling of **each** network interface, in kbps. Null when this type is not
|
|
1553
|
+
* rate-limited.
|
|
1554
|
+
*
|
|
1555
|
+
* Per interface rather than per machine: a machine with two interfaces has this ceiling on
|
|
1556
|
+
* each of them, not shared between them. `max_ports` says how many it may have.
|
|
1557
|
+
*/
|
|
1558
|
+
network_egress_kbps: number | null;
|
|
1559
|
+
/**
|
|
1560
|
+
* Format: int64
|
|
1561
|
+
* @description Inbound ceiling of each network interface, in kbps. Null when this type is not rate-limited
|
|
1562
|
+
*/
|
|
1563
|
+
network_ingress_kbps: number | null;
|
|
1246
1564
|
/** Format: int64 */
|
|
1247
1565
|
max_floating_ips: number;
|
|
1248
1566
|
/** Format: int64 */
|
|
@@ -1253,6 +1571,39 @@ export interface components {
|
|
|
1253
1571
|
region_code: string;
|
|
1254
1572
|
/** Format: int64 */
|
|
1255
1573
|
vcpus: number;
|
|
1574
|
+
/**
|
|
1575
|
+
* @description Whether this type can be ordered right now.
|
|
1576
|
+
*
|
|
1577
|
+
* It reflects a limit set by operations, not what the cloud can physically schedule — raising
|
|
1578
|
+
* the limit does not create capacity that is not there, and a type that is not sold out can
|
|
1579
|
+
* still fail to start if the zone is full.
|
|
1580
|
+
*
|
|
1581
|
+
* It is advisory: it is read when the list is built, and the last one can be taken between
|
|
1582
|
+
* that read and the order. The order is what actually refuses.
|
|
1583
|
+
*/
|
|
1584
|
+
sold_out: boolean;
|
|
1585
|
+
/**
|
|
1586
|
+
* Format: int64
|
|
1587
|
+
* @description How many more may be created. Absent when this type is not limited at all.
|
|
1588
|
+
*
|
|
1589
|
+
* Absent is not zero and not "unknown": a type with no limit simply has no number to show.
|
|
1590
|
+
* Reporting it as a number would need a sentinel, and any sentinel eventually gets compared
|
|
1591
|
+
* against a real count.
|
|
1592
|
+
*/
|
|
1593
|
+
remaining?: number;
|
|
1594
|
+
/**
|
|
1595
|
+
* @description What buying this type outright costs, per term. Empty means this type is only sold by the
|
|
1596
|
+
* hour.
|
|
1597
|
+
*
|
|
1598
|
+
* The hourly price is not here and is not missing: it is made of finer parts than the type
|
|
1599
|
+
* (cores and memory are priced separately, and the type itself does not appear in the rate
|
|
1600
|
+
* card at all), so there is no single number to show. A term price is one number because a
|
|
1601
|
+
* term is one purchase.
|
|
1602
|
+
*
|
|
1603
|
+
* Advisory, like `sold_out`: it is read when the list is built. The order is what fixes the
|
|
1604
|
+
* price, and it refuses rather than falling back to hourly if the term is not sold.
|
|
1605
|
+
*/
|
|
1606
|
+
prepaid_prices?: components["schemas"]["PrepaidPrice"][];
|
|
1256
1607
|
};
|
|
1257
1608
|
InstanceTypeListResponseBody: {
|
|
1258
1609
|
items: components["schemas"]["InstanceTypeResource"][] | null;
|
|
@@ -1276,16 +1627,68 @@ export interface components {
|
|
|
1276
1627
|
items: components["schemas"]["DiskResource"][] | null;
|
|
1277
1628
|
};
|
|
1278
1629
|
CreateDiskRequestBody: {
|
|
1279
|
-
/**
|
|
1630
|
+
/**
|
|
1631
|
+
* @description A promotion code to apply to this order. Case and surrounding whitespace do not matter.
|
|
1632
|
+
*
|
|
1633
|
+
* An unusable code is rejected outright rather than quietly ignored: somebody who typed a
|
|
1634
|
+
* code is buying at the discounted price, and letting it through silently means they pay
|
|
1635
|
+
* full price expecting the discount, with nothing anywhere saying so.
|
|
1636
|
+
*
|
|
1637
|
+
* The discount applies to the lines the campaign covers, not the whole order — typically
|
|
1638
|
+
* the instance type and memory, not the system disk, the address, or traffic. Preview it
|
|
1639
|
+
* first at `POST /account/v1/billing-accounts/{accountKey}/promotion-codes/preview` to
|
|
1640
|
+
* show the customer what will actually be charged.
|
|
1641
|
+
*
|
|
1642
|
+
* Metered orders reject any code: there is no amount to discount at this point.
|
|
1643
|
+
*/
|
|
1644
|
+
promotion_code?: string;
|
|
1645
|
+
/**
|
|
1646
|
+
* @description "This is the same click". Generate one when the dialog opens — not when it is submitted —
|
|
1647
|
+
* and send the same one on every retry of that action.
|
|
1648
|
+
*
|
|
1649
|
+
* Optional, and what happens without it is worth knowing: two identical requests inside the
|
|
1650
|
+
* same minute are treated as one, because there is nothing else to tell a double-click apart
|
|
1651
|
+
* from a deliberate second order. Sending your own key removes that guess entirely.
|
|
1652
|
+
*/
|
|
1653
|
+
idempotency_key?: string;
|
|
1654
|
+
/**
|
|
1655
|
+
* Format: uuid
|
|
1656
|
+
* @description A disk type currently on sale. A withdrawn one is rejected even though its identifier still resolves
|
|
1657
|
+
*/
|
|
1280
1658
|
disk_type_id: string;
|
|
1281
1659
|
name: string;
|
|
1282
1660
|
/** Format: int64 */
|
|
1283
1661
|
size_gb: number;
|
|
1284
1662
|
/**
|
|
1285
1663
|
* Format: uuid
|
|
1286
|
-
* @description
|
|
1664
|
+
* @description Restore from this snapshot. When given, the capacity need only be no smaller than the snapshot
|
|
1287
1665
|
*/
|
|
1288
1666
|
snapshot_id?: string;
|
|
1667
|
+
/**
|
|
1668
|
+
* @description Buy the disk outright for this long, as an ISO 8601 duration (P1M, P1Y). Billed by the
|
|
1669
|
+
* hour when omitted.
|
|
1670
|
+
*
|
|
1671
|
+
* A disk bought outright can still be expanded: the difference is prorated over the days
|
|
1672
|
+
* left in the term, and the expiry date does not move. It is stopped, not deleted, when the
|
|
1673
|
+
* term runs out — the data stays and comes back once renewed.
|
|
1674
|
+
*/
|
|
1675
|
+
term?: string;
|
|
1676
|
+
/**
|
|
1677
|
+
* @description How to pay for a term bought outright. Only meaningful together with `term`.
|
|
1678
|
+
*
|
|
1679
|
+
* `balance` takes it from the account balance and either succeeds or refuses on the spot.
|
|
1680
|
+
* `online` returns a `checkout_url` instead and **creates nothing** — the resource is only
|
|
1681
|
+
* created once the money arrives and the customer comes back to place it again. That last
|
|
1682
|
+
* part is deliberate: a successful payment should not silently turn into a machine, because
|
|
1683
|
+
* between paying and returning they may have changed their mind.
|
|
1684
|
+
*
|
|
1685
|
+
* Online payment is not a second wallet. What arrives lands in the balance first and the
|
|
1686
|
+
* order is settled from there, so money topped up and money paid at checkout are the same
|
|
1687
|
+
* pool.
|
|
1688
|
+
* @default balance
|
|
1689
|
+
* @enum {string}
|
|
1690
|
+
*/
|
|
1691
|
+
payment_method?: "balance" | "online";
|
|
1289
1692
|
};
|
|
1290
1693
|
RenameDiskRequestBody: {
|
|
1291
1694
|
name: string;
|
|
@@ -1293,14 +1696,14 @@ export interface components {
|
|
|
1293
1696
|
ResizeDiskRequestBody: {
|
|
1294
1697
|
/**
|
|
1295
1698
|
* Format: int64
|
|
1296
|
-
* @description
|
|
1699
|
+
* @description Must be larger than the current capacity
|
|
1297
1700
|
*/
|
|
1298
1701
|
size_gb: number;
|
|
1299
1702
|
};
|
|
1300
1703
|
RevertDiskRequestBody: {
|
|
1301
1704
|
/**
|
|
1302
1705
|
* Format: uuid
|
|
1303
|
-
* @description
|
|
1706
|
+
* @description Must be the most recent snapshot of the disk
|
|
1304
1707
|
*/
|
|
1305
1708
|
snapshot_id: string;
|
|
1306
1709
|
};
|
|
@@ -1318,7 +1721,7 @@ export interface components {
|
|
|
1318
1721
|
id: string;
|
|
1319
1722
|
region_code: string;
|
|
1320
1723
|
/**
|
|
1321
|
-
* @description idle
|
|
1724
|
+
* @description `idle` means the address is not bound to a network interface
|
|
1322
1725
|
* @enum {string}
|
|
1323
1726
|
*/
|
|
1324
1727
|
status: "idle" | "bound";
|
|
@@ -1327,15 +1730,27 @@ export interface components {
|
|
|
1327
1730
|
items: components["schemas"]["FloatingIPResource"][] | null;
|
|
1328
1731
|
};
|
|
1329
1732
|
AllocateFloatingIPRequestBody: {
|
|
1330
|
-
/** @description
|
|
1733
|
+
/** @description The address to allocate. Allocated by the platform when omitted */
|
|
1331
1734
|
address?: string;
|
|
1735
|
+
/**
|
|
1736
|
+
* Format: int64
|
|
1737
|
+
* @description The bandwidth ceiling of this address, in Mbit/s, applied to both directions.
|
|
1738
|
+
*
|
|
1739
|
+
* Required, and there is no "unlimited": an address with no ceiling runs at line rate and is
|
|
1740
|
+
* charged nothing for the traffic, while the address itself bills normally — so the invoice
|
|
1741
|
+
* looks correct and nothing anywhere reports it.
|
|
1742
|
+
*
|
|
1743
|
+
* It is billed separately from the address, per Mbit/s-hour, and appears as its own line on
|
|
1744
|
+
* the order. Changing it later goes through the bandwidth endpoint.
|
|
1745
|
+
*/
|
|
1746
|
+
bandwidth_mbps: number;
|
|
1332
1747
|
/** Format: uuid */
|
|
1333
1748
|
private_network_id: string;
|
|
1334
1749
|
};
|
|
1335
1750
|
SetBandwidthRequestBody: {
|
|
1336
1751
|
/**
|
|
1337
1752
|
* Format: int64
|
|
1338
|
-
* @description
|
|
1753
|
+
* @description Applied to both directions
|
|
1339
1754
|
*/
|
|
1340
1755
|
mbps: number;
|
|
1341
1756
|
};
|
|
@@ -1347,154 +1762,367 @@ export interface components {
|
|
|
1347
1762
|
availability_zone: string;
|
|
1348
1763
|
/** Format: date-time */
|
|
1349
1764
|
created_at: string;
|
|
1350
|
-
/** @description
|
|
1765
|
+
/** @description Hostname inside the instance; equals the instance id */
|
|
1351
1766
|
hostname: string;
|
|
1352
1767
|
/** Format: uuid */
|
|
1353
1768
|
id: string;
|
|
1354
1769
|
/**
|
|
1355
1770
|
* Format: uuid
|
|
1356
|
-
* @description
|
|
1771
|
+
* @description Non-empty when the instance was created from a disk you already had, instead of from an image
|
|
1772
|
+
*/
|
|
1773
|
+
boot_disk_id: string | null;
|
|
1774
|
+
/**
|
|
1775
|
+
* Format: uuid
|
|
1776
|
+
* @description Non-empty when the instance was created from a platform image
|
|
1357
1777
|
*/
|
|
1358
1778
|
image_id: string | null;
|
|
1359
1779
|
/**
|
|
1360
1780
|
* Format: uuid
|
|
1361
|
-
* @description
|
|
1781
|
+
* @description The instance type in effect, and the basis for billing
|
|
1362
1782
|
*/
|
|
1363
1783
|
instance_type_id: string;
|
|
1364
|
-
/** @description
|
|
1784
|
+
/** @description IPv6 address of the primary network interface. Assigned automatically once IPv6 is enabled on the private network */
|
|
1365
1785
|
ipv6_address: string | null;
|
|
1786
|
+
/** @description Your own classification of this instance, as key-value pairs. Empty when never set */
|
|
1787
|
+
labels: {
|
|
1788
|
+
[key: string]: string;
|
|
1789
|
+
};
|
|
1790
|
+
/** @description The account to log in as over SSH. The password set at creation belongs to this account */
|
|
1791
|
+
login_username: string;
|
|
1366
1792
|
name: string;
|
|
1793
|
+
/** @description A free-text note about this instance. Empty when never set */
|
|
1794
|
+
notes: string;
|
|
1367
1795
|
/**
|
|
1368
1796
|
* Format: uuid
|
|
1369
|
-
* @description
|
|
1797
|
+
* @description Non-empty while a resize awaits confirmation. Confirming puts this type into effect, reverting discards it
|
|
1370
1798
|
*/
|
|
1371
1799
|
pending_instance_type_id: string | null;
|
|
1372
1800
|
/**
|
|
1373
1801
|
* Format: uuid
|
|
1374
|
-
* @description
|
|
1802
|
+
* @description Non-empty when the instance was created from a private image
|
|
1375
1803
|
*/
|
|
1376
1804
|
private_image_id: string | null;
|
|
1377
|
-
/** @description
|
|
1805
|
+
/** @description Private address of the instance */
|
|
1378
1806
|
private_ip: string | null;
|
|
1379
|
-
/** @description
|
|
1807
|
+
/** @description Private network of the primary network interface */
|
|
1380
1808
|
private_network_id: string | null;
|
|
1381
|
-
/** @description
|
|
1809
|
+
/** @description Floating IPv4 addresses bound to the primary network interface; an empty array when none are bound */
|
|
1382
1810
|
public_ips: string[] | null;
|
|
1383
1811
|
region_code: string;
|
|
1384
|
-
/**
|
|
1385
|
-
|
|
1386
|
-
|
|
1812
|
+
/**
|
|
1813
|
+
* @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.
|
|
1814
|
+
*
|
|
1815
|
+
* `transitioning` is the fallback for a change that falls into none of the categories above. It does not indicate an error; keep polling.
|
|
1816
|
+
*
|
|
1817
|
+
* `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.
|
|
1818
|
+
* @enum {string}
|
|
1819
|
+
*/
|
|
1820
|
+
status: "provisioning" | "running" | "stopped" | "starting" | "stopping" | "rebooting" | "transitioning" | "resizing" | "resize_verifying" | "error" | "deleting" | "suspended";
|
|
1821
|
+
/** @description Subnet of the primary network interface */
|
|
1387
1822
|
subnet_id: string | null;
|
|
1388
1823
|
/**
|
|
1389
1824
|
* Format: date-time
|
|
1390
|
-
* @description
|
|
1825
|
+
* @description Non-empty once the platform has suspended the instance, which must be lifted before any operation
|
|
1391
1826
|
*/
|
|
1392
1827
|
suspended_at: string | null;
|
|
1393
1828
|
/** Format: date-time */
|
|
1394
1829
|
updated_at: string;
|
|
1830
|
+
/**
|
|
1831
|
+
* @description How this instance is paid for. `postpaid` is billed by the hour for as long as it exists;
|
|
1832
|
+
* `prepaid` was bought outright for a term.
|
|
1833
|
+
*
|
|
1834
|
+
* **Not the term.** How long it was bought for belongs to the order, not to the instance:
|
|
1835
|
+
* renewing can change it, and a machine bought for a year and then renewed for a month is
|
|
1836
|
+
* still a prepaid machine. Ask billing for the term and the expiry — they live there, and
|
|
1837
|
+
* they are the only two values a renewal moves.
|
|
1838
|
+
* @enum {string}
|
|
1839
|
+
*/
|
|
1840
|
+
charge_type: "postpaid" | "prepaid";
|
|
1841
|
+
/**
|
|
1842
|
+
* @description The order this instance was bought under, in billing's own identifiers. Empty when the
|
|
1843
|
+
* deployment has no billing wired in.
|
|
1844
|
+
*
|
|
1845
|
+
* Kept so the question can be answered later. "Why was I charged for this" is asked days
|
|
1846
|
+
* after the fact, and an order id handed back only in the launch response is one the
|
|
1847
|
+
* person who needs it never had.
|
|
1848
|
+
*/
|
|
1849
|
+
billing_order_id: string;
|
|
1395
1850
|
};
|
|
1396
1851
|
InstanceListResponseBody: {
|
|
1397
1852
|
items: components["schemas"]["InstanceResource"][] | null;
|
|
1398
1853
|
};
|
|
1399
1854
|
LaunchInstanceRequestBody: {
|
|
1855
|
+
/**
|
|
1856
|
+
* @description A promotion code to apply to this order. Case and surrounding whitespace do not matter.
|
|
1857
|
+
*
|
|
1858
|
+
* An unusable code is rejected outright rather than quietly ignored: somebody who typed a
|
|
1859
|
+
* code is buying at the discounted price, and letting it through silently means they pay
|
|
1860
|
+
* full price expecting the discount, with nothing anywhere saying so.
|
|
1861
|
+
*
|
|
1862
|
+
* The discount applies to the lines the campaign covers, not the whole order — typically
|
|
1863
|
+
* the instance type and memory, not the system disk, the address, or traffic. Preview it
|
|
1864
|
+
* first at `POST /account/v1/billing-accounts/{accountKey}/promotion-codes/preview` to
|
|
1865
|
+
* show the customer what will actually be charged.
|
|
1866
|
+
*
|
|
1867
|
+
* Metered orders reject any code: there is no amount to discount at this point.
|
|
1868
|
+
*/
|
|
1869
|
+
promotion_code?: string;
|
|
1870
|
+
/**
|
|
1871
|
+
* @description "This is the same click". Generate one when the dialog opens — not when it is submitted —
|
|
1872
|
+
* and send the same one on every retry of that action.
|
|
1873
|
+
*
|
|
1874
|
+
* Optional, and what happens without it is worth knowing: two identical requests inside the
|
|
1875
|
+
* same minute are treated as one, because there is nothing else to tell a double-click apart
|
|
1876
|
+
* from a deliberate second order. Sending your own key removes that guess entirely.
|
|
1877
|
+
*/
|
|
1878
|
+
idempotency_key?: string;
|
|
1879
|
+
/**
|
|
1880
|
+
* Format: uuid
|
|
1881
|
+
* @description Bind a floating IP you already hold, instead of allocating a new one. It must be idle and in
|
|
1882
|
+
* the same region.
|
|
1883
|
+
*
|
|
1884
|
+
* Mutually exclusive with `bandwidth_mbps`: an address you already hold has its own bandwidth
|
|
1885
|
+
* ceiling, set when it was allocated, and changing it is a separate operation.
|
|
1886
|
+
*
|
|
1887
|
+
* Like `bandwidth_mbps`, this happens **inside the creation**: if binding fails, no instance is
|
|
1888
|
+
* created. Binding afterwards is still possible from the instance page, but then it is two
|
|
1889
|
+
* operations and a failure in between leaves an instance you cannot reach.
|
|
1890
|
+
*
|
|
1891
|
+
* Only one instance can be created when it is used — one address binds to one interface.
|
|
1892
|
+
*/
|
|
1893
|
+
floating_ip_id?: string;
|
|
1894
|
+
/**
|
|
1895
|
+
* Format: int64
|
|
1896
|
+
* @description Give this instance a public address with this much bandwidth, in Mbit/s. Omitted or 0 means
|
|
1897
|
+
* no public address.
|
|
1898
|
+
*
|
|
1899
|
+
* Mutually exclusive with `floating_ip_id`, which binds one you already hold.
|
|
1900
|
+
*
|
|
1901
|
+
* The bandwidth is what says whether an address is wanted, rather than a separate flag,
|
|
1902
|
+
* because an address with no ceiling would run at line rate and be charged nothing for the
|
|
1903
|
+
* traffic — while the address itself bills normally and the invoice looks correct.
|
|
1904
|
+
*
|
|
1905
|
+
* The address and its bandwidth are two lines on the same order as the instance and its
|
|
1906
|
+
* system disk — one purchase with one total — and everything is created together or not at
|
|
1907
|
+
* all: if any step fails, the address goes back to the pool and no instance is created.
|
|
1908
|
+
* Asking for an address separately afterwards is still possible, but then they are separate
|
|
1909
|
+
* purchases, and a failure in between leaves an instance you cannot reach.
|
|
1910
|
+
*
|
|
1911
|
+
* Both lines are always billed by the hour, even when the instance is bought outright for a
|
|
1912
|
+
* term: a public IPv4 is a scarce resource the platform keeps holding for as long as you have
|
|
1913
|
+
* it, so it is not something that can be paid for once.
|
|
1914
|
+
*
|
|
1915
|
+
* Which address you get is not a choice here. Use the floating IP endpoints to claim a
|
|
1916
|
+
* particular address and bind it, which is what getting a known address back after a
|
|
1917
|
+
* migration needs.
|
|
1918
|
+
*
|
|
1919
|
+
* Rejected together with `port_id` when that interface already has a floating IP: an
|
|
1920
|
+
* interface carries one IPv4, and one IPv4 takes one floating IP. Attach another interface to
|
|
1921
|
+
* hold a second address.
|
|
1922
|
+
*/
|
|
1923
|
+
bandwidth_mbps?: number;
|
|
1400
1924
|
/**
|
|
1401
1925
|
* Format: int64
|
|
1402
|
-
* @description
|
|
1926
|
+
* @description Number of instances to create; 1 when omitted. Names are numbered automatically for several
|
|
1403
1927
|
*/
|
|
1404
1928
|
count?: number;
|
|
1405
|
-
/** @description
|
|
1929
|
+
/** @description Have the platform generate a random password, returned only in this response */
|
|
1406
1930
|
generate_password?: boolean;
|
|
1407
1931
|
/**
|
|
1408
1932
|
* Format: uuid
|
|
1409
|
-
* @description
|
|
1933
|
+
* @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`
|
|
1934
|
+
*/
|
|
1935
|
+
boot_disk_id?: string;
|
|
1936
|
+
/**
|
|
1937
|
+
* Format: uuid
|
|
1938
|
+
* @description A platform image, and it must be one currently on sale. Exactly one of this, `private_image_id` and `boot_disk_id`
|
|
1410
1939
|
*/
|
|
1411
1940
|
image_id?: string;
|
|
1412
|
-
/**
|
|
1941
|
+
/**
|
|
1942
|
+
* Format: uuid
|
|
1943
|
+
* @description An instance type currently on sale. A withdrawn one is rejected even though its identifier still resolves
|
|
1944
|
+
*/
|
|
1413
1945
|
instance_type_id: string;
|
|
1946
|
+
/** @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 */
|
|
1947
|
+
login_username?: string;
|
|
1414
1948
|
name: string;
|
|
1415
|
-
/** @description root
|
|
1949
|
+
/** @description The password to set, on the login account and on root. Only the SSH public keys of the project are used when omitted */
|
|
1416
1950
|
password?: string;
|
|
1417
1951
|
/**
|
|
1418
1952
|
* Format: uuid
|
|
1419
|
-
* @description
|
|
1953
|
+
* @description Use an existing network interface, which may already have a floating IP bound. Exactly one of this and `subnet_id`; only one instance can be created when it is used
|
|
1420
1954
|
*/
|
|
1421
1955
|
port_id?: string;
|
|
1422
1956
|
/**
|
|
1423
1957
|
* Format: uuid
|
|
1424
|
-
* @description
|
|
1958
|
+
* @description A private image. Exactly one of this, `image_id` and `boot_disk_id`
|
|
1425
1959
|
*/
|
|
1426
1960
|
private_image_id?: string;
|
|
1961
|
+
/**
|
|
1962
|
+
* @description How to pay for a term bought outright. Only meaningful together with `term`.
|
|
1963
|
+
*
|
|
1964
|
+
* `balance` takes it from the account balance and either succeeds or refuses on the spot.
|
|
1965
|
+
* `online` returns a `checkout_url` instead and **creates nothing** — the resource is only
|
|
1966
|
+
* created once the money arrives and the customer comes back to place it again. That last
|
|
1967
|
+
* part is deliberate: a successful payment should not silently turn into a machine, because
|
|
1968
|
+
* between paying and returning they may have changed their mind.
|
|
1969
|
+
*
|
|
1970
|
+
* Online payment is not a second wallet. What arrives lands in the balance first and the
|
|
1971
|
+
* order is settled from there, so money topped up and money paid at checkout are the same
|
|
1972
|
+
* pool.
|
|
1973
|
+
* @default balance
|
|
1974
|
+
* @enum {string}
|
|
1975
|
+
*/
|
|
1976
|
+
payment_method?: "balance" | "online";
|
|
1977
|
+
/**
|
|
1978
|
+
* @description Buy the instance outright for this long, as an ISO 8601 duration (P1M, P1Y). Billed by the
|
|
1979
|
+
* hour when omitted.
|
|
1980
|
+
*
|
|
1981
|
+
* The money is taken from the balance when the order is placed, at the price the catalogue
|
|
1982
|
+
* reported for this type and term. If that term is not on sale for this type the request is
|
|
1983
|
+
* refused — it is never quietly sold by the hour instead, because the customer who asked for
|
|
1984
|
+
* a year would find out only from the bill.
|
|
1985
|
+
*
|
|
1986
|
+
* The system disk is bought for the same term, because it is the same purchase: an instance
|
|
1987
|
+
* bought for a year whose disk is billed hourly is a bill nobody would predict from what they
|
|
1988
|
+
* clicked. A term is therefore refused together with `boot_disk_id`, where the disk already
|
|
1989
|
+
* exists and is already billed its own way.
|
|
1990
|
+
*
|
|
1991
|
+
* A public address asked for with `assign_public_ip` stays hourly regardless — it cannot be
|
|
1992
|
+
* bought outright — so one order can carry both.
|
|
1993
|
+
*
|
|
1994
|
+
* When the term runs out the instance is stopped, not deleted, and starts again once it is
|
|
1995
|
+
* renewed. Renewal lives in the billing console, across every product, because what a
|
|
1996
|
+
* customer needs to see is everything expiring this month rather than one product at a time.
|
|
1997
|
+
*/
|
|
1998
|
+
term?: string;
|
|
1427
1999
|
/**
|
|
1428
2000
|
* Format: int64
|
|
1429
|
-
* @description
|
|
2001
|
+
* @description System disk capacity in GB. Chosen automatically from the requirement of the image and the platform minimum when omitted. Ignored with `boot_disk_id`, since that disk already has its capacity
|
|
1430
2002
|
*/
|
|
1431
2003
|
root_disk_gb?: number;
|
|
1432
|
-
/** @description
|
|
2004
|
+
/** @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 */
|
|
1433
2005
|
security_group_ids?: string[] | null;
|
|
1434
2006
|
/**
|
|
1435
2007
|
* Format: uuid
|
|
1436
|
-
* @description
|
|
2008
|
+
* @description Create the primary network interface in this subnet. Exactly one of this and `port_id`
|
|
1437
2009
|
*/
|
|
1438
2010
|
subnet_id?: string;
|
|
1439
2011
|
};
|
|
1440
2012
|
LaunchInstanceResponseBody: {
|
|
1441
|
-
/**
|
|
2013
|
+
/**
|
|
2014
|
+
* @description The orders these instances were bought under, in the same order as `instances`.
|
|
2015
|
+
*
|
|
2016
|
+
* **One per instance, not one per request.** A batch of three places three orders, because
|
|
2017
|
+
* each machine is ordered as it is created — stopping halfway leaves the machines already
|
|
2018
|
+
* made, and they each have to be paid for. A caller showing "your order" for a batch has to
|
|
2019
|
+
* show all of them.
|
|
2020
|
+
*
|
|
2021
|
+
* Empty when the deployment has no billing wired in, and on the `checkout_url` branch where
|
|
2022
|
+
* nothing was created yet.
|
|
2023
|
+
*
|
|
2024
|
+
* Given so the caller can point at the transaction. Creating a resource takes money — by
|
|
2025
|
+
* the hour from that moment for a metered one, in full from the balance for a prepaid one —
|
|
2026
|
+
* and until now the only thing handed back was the resource itself. Somebody asking "why
|
|
2027
|
+
* was I charged" had nothing to open.
|
|
2028
|
+
*/
|
|
2029
|
+
order_ids?: string[] | null;
|
|
2030
|
+
/** @description Non-empty when only some of the instances were created, stating why the sequence stopped */
|
|
1442
2031
|
failure: string | null;
|
|
1443
|
-
/** @description
|
|
2032
|
+
/** @description Returned in request order; an array even for a single instance */
|
|
1444
2033
|
instances: components["schemas"]["InstanceResource"][] | null;
|
|
1445
|
-
/** @description
|
|
2034
|
+
/** @description Returned only in this response; store it immediately. All instances of a batch share it */
|
|
1446
2035
|
password: string;
|
|
2036
|
+
/**
|
|
2037
|
+
* @description Present only when `payment_method` was `online`: **nothing was created**. Send the
|
|
2038
|
+
* customer here to pay.
|
|
2039
|
+
*
|
|
2040
|
+
* What comes back is not a resource but a bill to settle. Treating this response as a
|
|
2041
|
+
* success and moving on is how something gets handed over without the money arriving —
|
|
2042
|
+
* and it looks exactly like a normal creation from the outside.
|
|
2043
|
+
*/
|
|
2044
|
+
checkout_url?: string;
|
|
2045
|
+
};
|
|
2046
|
+
SetInstanceLabelsRequestBody: {
|
|
2047
|
+
/** @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 */
|
|
2048
|
+
labels: {
|
|
2049
|
+
[key: string]: string;
|
|
2050
|
+
};
|
|
2051
|
+
};
|
|
2052
|
+
SetInstanceNotesRequestBody: {
|
|
2053
|
+
/** @description The complete note. Send an empty string to clear it */
|
|
2054
|
+
notes: string;
|
|
1447
2055
|
};
|
|
1448
2056
|
RenameInstanceRequestBody: {
|
|
1449
2057
|
name: string;
|
|
1450
2058
|
};
|
|
1451
|
-
|
|
1452
|
-
/** @
|
|
1453
|
-
action: "start" | "stop" | "reboot";
|
|
1454
|
-
/** @description 仅适用于 reboot。强制重启不等待操作系统正常关闭,未落盘的数据会丢失,用于系统已无响应的情况 */
|
|
2059
|
+
RebootInstanceRequestBody: {
|
|
2060
|
+
/** @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 */
|
|
1455
2061
|
force?: boolean;
|
|
1456
2062
|
};
|
|
2063
|
+
RunCommandRequestBody: {
|
|
2064
|
+
/** @description Run by the login shell, so pipes, redirection and `&&` work. It cannot read standard input */
|
|
2065
|
+
command: string;
|
|
2066
|
+
/**
|
|
2067
|
+
* Format: int64
|
|
2068
|
+
* @description Kill the command after this long. 60 when omitted
|
|
2069
|
+
*/
|
|
2070
|
+
timeout_seconds?: number;
|
|
2071
|
+
};
|
|
2072
|
+
CommandResultResponseBody: {
|
|
2073
|
+
/**
|
|
2074
|
+
* Format: int64
|
|
2075
|
+
* @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
|
|
2076
|
+
*/
|
|
2077
|
+
exit_code: number | null;
|
|
2078
|
+
stderr: string;
|
|
2079
|
+
stdout: string;
|
|
2080
|
+
/** @description True when the command was still running at the timeout and was killed */
|
|
2081
|
+
timed_out: boolean;
|
|
2082
|
+
/** @description True when either stream hit the 1 MiB cap and the rest was discarded */
|
|
2083
|
+
truncated: boolean;
|
|
2084
|
+
};
|
|
1457
2085
|
ConsoleResponseBody: {
|
|
1458
|
-
/** @description
|
|
2086
|
+
/** @description Connection address of the remote console; single-use and expires within minutes */
|
|
1459
2087
|
console_url: string;
|
|
1460
2088
|
};
|
|
1461
2089
|
ConsoleOutputResponseBody: {
|
|
1462
|
-
/** @description
|
|
2090
|
+
/** @description Raw text of the console output, in the same line order as inside the instance */
|
|
1463
2091
|
output: string;
|
|
1464
2092
|
};
|
|
1465
2093
|
ResetPasswordRequestBody: {
|
|
1466
|
-
/** @description
|
|
2094
|
+
/** @description Have the platform generate a random password, returned only in this response */
|
|
1467
2095
|
generate_password?: boolean;
|
|
1468
|
-
/** @description
|
|
2096
|
+
/** @description New root password. Exactly one of this and `generate_password` */
|
|
1469
2097
|
password?: string;
|
|
1470
2098
|
};
|
|
1471
2099
|
ResetPasswordResponseBody: {
|
|
1472
|
-
/** @description
|
|
2100
|
+
/** @description The password generated by the platform, returned only in this response. Empty when the password was supplied in the request */
|
|
1473
2101
|
password: string;
|
|
1474
2102
|
};
|
|
1475
2103
|
RebuildInstanceRequestBody: {
|
|
1476
2104
|
generate_password?: boolean;
|
|
1477
2105
|
/**
|
|
1478
2106
|
* Format: uuid
|
|
1479
|
-
* @description
|
|
2107
|
+
* @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`
|
|
1480
2108
|
*/
|
|
1481
2109
|
image_id?: string;
|
|
1482
2110
|
password?: string;
|
|
1483
2111
|
/**
|
|
1484
2112
|
* Format: uuid
|
|
1485
|
-
* @description
|
|
2113
|
+
* @description A private image. Exactly one of this and `image_id`
|
|
1486
2114
|
*/
|
|
1487
2115
|
private_image_id?: string;
|
|
1488
2116
|
};
|
|
1489
2117
|
RebuildInstanceResponseBody: {
|
|
1490
2118
|
instance: components["schemas"]["InstanceResource"];
|
|
1491
|
-
/** @description
|
|
2119
|
+
/** @description Returned only in this response; store it immediately */
|
|
1492
2120
|
password: string;
|
|
1493
2121
|
};
|
|
1494
2122
|
ResizeInstanceRequestBody: {
|
|
1495
2123
|
/**
|
|
1496
2124
|
* Format: uuid
|
|
1497
|
-
* @description
|
|
2125
|
+
* @description Must be in the same region and availability zone as the current instance type
|
|
1498
2126
|
*/
|
|
1499
2127
|
instance_type_id: string;
|
|
1500
2128
|
};
|
|
@@ -1511,14 +2139,14 @@ export interface components {
|
|
|
1511
2139
|
/** Format: uuid */
|
|
1512
2140
|
id: string;
|
|
1513
2141
|
ipv6_address: string | null;
|
|
1514
|
-
/** @description
|
|
2142
|
+
/** @description A primary network interface is created and released with its instance and cannot be detached individually */
|
|
1515
2143
|
is_primary: boolean;
|
|
1516
2144
|
mac: string | null;
|
|
1517
2145
|
name: string;
|
|
1518
2146
|
private_ip: string | null;
|
|
1519
2147
|
/** Format: uuid */
|
|
1520
2148
|
private_network_id: string;
|
|
1521
|
-
/** @description
|
|
2149
|
+
/** @description Floating IPv4 addresses bound to this network interface; an empty array when none are bound */
|
|
1522
2150
|
public_ips: string[] | null;
|
|
1523
2151
|
/** Format: uuid */
|
|
1524
2152
|
subnet_id: string;
|
|
@@ -1531,24 +2159,30 @@ export interface components {
|
|
|
1531
2159
|
port_id: string;
|
|
1532
2160
|
};
|
|
1533
2161
|
OperationLogResource: {
|
|
1534
|
-
/** @description
|
|
2162
|
+
/** @description Name of the operation; matches the operation id of the endpoint */
|
|
1535
2163
|
action: string;
|
|
1536
|
-
/** @description
|
|
2164
|
+
/** @description The user who initiated the operation. Empty when the platform performed it */
|
|
1537
2165
|
actor: string | null;
|
|
1538
|
-
/**
|
|
2166
|
+
/**
|
|
2167
|
+
* @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.
|
|
2168
|
+
*
|
|
2169
|
+
* 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.
|
|
2170
|
+
*/
|
|
2171
|
+
actor_name: string | null;
|
|
2172
|
+
/** @description True when the operation was performed by the platform */
|
|
1539
2173
|
by_platform: boolean;
|
|
1540
2174
|
/** Format: date-time */
|
|
1541
2175
|
created_at: string;
|
|
1542
|
-
/** @description
|
|
2176
|
+
/** @description Brief reason for the failure */
|
|
1543
2177
|
failure: string | null;
|
|
1544
2178
|
/** Format: uuid */
|
|
1545
2179
|
id: string;
|
|
1546
|
-
/** @description
|
|
2180
|
+
/** @description Path and query parameters of the request. Fields such as passwords are redacted */
|
|
1547
2181
|
payload: {
|
|
1548
2182
|
[key: string]: unknown;
|
|
1549
2183
|
};
|
|
1550
2184
|
region_code: string | null;
|
|
1551
|
-
/** @description
|
|
2185
|
+
/** @description Empty for create operations: the id of the new resource is in the response, not in the request path */
|
|
1552
2186
|
subject_id: string;
|
|
1553
2187
|
subject_type: string;
|
|
1554
2188
|
succeeded: boolean;
|
|
@@ -1560,9 +2194,9 @@ export interface components {
|
|
|
1560
2194
|
};
|
|
1561
2195
|
CreatePortRequestBody: {
|
|
1562
2196
|
name?: string;
|
|
1563
|
-
/** @description
|
|
2197
|
+
/** @description The private address to assign. Allocated automatically when omitted */
|
|
1564
2198
|
private_ip?: string;
|
|
1565
|
-
/** @description
|
|
2199
|
+
/** @description At least one, and all must belong to the same private network */
|
|
1566
2200
|
security_group_ids: string[] | null;
|
|
1567
2201
|
/** Format: uuid */
|
|
1568
2202
|
subnet_id: string;
|
|
@@ -1571,38 +2205,40 @@ export interface components {
|
|
|
1571
2205
|
architecture: string;
|
|
1572
2206
|
/** Format: date-time */
|
|
1573
2207
|
created_at: string;
|
|
1574
|
-
/** @description
|
|
2208
|
+
/** @description Reason the capture failed; non-empty only when `status` is `error` */
|
|
1575
2209
|
failure: string | null;
|
|
1576
2210
|
/** Format: uuid */
|
|
1577
2211
|
id: string;
|
|
2212
|
+
/** @description The account this image lets you log in as. The password set at creation belongs to this account */
|
|
2213
|
+
login_username: string;
|
|
1578
2214
|
/**
|
|
1579
2215
|
* Format: int64
|
|
1580
|
-
* @description
|
|
2216
|
+
* @description The system disk of an instance created from this image cannot be smaller than this
|
|
1581
2217
|
*/
|
|
1582
2218
|
min_disk_gb: number;
|
|
1583
2219
|
/**
|
|
1584
2220
|
* Format: int64
|
|
1585
|
-
* @description
|
|
2221
|
+
* @description The instance type of an instance created from this image must have at least this much memory
|
|
1586
2222
|
*/
|
|
1587
2223
|
min_ram_mb: number;
|
|
1588
2224
|
name: string;
|
|
1589
2225
|
os_family: string;
|
|
1590
2226
|
os_version: string;
|
|
1591
|
-
/** @description
|
|
2227
|
+
/** @description An image can only be used in the region that holds it */
|
|
1592
2228
|
region_code: string;
|
|
1593
2229
|
/**
|
|
1594
2230
|
* Format: int64
|
|
1595
|
-
* @description
|
|
2231
|
+
* @description Storage occupied by the image; 0 until the capture completes
|
|
1596
2232
|
*/
|
|
1597
2233
|
size_bytes: number;
|
|
1598
2234
|
/**
|
|
1599
2235
|
* Format: uuid
|
|
1600
|
-
* @description
|
|
2236
|
+
* @description The instance this image was captured from. The image remains usable after that instance is released
|
|
1601
2237
|
*/
|
|
1602
2238
|
source_instance_id: string | null;
|
|
1603
2239
|
/** @enum {string} */
|
|
1604
2240
|
status: "provisioning" | "uploading" | "available" | "deleting" | "error";
|
|
1605
|
-
/** @description
|
|
2241
|
+
/** @description False means a new password can only be set by rebuilding an instance created from this image */
|
|
1606
2242
|
supports_password_reset: boolean;
|
|
1607
2243
|
};
|
|
1608
2244
|
PrivateImageListResponseBody: {
|
|
@@ -1611,7 +2247,7 @@ export interface components {
|
|
|
1611
2247
|
CreatePrivateImageRequestBody: {
|
|
1612
2248
|
/**
|
|
1613
2249
|
* Format: uuid
|
|
1614
|
-
* @description
|
|
2250
|
+
* @description Captured from the system disk of this instance; data disks are not included
|
|
1615
2251
|
*/
|
|
1616
2252
|
instance_id: string;
|
|
1617
2253
|
name: string;
|
|
@@ -1637,7 +2273,7 @@ export interface components {
|
|
|
1637
2273
|
items: components["schemas"]["PrivateNetworkResource"][] | null;
|
|
1638
2274
|
};
|
|
1639
2275
|
CreatePrivateNetworkRequestBody: {
|
|
1640
|
-
/** @description
|
|
2276
|
+
/** @description Must be an RFC 1918 private CIDR with a prefix length between /8 and /24, for example `10.0.0.0/16` */
|
|
1641
2277
|
cidr: string;
|
|
1642
2278
|
name: string;
|
|
1643
2279
|
region_code: string;
|
|
@@ -1646,11 +2282,11 @@ export interface components {
|
|
|
1646
2282
|
name: string;
|
|
1647
2283
|
};
|
|
1648
2284
|
IPv6ResponseBody: {
|
|
1649
|
-
/** @description
|
|
2285
|
+
/** @description The allocated /64 prefix; empty while IPv6 is disabled */
|
|
1650
2286
|
cidr: string;
|
|
1651
2287
|
enabled: boolean;
|
|
1652
2288
|
/**
|
|
1653
|
-
* @description
|
|
2289
|
+
* @description `active` means IPv6 is fully available
|
|
1654
2290
|
* @enum {string}
|
|
1655
2291
|
*/
|
|
1656
2292
|
status: "pending" | "active" | "draining";
|
|
@@ -1669,9 +2305,9 @@ export interface components {
|
|
|
1669
2305
|
};
|
|
1670
2306
|
CreateRouteRequestBody: {
|
|
1671
2307
|
description?: string;
|
|
1672
|
-
/** @description
|
|
2308
|
+
/** @description Destination CIDR. It cannot be `0.0.0.0/0`, nor the CIDR of a subnet of this network */
|
|
1673
2309
|
destination: string;
|
|
1674
|
-
/** @description
|
|
2310
|
+
/** @description Private address of an instance; must fall inside a subnet of this private network */
|
|
1675
2311
|
nexthop: string;
|
|
1676
2312
|
};
|
|
1677
2313
|
SubnetResource: {
|
|
@@ -1692,12 +2328,12 @@ export interface components {
|
|
|
1692
2328
|
items: components["schemas"]["SubnetResource"][] | null;
|
|
1693
2329
|
};
|
|
1694
2330
|
CreateSubnetRequestBody: {
|
|
1695
|
-
/** @description
|
|
2331
|
+
/** @description Must fall inside the CIDR of the private network and must not overlap an existing subnet */
|
|
1696
2332
|
cidr: string;
|
|
1697
2333
|
name: string;
|
|
1698
2334
|
};
|
|
1699
2335
|
NextFreeCidrResponseBody: {
|
|
1700
|
-
/** @description
|
|
2336
|
+
/** @description Empty when the private network has no free CIDR left for that prefix length */
|
|
1701
2337
|
cidr: string;
|
|
1702
2338
|
};
|
|
1703
2339
|
SecurityGroupResource: {
|
|
@@ -1706,7 +2342,7 @@ export interface components {
|
|
|
1706
2342
|
description: string;
|
|
1707
2343
|
/** Format: uuid */
|
|
1708
2344
|
id: string;
|
|
1709
|
-
/** @description
|
|
2345
|
+
/** @description The default security group is released with its private network and cannot be deleted individually */
|
|
1710
2346
|
is_default: boolean;
|
|
1711
2347
|
name: string;
|
|
1712
2348
|
/** Format: uuid */
|
|
@@ -1733,12 +2369,12 @@ export interface components {
|
|
|
1733
2369
|
id: string;
|
|
1734
2370
|
/**
|
|
1735
2371
|
* Format: int64
|
|
1736
|
-
* @description ICMP
|
|
2372
|
+
* @description Denotes the ICMP code rather than a port when the protocol is ICMP
|
|
1737
2373
|
*/
|
|
1738
2374
|
port_range_max: number | null;
|
|
1739
2375
|
/**
|
|
1740
2376
|
* Format: int64
|
|
1741
|
-
* @description ICMP
|
|
2377
|
+
* @description Denotes the ICMP type rather than a port when the protocol is ICMP
|
|
1742
2378
|
*/
|
|
1743
2379
|
port_range_min: number | null;
|
|
1744
2380
|
protocol: string | null;
|
|
@@ -1755,21 +2391,21 @@ export interface components {
|
|
|
1755
2391
|
ethertype: "IPv4" | "IPv6";
|
|
1756
2392
|
/**
|
|
1757
2393
|
* Format: int64
|
|
1758
|
-
* @description ICMP
|
|
2394
|
+
* @description Denotes the ICMP code (0–255) rather than a port when the protocol is ICMP
|
|
1759
2395
|
*/
|
|
1760
2396
|
port_range_max?: number | null;
|
|
1761
2397
|
/**
|
|
1762
2398
|
* Format: int64
|
|
1763
|
-
* @description ICMP
|
|
2399
|
+
* @description Denotes the ICMP type (0–255) rather than a port when the protocol is ICMP
|
|
1764
2400
|
*/
|
|
1765
2401
|
port_range_min?: number | null;
|
|
1766
|
-
/** @description
|
|
2402
|
+
/** @description For example `tcp`, `udp`, `icmp` or `ipv6-icmp`. All protocols when omitted */
|
|
1767
2403
|
protocol?: string;
|
|
1768
|
-
/** @description
|
|
2404
|
+
/** @description Equivalent to `0.0.0.0/0` or `::/0` when omitted */
|
|
1769
2405
|
remote_ip_prefix?: string;
|
|
1770
2406
|
};
|
|
1771
2407
|
SnapshotResource: {
|
|
1772
|
-
/** @description
|
|
2408
|
+
/** @description A disk restored from this snapshot must reside in this availability zone */
|
|
1773
2409
|
availability_zone: string;
|
|
1774
2410
|
/** Format: date-time */
|
|
1775
2411
|
created_at: string;
|
|
@@ -1781,7 +2417,7 @@ export interface components {
|
|
|
1781
2417
|
region_code: string;
|
|
1782
2418
|
/**
|
|
1783
2419
|
* Format: int64
|
|
1784
|
-
* @description
|
|
2420
|
+
* @description Capacity of the source disk when the snapshot was created. A disk restored from it cannot be smaller
|
|
1785
2421
|
*/
|
|
1786
2422
|
size_gb: number;
|
|
1787
2423
|
/** @enum {string} */
|
|
@@ -1795,6 +2431,9 @@ export interface components {
|
|
|
1795
2431
|
disk_id: string;
|
|
1796
2432
|
name: string;
|
|
1797
2433
|
};
|
|
2434
|
+
RenameSecurityGroupRequestBody: {
|
|
2435
|
+
name: string;
|
|
2436
|
+
};
|
|
1798
2437
|
RenameSnapshotRequestBody: {
|
|
1799
2438
|
name: string;
|
|
1800
2439
|
};
|
|
@@ -1810,7 +2449,7 @@ export interface operations {
|
|
|
1810
2449
|
"list-backups": {
|
|
1811
2450
|
parameters: {
|
|
1812
2451
|
query?: {
|
|
1813
|
-
/** @description
|
|
2452
|
+
/** @description Return only the backups of this disk */
|
|
1814
2453
|
disk_id?: string;
|
|
1815
2454
|
};
|
|
1816
2455
|
header?: never;
|
|
@@ -2033,6 +2672,37 @@ export interface operations {
|
|
|
2033
2672
|
};
|
|
2034
2673
|
};
|
|
2035
2674
|
};
|
|
2675
|
+
"get-disk-type": {
|
|
2676
|
+
parameters: {
|
|
2677
|
+
query?: never;
|
|
2678
|
+
header?: never;
|
|
2679
|
+
path: {
|
|
2680
|
+
diskTypeId: string;
|
|
2681
|
+
};
|
|
2682
|
+
cookie?: never;
|
|
2683
|
+
};
|
|
2684
|
+
requestBody?: never;
|
|
2685
|
+
responses: {
|
|
2686
|
+
/** @description OK */
|
|
2687
|
+
200: {
|
|
2688
|
+
headers: {
|
|
2689
|
+
[name: string]: unknown;
|
|
2690
|
+
};
|
|
2691
|
+
content: {
|
|
2692
|
+
"application/json": components["schemas"]["DiskTypeResource"];
|
|
2693
|
+
};
|
|
2694
|
+
};
|
|
2695
|
+
/** @description Error */
|
|
2696
|
+
default: {
|
|
2697
|
+
headers: {
|
|
2698
|
+
[name: string]: unknown;
|
|
2699
|
+
};
|
|
2700
|
+
content: {
|
|
2701
|
+
"application/json": components["schemas"]["Error"];
|
|
2702
|
+
};
|
|
2703
|
+
};
|
|
2704
|
+
};
|
|
2705
|
+
};
|
|
2036
2706
|
"list-images": {
|
|
2037
2707
|
parameters: {
|
|
2038
2708
|
query: {
|
|
@@ -2159,7 +2829,7 @@ export interface operations {
|
|
|
2159
2829
|
parameters: {
|
|
2160
2830
|
query?: {
|
|
2161
2831
|
region_code?: string;
|
|
2162
|
-
/** @description
|
|
2832
|
+
/** @description Supplied together with `region_code` to filter attachable disks */
|
|
2163
2833
|
availability_zone?: string;
|
|
2164
2834
|
};
|
|
2165
2835
|
header?: never;
|
|
@@ -2210,6 +2880,33 @@ export interface operations {
|
|
|
2210
2880
|
"application/json": components["schemas"]["DiskResource"];
|
|
2211
2881
|
};
|
|
2212
2882
|
};
|
|
2883
|
+
/**
|
|
2884
|
+
* @description Payment required: **nothing was created.**
|
|
2885
|
+
*
|
|
2886
|
+
* Returned when `payment_method` is `online`. `meta.checkout_url` is where to send the
|
|
2887
|
+
* customer; `meta.order_id` is the order waiting on it.
|
|
2888
|
+
*
|
|
2889
|
+
* ## Why this is a status and not a field on a 200
|
|
2890
|
+
*
|
|
2891
|
+
* A field on a success response is something a client can forget to read, and forgetting it
|
|
2892
|
+
* means treating "we created nothing and are waiting for money" as "created" — which looks
|
|
2893
|
+
* identical from the outside until the bill does not add up. A 402 fails loudly in any
|
|
2894
|
+
* client that handles errors at all.
|
|
2895
|
+
*
|
|
2896
|
+
* ## What happens after they pay
|
|
2897
|
+
*
|
|
2898
|
+
* The money lands in the balance and the order is settled from it. The resource is **not**
|
|
2899
|
+
* created automatically: placing it again is the customer's move, because between paying
|
|
2900
|
+
* and coming back they may have changed their mind. The balance is theirs either way.
|
|
2901
|
+
*/
|
|
2902
|
+
402: {
|
|
2903
|
+
headers: {
|
|
2904
|
+
[name: string]: unknown;
|
|
2905
|
+
};
|
|
2906
|
+
content: {
|
|
2907
|
+
"application/json": components["schemas"]["Error"];
|
|
2908
|
+
};
|
|
2909
|
+
};
|
|
2213
2910
|
/** @description Error */
|
|
2214
2911
|
default: {
|
|
2215
2912
|
headers: {
|
|
@@ -2611,7 +3308,10 @@ export interface operations {
|
|
|
2611
3308
|
};
|
|
2612
3309
|
"list-instances": {
|
|
2613
3310
|
parameters: {
|
|
2614
|
-
query?:
|
|
3311
|
+
query?: {
|
|
3312
|
+
/** @description Only instances carrying this label, written as `key:value` — for example `env:prod`. Both halves are matched exactly */
|
|
3313
|
+
label?: string;
|
|
3314
|
+
};
|
|
2615
3315
|
header?: never;
|
|
2616
3316
|
path?: never;
|
|
2617
3317
|
cookie?: never;
|
|
@@ -2660,6 +3360,33 @@ export interface operations {
|
|
|
2660
3360
|
"application/json": components["schemas"]["LaunchInstanceResponseBody"];
|
|
2661
3361
|
};
|
|
2662
3362
|
};
|
|
3363
|
+
/**
|
|
3364
|
+
* @description Payment required: **nothing was created.**
|
|
3365
|
+
*
|
|
3366
|
+
* Returned when `payment_method` is `online`. `meta.checkout_url` is where to send the
|
|
3367
|
+
* customer; `meta.order_id` is the order waiting on it.
|
|
3368
|
+
*
|
|
3369
|
+
* ## Why this is a status and not a field on a 200
|
|
3370
|
+
*
|
|
3371
|
+
* A field on a success response is something a client can forget to read, and forgetting it
|
|
3372
|
+
* means treating "we created nothing and are waiting for money" as "created" — which looks
|
|
3373
|
+
* identical from the outside until the bill does not add up. A 402 fails loudly in any
|
|
3374
|
+
* client that handles errors at all.
|
|
3375
|
+
*
|
|
3376
|
+
* ## What happens after they pay
|
|
3377
|
+
*
|
|
3378
|
+
* The money lands in the balance and the order is settled from it. The resource is **not**
|
|
3379
|
+
* created automatically: placing it again is the customer's move, because between paying
|
|
3380
|
+
* and coming back they may have changed their mind. The balance is theirs either way.
|
|
3381
|
+
*/
|
|
3382
|
+
402: {
|
|
3383
|
+
headers: {
|
|
3384
|
+
[name: string]: unknown;
|
|
3385
|
+
};
|
|
3386
|
+
content: {
|
|
3387
|
+
"application/json": components["schemas"]["Error"];
|
|
3388
|
+
};
|
|
3389
|
+
};
|
|
2663
3390
|
/** @description Error */
|
|
2664
3391
|
default: {
|
|
2665
3392
|
headers: {
|
|
@@ -2766,7 +3493,7 @@ export interface operations {
|
|
|
2766
3493
|
};
|
|
2767
3494
|
};
|
|
2768
3495
|
};
|
|
2769
|
-
"
|
|
3496
|
+
"run-instance-command": {
|
|
2770
3497
|
parameters: {
|
|
2771
3498
|
query?: never;
|
|
2772
3499
|
header?: never;
|
|
@@ -2777,7 +3504,7 @@ export interface operations {
|
|
|
2777
3504
|
};
|
|
2778
3505
|
requestBody: {
|
|
2779
3506
|
content: {
|
|
2780
|
-
"application/json": components["schemas"]["
|
|
3507
|
+
"application/json": components["schemas"]["RunCommandRequestBody"];
|
|
2781
3508
|
};
|
|
2782
3509
|
};
|
|
2783
3510
|
responses: {
|
|
@@ -2787,7 +3514,7 @@ export interface operations {
|
|
|
2787
3514
|
[name: string]: unknown;
|
|
2788
3515
|
};
|
|
2789
3516
|
content: {
|
|
2790
|
-
"application/json": components["schemas"]["
|
|
3517
|
+
"application/json": components["schemas"]["CommandResultResponseBody"];
|
|
2791
3518
|
};
|
|
2792
3519
|
};
|
|
2793
3520
|
/** @description Error */
|
|
@@ -2835,7 +3562,7 @@ export interface operations {
|
|
|
2835
3562
|
"get-instance-console-output": {
|
|
2836
3563
|
parameters: {
|
|
2837
3564
|
query?: {
|
|
2838
|
-
/** @description
|
|
3565
|
+
/** @description Number of trailing lines to return; 0 returns the entire output */
|
|
2839
3566
|
lines?: number;
|
|
2840
3567
|
};
|
|
2841
3568
|
header?: never;
|
|
@@ -2866,6 +3593,76 @@ export interface operations {
|
|
|
2866
3593
|
};
|
|
2867
3594
|
};
|
|
2868
3595
|
};
|
|
3596
|
+
"set-instance-labels": {
|
|
3597
|
+
parameters: {
|
|
3598
|
+
query?: never;
|
|
3599
|
+
header?: never;
|
|
3600
|
+
path: {
|
|
3601
|
+
instanceId: string;
|
|
3602
|
+
};
|
|
3603
|
+
cookie?: never;
|
|
3604
|
+
};
|
|
3605
|
+
requestBody: {
|
|
3606
|
+
content: {
|
|
3607
|
+
"application/json": components["schemas"]["SetInstanceLabelsRequestBody"];
|
|
3608
|
+
};
|
|
3609
|
+
};
|
|
3610
|
+
responses: {
|
|
3611
|
+
/** @description OK */
|
|
3612
|
+
200: {
|
|
3613
|
+
headers: {
|
|
3614
|
+
[name: string]: unknown;
|
|
3615
|
+
};
|
|
3616
|
+
content: {
|
|
3617
|
+
"application/json": components["schemas"]["InstanceResource"];
|
|
3618
|
+
};
|
|
3619
|
+
};
|
|
3620
|
+
/** @description Error */
|
|
3621
|
+
default: {
|
|
3622
|
+
headers: {
|
|
3623
|
+
[name: string]: unknown;
|
|
3624
|
+
};
|
|
3625
|
+
content: {
|
|
3626
|
+
"application/json": components["schemas"]["Error"];
|
|
3627
|
+
};
|
|
3628
|
+
};
|
|
3629
|
+
};
|
|
3630
|
+
};
|
|
3631
|
+
"set-instance-notes": {
|
|
3632
|
+
parameters: {
|
|
3633
|
+
query?: never;
|
|
3634
|
+
header?: never;
|
|
3635
|
+
path: {
|
|
3636
|
+
instanceId: string;
|
|
3637
|
+
};
|
|
3638
|
+
cookie?: never;
|
|
3639
|
+
};
|
|
3640
|
+
requestBody: {
|
|
3641
|
+
content: {
|
|
3642
|
+
"application/json": components["schemas"]["SetInstanceNotesRequestBody"];
|
|
3643
|
+
};
|
|
3644
|
+
};
|
|
3645
|
+
responses: {
|
|
3646
|
+
/** @description OK */
|
|
3647
|
+
200: {
|
|
3648
|
+
headers: {
|
|
3649
|
+
[name: string]: unknown;
|
|
3650
|
+
};
|
|
3651
|
+
content: {
|
|
3652
|
+
"application/json": components["schemas"]["InstanceResource"];
|
|
3653
|
+
};
|
|
3654
|
+
};
|
|
3655
|
+
/** @description Error */
|
|
3656
|
+
default: {
|
|
3657
|
+
headers: {
|
|
3658
|
+
[name: string]: unknown;
|
|
3659
|
+
};
|
|
3660
|
+
content: {
|
|
3661
|
+
"application/json": components["schemas"]["Error"];
|
|
3662
|
+
};
|
|
3663
|
+
};
|
|
3664
|
+
};
|
|
3665
|
+
};
|
|
2869
3666
|
"reset-instance-password": {
|
|
2870
3667
|
parameters: {
|
|
2871
3668
|
query?: never;
|
|
@@ -2901,6 +3698,41 @@ export interface operations {
|
|
|
2901
3698
|
};
|
|
2902
3699
|
};
|
|
2903
3700
|
};
|
|
3701
|
+
"reboot-instance": {
|
|
3702
|
+
parameters: {
|
|
3703
|
+
query?: never;
|
|
3704
|
+
header?: never;
|
|
3705
|
+
path: {
|
|
3706
|
+
instanceId: string;
|
|
3707
|
+
};
|
|
3708
|
+
cookie?: never;
|
|
3709
|
+
};
|
|
3710
|
+
requestBody: {
|
|
3711
|
+
content: {
|
|
3712
|
+
"application/json": components["schemas"]["RebootInstanceRequestBody"];
|
|
3713
|
+
};
|
|
3714
|
+
};
|
|
3715
|
+
responses: {
|
|
3716
|
+
/** @description OK */
|
|
3717
|
+
200: {
|
|
3718
|
+
headers: {
|
|
3719
|
+
[name: string]: unknown;
|
|
3720
|
+
};
|
|
3721
|
+
content: {
|
|
3722
|
+
"application/json": components["schemas"]["InstanceResource"];
|
|
3723
|
+
};
|
|
3724
|
+
};
|
|
3725
|
+
/** @description Error */
|
|
3726
|
+
default: {
|
|
3727
|
+
headers: {
|
|
3728
|
+
[name: string]: unknown;
|
|
3729
|
+
};
|
|
3730
|
+
content: {
|
|
3731
|
+
"application/json": components["schemas"]["Error"];
|
|
3732
|
+
};
|
|
3733
|
+
};
|
|
3734
|
+
};
|
|
3735
|
+
};
|
|
2904
3736
|
"rebuild-instance": {
|
|
2905
3737
|
parameters: {
|
|
2906
3738
|
query?: never;
|
|
@@ -3033,6 +3865,68 @@ export interface operations {
|
|
|
3033
3865
|
};
|
|
3034
3866
|
};
|
|
3035
3867
|
};
|
|
3868
|
+
"start-instance": {
|
|
3869
|
+
parameters: {
|
|
3870
|
+
query?: never;
|
|
3871
|
+
header?: never;
|
|
3872
|
+
path: {
|
|
3873
|
+
instanceId: string;
|
|
3874
|
+
};
|
|
3875
|
+
cookie?: never;
|
|
3876
|
+
};
|
|
3877
|
+
requestBody?: never;
|
|
3878
|
+
responses: {
|
|
3879
|
+
/** @description OK */
|
|
3880
|
+
200: {
|
|
3881
|
+
headers: {
|
|
3882
|
+
[name: string]: unknown;
|
|
3883
|
+
};
|
|
3884
|
+
content: {
|
|
3885
|
+
"application/json": components["schemas"]["InstanceResource"];
|
|
3886
|
+
};
|
|
3887
|
+
};
|
|
3888
|
+
/** @description Error */
|
|
3889
|
+
default: {
|
|
3890
|
+
headers: {
|
|
3891
|
+
[name: string]: unknown;
|
|
3892
|
+
};
|
|
3893
|
+
content: {
|
|
3894
|
+
"application/json": components["schemas"]["Error"];
|
|
3895
|
+
};
|
|
3896
|
+
};
|
|
3897
|
+
};
|
|
3898
|
+
};
|
|
3899
|
+
"stop-instance": {
|
|
3900
|
+
parameters: {
|
|
3901
|
+
query?: never;
|
|
3902
|
+
header?: never;
|
|
3903
|
+
path: {
|
|
3904
|
+
instanceId: string;
|
|
3905
|
+
};
|
|
3906
|
+
cookie?: never;
|
|
3907
|
+
};
|
|
3908
|
+
requestBody?: never;
|
|
3909
|
+
responses: {
|
|
3910
|
+
/** @description OK */
|
|
3911
|
+
200: {
|
|
3912
|
+
headers: {
|
|
3913
|
+
[name: string]: unknown;
|
|
3914
|
+
};
|
|
3915
|
+
content: {
|
|
3916
|
+
"application/json": components["schemas"]["InstanceResource"];
|
|
3917
|
+
};
|
|
3918
|
+
};
|
|
3919
|
+
/** @description Error */
|
|
3920
|
+
default: {
|
|
3921
|
+
headers: {
|
|
3922
|
+
[name: string]: unknown;
|
|
3923
|
+
};
|
|
3924
|
+
content: {
|
|
3925
|
+
"application/json": components["schemas"]["Error"];
|
|
3926
|
+
};
|
|
3927
|
+
};
|
|
3928
|
+
};
|
|
3929
|
+
};
|
|
3036
3930
|
"list-instance-disks": {
|
|
3037
3931
|
parameters: {
|
|
3038
3932
|
query?: never;
|
|
@@ -3299,7 +4193,7 @@ export interface operations {
|
|
|
3299
4193
|
"list-operation-logs": {
|
|
3300
4194
|
parameters: {
|
|
3301
4195
|
query?: {
|
|
3302
|
-
/** @description
|
|
4196
|
+
/** @description Return a single kind of operation; the value matches the operation id of the endpoint */
|
|
3303
4197
|
action?: string;
|
|
3304
4198
|
limit?: number;
|
|
3305
4199
|
offset?: number;
|
|
@@ -3424,7 +4318,7 @@ export interface operations {
|
|
|
3424
4318
|
"list-private-images": {
|
|
3425
4319
|
parameters: {
|
|
3426
4320
|
query?: {
|
|
3427
|
-
/** @description
|
|
4321
|
+
/** @description Return only the images of this region. An image can only be used in the region that holds it */
|
|
3428
4322
|
region_code?: string;
|
|
3429
4323
|
};
|
|
3430
4324
|
header?: never;
|
|
@@ -3584,7 +4478,7 @@ export interface operations {
|
|
|
3584
4478
|
"list-private-networks": {
|
|
3585
4479
|
parameters: {
|
|
3586
4480
|
query?: {
|
|
3587
|
-
/** @description
|
|
4481
|
+
/** @description Returns every region when omitted */
|
|
3588
4482
|
region_code?: string;
|
|
3589
4483
|
};
|
|
3590
4484
|
header?: never;
|
|
@@ -4061,7 +4955,7 @@ export interface operations {
|
|
|
4061
4955
|
parameters: {
|
|
4062
4956
|
query?: {
|
|
4063
4957
|
region_code?: string;
|
|
4064
|
-
/** @description
|
|
4958
|
+
/** @description Return only the security groups of this private network */
|
|
4065
4959
|
private_network_id?: string;
|
|
4066
4960
|
};
|
|
4067
4961
|
header?: never;
|
|
@@ -4183,6 +5077,41 @@ export interface operations {
|
|
|
4183
5077
|
};
|
|
4184
5078
|
};
|
|
4185
5079
|
};
|
|
5080
|
+
"rename-security-group": {
|
|
5081
|
+
parameters: {
|
|
5082
|
+
query?: never;
|
|
5083
|
+
header?: never;
|
|
5084
|
+
path: {
|
|
5085
|
+
securityGroupId: string;
|
|
5086
|
+
};
|
|
5087
|
+
cookie?: never;
|
|
5088
|
+
};
|
|
5089
|
+
requestBody: {
|
|
5090
|
+
content: {
|
|
5091
|
+
"application/json": components["schemas"]["RenameSecurityGroupRequestBody"];
|
|
5092
|
+
};
|
|
5093
|
+
};
|
|
5094
|
+
responses: {
|
|
5095
|
+
/** @description OK */
|
|
5096
|
+
200: {
|
|
5097
|
+
headers: {
|
|
5098
|
+
[name: string]: unknown;
|
|
5099
|
+
};
|
|
5100
|
+
content: {
|
|
5101
|
+
"application/json": components["schemas"]["SecurityGroupResource"];
|
|
5102
|
+
};
|
|
5103
|
+
};
|
|
5104
|
+
/** @description Error */
|
|
5105
|
+
default: {
|
|
5106
|
+
headers: {
|
|
5107
|
+
[name: string]: unknown;
|
|
5108
|
+
};
|
|
5109
|
+
content: {
|
|
5110
|
+
"application/json": components["schemas"]["Error"];
|
|
5111
|
+
};
|
|
5112
|
+
};
|
|
5113
|
+
};
|
|
5114
|
+
};
|
|
4186
5115
|
"list-security-group-rules": {
|
|
4187
5116
|
parameters: {
|
|
4188
5117
|
query?: never;
|
|
@@ -4282,7 +5211,7 @@ export interface operations {
|
|
|
4282
5211
|
"list-snapshots": {
|
|
4283
5212
|
parameters: {
|
|
4284
5213
|
query?: {
|
|
4285
|
-
/** @description
|
|
5214
|
+
/** @description Return only the snapshots of this disk */
|
|
4286
5215
|
disk_id?: string;
|
|
4287
5216
|
};
|
|
4288
5217
|
header?: never;
|