hetzner-cli 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +907 -0
  3. package/dist/auction/client.d.ts +4 -0
  4. package/dist/auction/client.js +103 -0
  5. package/dist/auction/commands.d.ts +2 -0
  6. package/dist/auction/commands.js +138 -0
  7. package/dist/auction/formatter.d.ts +3 -0
  8. package/dist/auction/formatter.js +87 -0
  9. package/dist/cli.d.ts +2 -0
  10. package/dist/cli.js +39 -0
  11. package/dist/client.d.ts +2 -0
  12. package/dist/client.js +4 -0
  13. package/dist/cloud/client.d.ts +511 -0
  14. package/dist/cloud/client.js +706 -0
  15. package/dist/cloud/commands/certificate.d.ts +2 -0
  16. package/dist/cloud/commands/certificate.js +77 -0
  17. package/dist/cloud/commands/context.d.ts +2 -0
  18. package/dist/cloud/commands/context.js +78 -0
  19. package/dist/cloud/commands/datacenter.d.ts +2 -0
  20. package/dist/cloud/commands/datacenter.js +20 -0
  21. package/dist/cloud/commands/firewall.d.ts +2 -0
  22. package/dist/cloud/commands/firewall.js +77 -0
  23. package/dist/cloud/commands/floating-ip.d.ts +2 -0
  24. package/dist/cloud/commands/floating-ip.js +83 -0
  25. package/dist/cloud/commands/image.d.ts +2 -0
  26. package/dist/cloud/commands/image.js +60 -0
  27. package/dist/cloud/commands/index.d.ts +2 -0
  28. package/dist/cloud/commands/index.js +41 -0
  29. package/dist/cloud/commands/iso.d.ts +2 -0
  30. package/dist/cloud/commands/iso.js +22 -0
  31. package/dist/cloud/commands/load-balancer-type.d.ts +2 -0
  32. package/dist/cloud/commands/load-balancer-type.js +20 -0
  33. package/dist/cloud/commands/load-balancer.d.ts +2 -0
  34. package/dist/cloud/commands/load-balancer.js +177 -0
  35. package/dist/cloud/commands/location.d.ts +2 -0
  36. package/dist/cloud/commands/location.js +20 -0
  37. package/dist/cloud/commands/network.d.ts +2 -0
  38. package/dist/cloud/commands/network.js +96 -0
  39. package/dist/cloud/commands/placement-group.d.ts +2 -0
  40. package/dist/cloud/commands/placement-group.js +53 -0
  41. package/dist/cloud/commands/primary-ip.d.ts +2 -0
  42. package/dist/cloud/commands/primary-ip.js +83 -0
  43. package/dist/cloud/commands/server-type.d.ts +2 -0
  44. package/dist/cloud/commands/server-type.js +20 -0
  45. package/dist/cloud/commands/server.d.ts +2 -0
  46. package/dist/cloud/commands/server.js +260 -0
  47. package/dist/cloud/commands/ssh-key.d.ts +2 -0
  48. package/dist/cloud/commands/ssh-key.js +63 -0
  49. package/dist/cloud/commands/volume.d.ts +2 -0
  50. package/dist/cloud/commands/volume.js +92 -0
  51. package/dist/cloud/context.d.ts +28 -0
  52. package/dist/cloud/context.js +172 -0
  53. package/dist/cloud/formatter.d.ts +37 -0
  54. package/dist/cloud/formatter.js +413 -0
  55. package/dist/cloud/helpers.d.ts +18 -0
  56. package/dist/cloud/helpers.js +48 -0
  57. package/dist/cloud/types.d.ts +398 -0
  58. package/dist/cloud/types.js +5 -0
  59. package/dist/config.d.ts +1 -0
  60. package/dist/config.js +2 -0
  61. package/dist/formatter.d.ts +3 -0
  62. package/dist/formatter.js +6 -0
  63. package/dist/index.d.ts +10 -0
  64. package/dist/index.js +17 -0
  65. package/dist/robot/client.d.ts +256 -0
  66. package/dist/robot/client.js +656 -0
  67. package/dist/robot/commands/auth.d.ts +2 -0
  68. package/dist/robot/commands/auth.js +54 -0
  69. package/dist/robot/commands/boot.d.ts +2 -0
  70. package/dist/robot/commands/boot.js +72 -0
  71. package/dist/robot/commands/cancel.d.ts +2 -0
  72. package/dist/robot/commands/cancel.js +36 -0
  73. package/dist/robot/commands/failover.d.ts +2 -0
  74. package/dist/robot/commands/failover.js +42 -0
  75. package/dist/robot/commands/firewall.d.ts +2 -0
  76. package/dist/robot/commands/firewall.js +66 -0
  77. package/dist/robot/commands/index.d.ts +2 -0
  78. package/dist/robot/commands/index.js +36 -0
  79. package/dist/robot/commands/interactive.d.ts +2 -0
  80. package/dist/robot/commands/interactive.js +134 -0
  81. package/dist/robot/commands/ip.d.ts +2 -0
  82. package/dist/robot/commands/ip.js +52 -0
  83. package/dist/robot/commands/key.d.ts +2 -0
  84. package/dist/robot/commands/key.js +64 -0
  85. package/dist/robot/commands/order.d.ts +2 -0
  86. package/dist/robot/commands/order.js +33 -0
  87. package/dist/robot/commands/rdns.d.ts +2 -0
  88. package/dist/robot/commands/rdns.js +41 -0
  89. package/dist/robot/commands/reset.d.ts +2 -0
  90. package/dist/robot/commands/reset.js +77 -0
  91. package/dist/robot/commands/server.d.ts +2 -0
  92. package/dist/robot/commands/server.js +29 -0
  93. package/dist/robot/commands/storagebox.d.ts +2 -0
  94. package/dist/robot/commands/storagebox.js +116 -0
  95. package/dist/robot/commands/subnet.d.ts +2 -0
  96. package/dist/robot/commands/subnet.js +21 -0
  97. package/dist/robot/commands/traffic.d.ts +2 -0
  98. package/dist/robot/commands/traffic.js +20 -0
  99. package/dist/robot/commands/vswitch.d.ts +2 -0
  100. package/dist/robot/commands/vswitch.js +64 -0
  101. package/dist/robot/commands/wol.d.ts +2 -0
  102. package/dist/robot/commands/wol.js +20 -0
  103. package/dist/robot/formatter.d.ts +58 -0
  104. package/dist/robot/formatter.js +500 -0
  105. package/dist/robot/types.d.ts +352 -0
  106. package/dist/robot/types.js +5 -0
  107. package/dist/shared/config.d.ts +86 -0
  108. package/dist/shared/config.js +273 -0
  109. package/dist/shared/formatter.d.ts +29 -0
  110. package/dist/shared/formatter.js +118 -0
  111. package/dist/shared/helpers.d.ts +17 -0
  112. package/dist/shared/helpers.js +72 -0
  113. package/dist/shared/reference.d.ts +2 -0
  114. package/dist/shared/reference.js +626 -0
  115. package/dist/types.d.ts +75 -0
  116. package/dist/types.js +1 -0
  117. package/package.json +112 -0
@@ -0,0 +1,511 @@
1
+ import type { CloudAction, Datacenter, Location, ServerType, ISO, Image, CloudSshKey, CloudServer, Network, NetworkSubnet, NetworkRoute, CloudFirewall, CloudFirewallRule, FloatingIp, PrimaryIp, Volume, LoadBalancer, Certificate, PlacementGroup, LoadBalancerType, Labels } from './types.js';
2
+ export declare class HetznerCloudClient {
3
+ private token;
4
+ constructor(token: string);
5
+ private request;
6
+ private buildQuery;
7
+ /**
8
+ * Fetch all pages of a paginated endpoint.
9
+ */
10
+ listAll<T>(endpoint: string, key: string, params?: Record<string, string | number | boolean | undefined>): Promise<T[]>;
11
+ /**
12
+ * Poll an action until it completes.
13
+ */
14
+ waitForAction(actionId: number, timeoutMs?: number): Promise<CloudAction>;
15
+ listDatacenters(): Promise<Datacenter[]>;
16
+ getDatacenter(id: number): Promise<Datacenter>;
17
+ listLocations(): Promise<Location[]>;
18
+ getLocation(id: number): Promise<Location>;
19
+ listServerTypes(): Promise<ServerType[]>;
20
+ getServerType(id: number): Promise<ServerType>;
21
+ listLoadBalancerTypes(): Promise<LoadBalancerType[]>;
22
+ getLoadBalancerType(id: number): Promise<LoadBalancerType>;
23
+ listIsos(params?: {
24
+ name?: string;
25
+ architecture?: string;
26
+ }): Promise<ISO[]>;
27
+ getIso(id: number): Promise<ISO>;
28
+ listServers(params?: {
29
+ label_selector?: string;
30
+ name?: string;
31
+ sort?: string;
32
+ status?: string;
33
+ }): Promise<CloudServer[]>;
34
+ getServer(id: number): Promise<CloudServer>;
35
+ createServer(opts: {
36
+ name: string;
37
+ server_type: string;
38
+ image: string;
39
+ location?: string;
40
+ datacenter?: string;
41
+ ssh_keys?: (string | number)[];
42
+ user_data?: string;
43
+ labels?: Labels;
44
+ automount?: boolean;
45
+ volumes?: number[];
46
+ networks?: number[];
47
+ firewalls?: {
48
+ firewall: number;
49
+ }[];
50
+ placement_group?: number;
51
+ public_net?: {
52
+ enable_ipv4?: boolean;
53
+ enable_ipv6?: boolean;
54
+ ipv4?: number;
55
+ ipv6?: number;
56
+ };
57
+ start_after_create?: boolean;
58
+ }): Promise<{
59
+ server: CloudServer;
60
+ action: CloudAction;
61
+ root_password: string | null;
62
+ }>;
63
+ deleteServer(id: number): Promise<{
64
+ action: CloudAction;
65
+ }>;
66
+ updateServer(id: number, opts: {
67
+ name?: string;
68
+ labels?: Labels;
69
+ }): Promise<{
70
+ server: CloudServer;
71
+ }>;
72
+ powerOnServer(id: number): Promise<{
73
+ action: CloudAction;
74
+ }>;
75
+ powerOffServer(id: number): Promise<{
76
+ action: CloudAction;
77
+ }>;
78
+ rebootServer(id: number): Promise<{
79
+ action: CloudAction;
80
+ }>;
81
+ resetServer(id: number): Promise<{
82
+ action: CloudAction;
83
+ }>;
84
+ shutdownServer(id: number): Promise<{
85
+ action: CloudAction;
86
+ }>;
87
+ rebuildServer(id: number, image: string): Promise<{
88
+ action: CloudAction;
89
+ root_password: string | null;
90
+ }>;
91
+ changeServerType(id: number, serverType: string, upgradeDisk: boolean): Promise<{
92
+ action: CloudAction;
93
+ }>;
94
+ enableServerRescue(id: number, type?: string, sshKeys?: number[]): Promise<{
95
+ action: CloudAction;
96
+ root_password: string;
97
+ }>;
98
+ disableServerRescue(id: number): Promise<{
99
+ action: CloudAction;
100
+ }>;
101
+ enableServerBackup(id: number): Promise<{
102
+ action: CloudAction;
103
+ }>;
104
+ disableServerBackup(id: number): Promise<{
105
+ action: CloudAction;
106
+ }>;
107
+ createServerImage(id: number, opts: {
108
+ description?: string;
109
+ type?: 'snapshot' | 'backup';
110
+ labels?: Labels;
111
+ }): Promise<{
112
+ image: Image;
113
+ action: CloudAction;
114
+ }>;
115
+ attachIsoToServer(id: number, iso: string): Promise<{
116
+ action: CloudAction;
117
+ }>;
118
+ detachIsoFromServer(id: number): Promise<{
119
+ action: CloudAction;
120
+ }>;
121
+ resetServerPassword(id: number): Promise<{
122
+ action: CloudAction;
123
+ root_password: string;
124
+ }>;
125
+ setServerRdns(id: number, ip: string, dnsPtr: string): Promise<{
126
+ action: CloudAction;
127
+ }>;
128
+ enableServerProtection(id: number, opts: {
129
+ delete?: boolean;
130
+ rebuild?: boolean;
131
+ }): Promise<{
132
+ action: CloudAction;
133
+ }>;
134
+ requestServerConsole(id: number): Promise<{
135
+ wss_url: string;
136
+ password: string;
137
+ action: CloudAction;
138
+ }>;
139
+ attachServerToNetwork(id: number, network: number, ip?: string, aliasIps?: string[]): Promise<{
140
+ action: CloudAction;
141
+ }>;
142
+ detachServerFromNetwork(id: number, network: number): Promise<{
143
+ action: CloudAction;
144
+ }>;
145
+ addServerToPlacementGroup(id: number, placementGroup: number): Promise<{
146
+ action: CloudAction;
147
+ }>;
148
+ removeServerFromPlacementGroup(id: number): Promise<{
149
+ action: CloudAction;
150
+ }>;
151
+ getServerMetrics(id: number, type: string, start: string, end: string): Promise<unknown>;
152
+ listNetworks(params?: {
153
+ label_selector?: string;
154
+ name?: string;
155
+ }): Promise<Network[]>;
156
+ getNetwork(id: number): Promise<Network>;
157
+ createNetwork(opts: {
158
+ name: string;
159
+ ip_range: string;
160
+ subnets?: Omit<NetworkSubnet, 'gateway'>[];
161
+ routes?: NetworkRoute[];
162
+ labels?: Labels;
163
+ expose_routes_to_vswitch?: boolean;
164
+ }): Promise<{
165
+ network: Network;
166
+ }>;
167
+ deleteNetwork(id: number): Promise<void>;
168
+ updateNetwork(id: number, opts: {
169
+ name?: string;
170
+ labels?: Labels;
171
+ expose_routes_to_vswitch?: boolean;
172
+ }): Promise<{
173
+ network: Network;
174
+ }>;
175
+ addSubnetToNetwork(id: number, subnet: Omit<NetworkSubnet, 'gateway'>): Promise<{
176
+ action: CloudAction;
177
+ }>;
178
+ deleteSubnetFromNetwork(id: number, ipRange: string): Promise<{
179
+ action: CloudAction;
180
+ }>;
181
+ addRouteToNetwork(id: number, route: NetworkRoute): Promise<{
182
+ action: CloudAction;
183
+ }>;
184
+ deleteRouteFromNetwork(id: number, route: NetworkRoute): Promise<{
185
+ action: CloudAction;
186
+ }>;
187
+ changeNetworkIpRange(id: number, ipRange: string): Promise<{
188
+ action: CloudAction;
189
+ }>;
190
+ changeNetworkProtection(id: number, deleteProtection: boolean): Promise<{
191
+ action: CloudAction;
192
+ }>;
193
+ listFirewalls(params?: {
194
+ label_selector?: string;
195
+ name?: string;
196
+ sort?: string;
197
+ }): Promise<CloudFirewall[]>;
198
+ getFirewall(id: number): Promise<CloudFirewall>;
199
+ createFirewall(opts: {
200
+ name: string;
201
+ rules?: CloudFirewallRule[];
202
+ labels?: Labels;
203
+ apply_to?: CloudFirewallRule[];
204
+ }): Promise<{
205
+ firewall: CloudFirewall;
206
+ actions: CloudAction[];
207
+ }>;
208
+ deleteFirewall(id: number): Promise<void>;
209
+ updateFirewall(id: number, opts: {
210
+ name?: string;
211
+ labels?: Labels;
212
+ }): Promise<{
213
+ firewall: CloudFirewall;
214
+ }>;
215
+ setFirewallRules(id: number, rules: CloudFirewallRule[]): Promise<{
216
+ actions: CloudAction[];
217
+ }>;
218
+ applyFirewall(id: number, applyTo: {
219
+ type: 'server' | 'label_selector';
220
+ server?: {
221
+ id: number;
222
+ };
223
+ label_selector?: {
224
+ selector: string;
225
+ };
226
+ }[]): Promise<{
227
+ actions: CloudAction[];
228
+ }>;
229
+ removeFirewallFromResources(id: number, removeFrom: {
230
+ type: 'server' | 'label_selector';
231
+ server?: {
232
+ id: number;
233
+ };
234
+ label_selector?: {
235
+ selector: string;
236
+ };
237
+ }[]): Promise<{
238
+ actions: CloudAction[];
239
+ }>;
240
+ listFloatingIps(params?: {
241
+ label_selector?: string;
242
+ sort?: string;
243
+ }): Promise<FloatingIp[]>;
244
+ getFloatingIp(id: number): Promise<FloatingIp>;
245
+ createFloatingIp(opts: {
246
+ type: 'ipv4' | 'ipv6';
247
+ name?: string;
248
+ description?: string;
249
+ home_location?: string;
250
+ server?: number;
251
+ labels?: Labels;
252
+ }): Promise<{
253
+ floating_ip: FloatingIp;
254
+ action: CloudAction;
255
+ }>;
256
+ deleteFloatingIp(id: number): Promise<void>;
257
+ updateFloatingIp(id: number, opts: {
258
+ name?: string;
259
+ description?: string;
260
+ labels?: Labels;
261
+ }): Promise<{
262
+ floating_ip: FloatingIp;
263
+ }>;
264
+ assignFloatingIp(id: number, serverId: number): Promise<{
265
+ action: CloudAction;
266
+ }>;
267
+ unassignFloatingIp(id: number): Promise<{
268
+ action: CloudAction;
269
+ }>;
270
+ changeFloatingIpProtection(id: number, deleteProtection: boolean): Promise<{
271
+ action: CloudAction;
272
+ }>;
273
+ changeFloatingIpDnsPtr(id: number, ip: string, dnsPtr: string | null): Promise<{
274
+ action: CloudAction;
275
+ }>;
276
+ listPrimaryIps(params?: {
277
+ label_selector?: string;
278
+ sort?: string;
279
+ name?: string;
280
+ }): Promise<PrimaryIp[]>;
281
+ getPrimaryIp(id: number): Promise<PrimaryIp>;
282
+ createPrimaryIp(opts: {
283
+ type: 'ipv4' | 'ipv6';
284
+ name: string;
285
+ assignee_type: 'server';
286
+ assignee_id?: number;
287
+ datacenter?: string;
288
+ auto_delete?: boolean;
289
+ labels?: Labels;
290
+ }): Promise<{
291
+ primary_ip: PrimaryIp;
292
+ action: CloudAction;
293
+ }>;
294
+ deletePrimaryIp(id: number): Promise<void>;
295
+ updatePrimaryIp(id: number, opts: {
296
+ name?: string;
297
+ auto_delete?: boolean;
298
+ labels?: Labels;
299
+ }): Promise<{
300
+ primary_ip: PrimaryIp;
301
+ }>;
302
+ assignPrimaryIp(id: number, assigneeId: number, assigneeType?: string): Promise<{
303
+ action: CloudAction;
304
+ }>;
305
+ unassignPrimaryIp(id: number): Promise<{
306
+ action: CloudAction;
307
+ }>;
308
+ changePrimaryIpProtection(id: number, deleteProtection: boolean): Promise<{
309
+ action: CloudAction;
310
+ }>;
311
+ changePrimaryIpDnsPtr(id: number, ip: string, dnsPtr: string | null): Promise<{
312
+ action: CloudAction;
313
+ }>;
314
+ listVolumes(params?: {
315
+ label_selector?: string;
316
+ sort?: string;
317
+ name?: string;
318
+ status?: string;
319
+ }): Promise<Volume[]>;
320
+ getVolume(id: number): Promise<Volume>;
321
+ createVolume(opts: {
322
+ name: string;
323
+ size: number;
324
+ location?: string;
325
+ server?: number;
326
+ format?: string;
327
+ automount?: boolean;
328
+ labels?: Labels;
329
+ }): Promise<{
330
+ volume: Volume;
331
+ action: CloudAction;
332
+ next_actions: CloudAction[];
333
+ }>;
334
+ deleteVolume(id: number): Promise<void>;
335
+ updateVolume(id: number, opts: {
336
+ name?: string;
337
+ labels?: Labels;
338
+ }): Promise<{
339
+ volume: Volume;
340
+ }>;
341
+ attachVolume(id: number, serverId: number, automount?: boolean): Promise<{
342
+ action: CloudAction;
343
+ }>;
344
+ detachVolume(id: number): Promise<{
345
+ action: CloudAction;
346
+ }>;
347
+ resizeVolume(id: number, size: number): Promise<{
348
+ action: CloudAction;
349
+ }>;
350
+ changeVolumeProtection(id: number, deleteProtection: boolean): Promise<{
351
+ action: CloudAction;
352
+ }>;
353
+ listLoadBalancers(params?: {
354
+ label_selector?: string;
355
+ sort?: string;
356
+ name?: string;
357
+ }): Promise<LoadBalancer[]>;
358
+ getLoadBalancer(id: number): Promise<LoadBalancer>;
359
+ createLoadBalancer(opts: {
360
+ name: string;
361
+ load_balancer_type: string;
362
+ location?: string;
363
+ network_zone?: string;
364
+ algorithm?: {
365
+ type: string;
366
+ };
367
+ services?: unknown[];
368
+ targets?: unknown[];
369
+ labels?: Labels;
370
+ network?: number;
371
+ public_interface?: boolean;
372
+ }): Promise<{
373
+ load_balancer: LoadBalancer;
374
+ action: CloudAction;
375
+ }>;
376
+ deleteLoadBalancer(id: number): Promise<void>;
377
+ updateLoadBalancer(id: number, opts: {
378
+ name?: string;
379
+ labels?: Labels;
380
+ }): Promise<{
381
+ load_balancer: LoadBalancer;
382
+ }>;
383
+ addTargetToLoadBalancer(id: number, target: unknown): Promise<{
384
+ action: CloudAction;
385
+ }>;
386
+ removeTargetFromLoadBalancer(id: number, target: unknown): Promise<{
387
+ action: CloudAction;
388
+ }>;
389
+ addServiceToLoadBalancer(id: number, service: unknown): Promise<{
390
+ action: CloudAction;
391
+ }>;
392
+ updateServiceOnLoadBalancer(id: number, service: unknown): Promise<{
393
+ action: CloudAction;
394
+ }>;
395
+ deleteServiceFromLoadBalancer(id: number, listenPort: number): Promise<{
396
+ action: CloudAction;
397
+ }>;
398
+ changeLoadBalancerAlgorithm(id: number, type: string): Promise<{
399
+ action: CloudAction;
400
+ }>;
401
+ changeLoadBalancerType(id: number, loadBalancerType: string): Promise<{
402
+ action: CloudAction;
403
+ }>;
404
+ attachLoadBalancerToNetwork(id: number, network: number, ip?: string): Promise<{
405
+ action: CloudAction;
406
+ }>;
407
+ detachLoadBalancerFromNetwork(id: number, network: number): Promise<{
408
+ action: CloudAction;
409
+ }>;
410
+ enableLoadBalancerPublicInterface(id: number): Promise<{
411
+ action: CloudAction;
412
+ }>;
413
+ disableLoadBalancerPublicInterface(id: number): Promise<{
414
+ action: CloudAction;
415
+ }>;
416
+ changeLoadBalancerProtection(id: number, deleteProtection: boolean): Promise<{
417
+ action: CloudAction;
418
+ }>;
419
+ listImages(params?: {
420
+ label_selector?: string;
421
+ sort?: string;
422
+ type?: string;
423
+ architecture?: string;
424
+ name?: string;
425
+ status?: string;
426
+ }): Promise<Image[]>;
427
+ getImage(id: number): Promise<Image>;
428
+ updateImage(id: number, opts: {
429
+ description?: string;
430
+ type?: string;
431
+ labels?: Labels;
432
+ }): Promise<{
433
+ image: Image;
434
+ }>;
435
+ deleteImage(id: number): Promise<void>;
436
+ changeImageProtection(id: number, deleteProtection: boolean): Promise<{
437
+ action: CloudAction;
438
+ }>;
439
+ listSshKeys(params?: {
440
+ label_selector?: string;
441
+ sort?: string;
442
+ name?: string;
443
+ fingerprint?: string;
444
+ }): Promise<CloudSshKey[]>;
445
+ getSshKey(id: number): Promise<CloudSshKey>;
446
+ createSshKey(opts: {
447
+ name: string;
448
+ public_key: string;
449
+ labels?: Labels;
450
+ }): Promise<{
451
+ ssh_key: CloudSshKey;
452
+ }>;
453
+ updateSshKey(id: number, opts: {
454
+ name?: string;
455
+ labels?: Labels;
456
+ }): Promise<{
457
+ ssh_key: CloudSshKey;
458
+ }>;
459
+ deleteSshKey(id: number): Promise<void>;
460
+ listCertificates(params?: {
461
+ label_selector?: string;
462
+ sort?: string;
463
+ name?: string;
464
+ type?: string;
465
+ }): Promise<Certificate[]>;
466
+ getCertificate(id: number): Promise<Certificate>;
467
+ createCertificate(opts: {
468
+ name: string;
469
+ type?: 'uploaded' | 'managed';
470
+ certificate?: string;
471
+ private_key?: string;
472
+ domain_names?: string[];
473
+ labels?: Labels;
474
+ }): Promise<{
475
+ certificate: Certificate;
476
+ action?: CloudAction;
477
+ }>;
478
+ updateCertificate(id: number, opts: {
479
+ name?: string;
480
+ labels?: Labels;
481
+ }): Promise<{
482
+ certificate: Certificate;
483
+ }>;
484
+ deleteCertificate(id: number): Promise<void>;
485
+ listPlacementGroups(params?: {
486
+ label_selector?: string;
487
+ sort?: string;
488
+ name?: string;
489
+ type?: string;
490
+ }): Promise<PlacementGroup[]>;
491
+ getPlacementGroup(id: number): Promise<PlacementGroup>;
492
+ createPlacementGroup(opts: {
493
+ name: string;
494
+ type: 'spread';
495
+ labels?: Labels;
496
+ }): Promise<{
497
+ placement_group: PlacementGroup;
498
+ }>;
499
+ updatePlacementGroup(id: number, opts: {
500
+ name?: string;
501
+ labels?: Labels;
502
+ }): Promise<{
503
+ placement_group: PlacementGroup;
504
+ }>;
505
+ deletePlacementGroup(id: number): Promise<void>;
506
+ getAction(id: number): Promise<CloudAction>;
507
+ listActions(params?: {
508
+ sort?: string;
509
+ status?: string;
510
+ }): Promise<CloudAction[]>;
511
+ }