UNPKG

63.1 kBTypeScriptView Raw
1// Type definitions for dockerode 3.3
2// Project: https://github.com/apocas/dockerode
3// Definitions by: Carl Winkler <https://github.com/seikho>
4// Nicolas Laplante <https://github.com/nlaplante>
5// ByeongHun Yoo <https://github.com/isac322>
6// Ray Fang <https://github.com/lazarusx>
7// Marius Meisenzahl <https://github.com/meisenzahl>
8// Rob Moran <https://github.com/thegecko>
9// Cameron Diver <https://github.com/CameronDiver>
10// Pascal Sthamer <https://github.com/p4sca1>
11// Stuart Thomson <https://github.com/stuartthomson>
12// Luis Rueda <https://github.com/userlerueda>
13// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
14// TypeScript Version: 2.2
15
16/// <reference types="node" />
17
18import * as stream from 'stream';
19import * as events from 'events';
20import * as DockerModem from 'docker-modem';
21
22declare namespace Dockerode {
23 class Container {
24 constructor(modem: any, id: string);
25
26 modem: any;
27 id: string;
28
29 inspect(options: {}, callback: Callback<ContainerInspectInfo>): void;
30 inspect(callback: Callback<ContainerInspectInfo>): void;
31 inspect(options?: {}): Promise<ContainerInspectInfo>;
32
33 rename(options: {}, callback: Callback<any>): void;
34 rename(options: {}): Promise<any>;
35
36 update(options: {}, callback: Callback<any>): void;
37 update(options: {}): Promise<any>;
38
39 top(options: {}, callback: Callback<any>): void;
40 top(callback: Callback<any>): void;
41 top(options?: {}): Promise<any>;
42
43 changes(options: {}, callback: Callback<any>): void;
44 changes(callback: Callback<any>): void;
45 changes(options?: {}): Promise<any>;
46
47 export(options: {}, callback: Callback<NodeJS.ReadableStream>): void;
48 export(callback: Callback<NodeJS.ReadableStream>): void;
49 export(options?: {}): Promise<NodeJS.ReadableStream>;
50
51 start(options: {}, callback: Callback<any>): void;
52 start(callback: Callback<any>): void;
53 start(options?: {}): Promise<any>;
54
55 pause(options: {}, callback: Callback<any>): void;
56 pause(callback: Callback<any>): void;
57 pause(options?: {}): Promise<any>;
58
59 unpause(options: {}, callback: Callback<any>): void;
60 unpause(callback: Callback<any>): void;
61 unpause(options?: {}): Promise<any>;
62
63 exec(options: ExecCreateOptions, callback: Callback<Exec>): void;
64 exec(options: ExecCreateOptions): Promise<Exec>;
65
66 commit(options: {}, callback: Callback<any>): void;
67 commit(callback: Callback<any>): void;
68 commit(options?: {}): Promise<any>;
69
70 stop(options: {}, callback: Callback<any>): void;
71 stop(callback: Callback<any>): void;
72 stop(options?: {}): Promise<any>;
73
74 restart(options: {}, callback: Callback<any>): void;
75 restart(callback: Callback<any>): void;
76 restart(options?: {}): Promise<any>;
77
78 kill(options: {}, callback: Callback<any>): void;
79 kill(callback: Callback<any>): void;
80 kill(options?: {}): Promise<any>;
81
82 resize(options: {}, callback: Callback<any>): void;
83 resize(callback: Callback<any>): void;
84 resize(options?: {}): Promise<any>;
85
86 wait(options: ContainerWaitOptions, callback: Callback<any>): void;
87 wait(callback: Callback<any>): void;
88 wait(options?: ContainerWaitOptions): Promise<any>;
89
90 remove(options: ContainerRemoveOptions, callback: Callback<any>): void;
91 remove(callback: Callback<any>): void;
92 remove(options?: {}): Promise<any>;
93
94 /** Deprecated since RAPI v1.20 */
95 copy(options: {}, callback: Callback<any>): void;
96 /** Deprecated since RAPI v1.20 */
97 copy(callback: Callback<any>): void;
98 /** Deprecated since RAPI v1.20 */
99 copy(options?: {}): Promise<any>;
100
101 getArchive(options: {}, callback: Callback<NodeJS.ReadableStream>): void;
102 getArchive(options: {}): Promise<NodeJS.ReadableStream>;
103
104 infoArchive(options: {}, callback: Callback<any>): void;
105 infoArchive(options: {}): Promise<any>;
106
107 /** @param file Filename (will read synchronously), Buffer or stream */
108 putArchive(
109 file: string | Buffer | NodeJS.ReadableStream,
110 options: {},
111 callback: Callback<NodeJS.WritableStream>,
112 ): void;
113 putArchive(file: string | Buffer | NodeJS.ReadableStream, options: {}): Promise<NodeJS.ReadWriteStream>;
114
115 logs(options: ContainerLogsOptions, callback: Callback<NodeJS.ReadableStream>): void;
116 logs(callback: Callback<NodeJS.ReadableStream>): void;
117 logs(options?: ContainerLogsOptions): Promise<NodeJS.ReadableStream>;
118
119 stats(options: {}, callback: Callback<ContainerStats>): void;
120 stats(callback: Callback<ContainerStats>): void;
121 stats(options?: {}): Promise<ContainerStats>;
122
123 attach(options: {}, callback: Callback<NodeJS.ReadWriteStream>): void;
124 attach(options: {}): Promise<NodeJS.ReadWriteStream>;
125 }
126
127 class Image {
128 constructor(modem: any, name: string);
129
130 modem: any;
131 id: string;
132
133 inspect(callback: Callback<ImageInspectInfo>): void;
134 inspect(): Promise<ImageInspectInfo>;
135
136 history(callback: Callback<any>): void;
137 history(): Promise<any>;
138
139 get(callback: Callback<NodeJS.ReadableStream>): void;
140 get(): Promise<NodeJS.ReadableStream>;
141
142 push(options: ImagePushOptions, callback: Callback<NodeJS.ReadableStream>): void;
143 push(callback: Callback<NodeJS.ReadableStream>): void;
144 push(options?: ImagePushOptions): Promise<NodeJS.ReadableStream>;
145
146 tag(options: {}, callback: Callback<any>): void;
147 tag(callback: Callback<any>): void;
148 tag(options?: {}): Promise<any>;
149
150 remove(options: ImageRemoveOptions, callback: Callback<ImageRemoveInfo>): void;
151 remove(callback: Callback<ImageRemoveInfo>): void;
152 remove(options?: {}): Promise<any>;
153
154 distribution(options: ImageDistributionOptions, callback: Callback<ImageDistributionInfo>): void;
155 distribution(callback: Callback<ImageDistributionInfo>): void;
156 distribution(options?: ImageDistributionOptions): Promise<ImageDistributionInfo>;
157 }
158
159 class Volume {
160 constructor(modem: any, name: string);
161
162 modem: any;
163 name: string;
164
165 inspect(options: {}, callback: Callback<VolumeInspectInfo>): void;
166 inspect(callback: Callback<VolumeInspectInfo>): void;
167 inspect(options?: {}): Promise<VolumeInspectInfo>;
168
169 remove(options: {}, callback: Callback<any>): void;
170 remove(callback: Callback<any>): void;
171 remove(options?: {}): Promise<any>;
172 }
173
174 class Service {
175 constructor(modem: any, id: string);
176
177 modem: any;
178 id: string;
179
180 inspect(options: {}, callback: Callback<any>): void;
181 inspect(callback: Callback<any>): void;
182 inspect(options?: {}): Promise<any>;
183
184 remove(options: {}, callback: Callback<any>): void;
185 remove(callback: Callback<any>): void;
186 remove(options?: {}): Promise<any>;
187
188 update(options: {}, callback: Callback<any>): void;
189 update(options: {}): Promise<any>;
190
191 logs(options: ContainerLogsOptions, callback: Callback<NodeJS.ReadableStream>): void;
192 logs(callback: Callback<NodeJS.ReadableStream>): void;
193 logs(options?: ContainerLogsOptions): Promise<NodeJS.ReadableStream>;
194 }
195
196 class Task {
197 constructor(modem: any, id: string);
198
199 modem: any;
200 id: string;
201
202 inspect(options: {}, callback: Callback<any>): void;
203 inspect(callback: Callback<any>): void;
204 inspect(options?: {}): Promise<any>;
205 }
206
207 class Node {
208 constructor(modem: any, id: string);
209
210 modem: any;
211 id: string;
212
213 inspect(options: {}, callback: Callback<any>): void;
214 inspect(callback: Callback<any>): void;
215 inspect(options?: {}): Promise<any>;
216
217 update(options: {}, callback: Callback<any>): void;
218 update(callback: Callback<any>): void;
219 update(options?: {}): Promise<any>;
220
221 remove(options: {}, callback: Callback<any>): void;
222 remove(callback: Callback<any>): void;
223 remove(options?: {}): Promise<any>;
224 }
225
226 class Plugin {
227 constructor(modem: any, name: string, remote?: any);
228
229 modem: any;
230 name: string;
231 remote: any;
232
233 inspect(options: {}, callback: Callback<PluginInspectInfo>): void;
234 inspect(callback: Callback<PluginInspectInfo>): void;
235 inspect(options?: {}): Promise<PluginInspectInfo>;
236
237 remove(options: {}, callback: Callback<any>): void;
238 remove(callback: Callback<any>): void;
239 remove(options?: {}): Promise<any>;
240
241 privileges(options: {}, callback: Callback<any>): void;
242 privileges(callback: Callback<any>): void;
243 privileges(options?: {}): Promise<any>;
244
245 pull(options: {}, callback: Callback<any>): void;
246 pull(options: {}): Promise<any>;
247
248 enable(options: {}, callback: Callback<any>): void;
249 enable(callback: Callback<any>): void;
250 enable(options?: {}): Promise<any>;
251
252 disable(options: {}, callback: Callback<any>): void;
253 disable(callback: Callback<any>): void;
254 disable(options?: {}): Promise<any>;
255
256 push(options: {}, callback: Callback<any>): void;
257 push(callback: Callback<any>): void;
258 push(options?: {}): Promise<any>;
259
260 configure(options: {}, callback: Callback<any>): void;
261 configure(callback: Callback<any>): void;
262 configure(options?: {}): Promise<any>;
263
264 upgrade(auth: any, options: {}, callback: Callback<any>): void;
265 upgrade(auth: any, callback: Callback<any>): void;
266 upgrade(auth: any, options?: {}): Promise<any>;
267 }
268
269 class Secret {
270 constructor(modem: any, id: string);
271
272 modem: any;
273 id: string;
274
275 inspect(options: {}, callback: Callback<Secret>): void;
276 inspect(callback: Callback<Secret>): void;
277 inspect(options?: {}): Promise<Secret>;
278
279 update(options: {}, callback: Callback<any>): void;
280 update(callback: Callback<any>): void;
281 update(options?: {}): Promise<any>;
282
283 remove(options: {}, callback: Callback<any>): void;
284 remove(callback: Callback<any>): void;
285 remove(options?: {}): Promise<any>;
286 }
287
288 class Network {
289 constructor(modem: any, id: string);
290
291 modem: any;
292 id: string;
293
294 inspect(callback: Callback<any>): void;
295 inspect(): Promise<any>;
296
297 remove(options: {}, callback: Callback<any>): void;
298 remove(callback: Callback<any>): void;
299 remove(options?: {}): Promise<any>;
300
301 connect(options: {}, callback: Callback<any>): void;
302 connect(callback: Callback<any>): void;
303 connect(options?: {}): Promise<any>;
304
305 disconnect(options: {}, callback: Callback<any>): void;
306 disconnect(callback: Callback<any>): void;
307 disconnect(options?: {}): Promise<any>;
308 }
309
310 class Exec {
311 constructor(modem: any, id: string);
312
313 modem: any;
314 id: string;
315
316 inspect(callback: Callback<ExecInspectInfo>): void;
317 inspect(): Promise<ExecInspectInfo>;
318
319 start(options: ExecStartOptions, callback: Callback<stream.Duplex>): void;
320 start(options: ExecStartOptions): Promise<stream.Duplex>;
321
322 resize(options: {}, callback: Callback<any>): void;
323 resize(options: {}): Promise<any>;
324 }
325
326 class Config {
327 constructor(modem: any, id: string);
328
329 modem: any;
330 id: string;
331
332 inspect(options: {}, callback: Callback<ConfigInfo>): void;
333 inspect(callback: Callback<ConfigInfo>): void;
334 inspect(options?: {}): Promise<ConfigInfo>;
335
336 update(options: {}, callback: Callback<any>): void;
337 update(callback: Callback<any>): void;
338 update(options?: {}): Promise<any>;
339
340 remove(options: {}, callback: Callback<any>): void;
341 remove(callback: Callback<any>): void;
342 remove(options?: {}): Promise<any>;
343 }
344
345 type Duration = number;
346
347 interface ImageInfo {
348 Id: string;
349 ParentId: string;
350 RepoTags: string[] | undefined;
351 RepoDigests?: string[] | undefined;
352 Created: number;
353 Size: number;
354 VirtualSize: number;
355 SharedSize: number;
356 Labels: { [label: string]: string };
357 Containers: number;
358 }
359
360 interface ContainerInfo {
361 Id: string;
362 Names: string[];
363 Image: string;
364 ImageID: string;
365 Command: string;
366 Created: number;
367 Ports: Port[];
368 Labels: { [label: string]: string };
369 State: string;
370 Status: string;
371 HostConfig: {
372 NetworkMode: string;
373 };
374 NetworkSettings: {
375 Networks: { [networkType: string]: NetworkInfo };
376 };
377 Mounts: Array<{
378 Name?: string | undefined;
379 Type: string;
380 Source: string;
381 Destination: string;
382 Driver?: string | undefined;
383 Mode: string;
384 RW: boolean;
385 Propagation: string;
386 }>;
387 }
388
389 interface Port {
390 IP: string;
391 PrivatePort: number;
392 PublicPort: number;
393 Type: string;
394 }
395
396 interface NetworkInfo {
397 IPAMConfig?: any;
398 Links?: any;
399 Aliases?: any;
400 NetworkID: string;
401 EndpointID: string;
402 Gateway: string;
403 IPAddress: string;
404 IPPrefixLen: number;
405 IPv6Gateway: string;
406 GlobalIPv6Address: string;
407 GlobalIPv6PrefixLen: number;
408 MacAddress: string;
409 }
410
411 // Information returned from inspecting a network
412 interface NetworkInspectInfo {
413 Name: string;
414 Id: string;
415 Created: string;
416 Scope: string;
417 Driver: string;
418 EnableIPv6: boolean;
419 IPAM?: IPAM | undefined;
420 Internal: boolean;
421 Attachable: boolean;
422 Ingress: boolean;
423 ConfigFrom?: { Network: string; } | undefined;
424 ConfigOnly: boolean;
425 Containers?: { [id: string]: NetworkContainer } | undefined;
426 Options?: { [key: string]: string } | undefined;
427 Labels?: { [key: string]: string } | undefined;
428 }
429
430 interface NetworkCreateOptions {
431 Name: string;
432 CheckDuplicate?: boolean | undefined;
433 Driver?: string | undefined;
434 Internal?: boolean | undefined;
435 Attachable?: boolean | undefined;
436 Ingress?: boolean | undefined;
437 IPAM?: IPAM | undefined;
438 EnableIPv6?: boolean | undefined;
439 Options?: { [option: string]: string } | undefined;
440 Labels?: { [label: string]: string } | undefined;
441
442 abortSignal?: AbortSignal;
443 }
444
445 interface NetworkContainer {
446 Name: string;
447 EndpointID: string;
448 MacAddress: string;
449 IPv4Address: string;
450 IPv6Address: string;
451 }
452
453 /* tslint:disable:interface-name */
454 interface IPAM {
455 Driver: string;
456 Config?: Array<{ [key: string]: string }> | undefined;
457 Options?: { [key: string]: string } | undefined;
458 }
459 /* tslint:enable:interface-name */
460
461 interface VolumeCreateOptions {
462 Name?: string | undefined;
463 Driver?: string | undefined;
464 DriverOpts?: { [key: string]: string } | undefined;
465 Labels?: { [label: string]: string } | undefined;
466 }
467
468 interface VolumeCreateResponse {
469 Name: string;
470 Driver: string;
471 Mountpoint: string;
472 CreatedAt?: string | undefined;
473 Status?: { [key: string]: string } | undefined;
474 Labels: { [label: string]: string };
475 Scope: string;
476 Options: { [key: string]: string };
477 // Field is sometimes present, and sometimes null
478 UsageData?: {
479 Size: number;
480 RefCount: number;
481 } | null | undefined;
482 }
483
484 interface VolumeInspectInfo {
485 Name: string;
486 Driver: string;
487 Mountpoint: string;
488 Status?: { [key: string]: string } | undefined;
489 Labels: { [key: string]: string };
490 Scope: 'local' | 'global';
491 // Field is always present, but sometimes is null
492 Options: { [key: string]: string } | null;
493 // Field is sometimes present, and sometimes null
494 UsageData?: {
495 Size: number;
496 RefCount: number;
497 } | null | undefined;
498 }
499
500 interface ContainerInspectInfo {
501 Id: string;
502 Created: string;
503 Path: string;
504 Args: string[];
505 State: {
506 Status: string;
507 Running: boolean;
508 Paused: boolean;
509 Restarting: boolean;
510 OOMKilled: boolean;
511 Dead: boolean;
512 Pid: number;
513 ExitCode: number;
514 Error: string;
515 StartedAt: string;
516 FinishedAt: string;
517 Health?: {
518 Status: string;
519 FailingStreak: number;
520 Log: Array<{
521 Start: string;
522 End: string;
523 ExitCode: number;
524 Output: string;
525 }>;
526 } | undefined;
527 };
528 Image: string;
529 ResolvConfPath: string;
530 HostnamePath: string;
531 HostsPath: string;
532 LogPath: string;
533 Name: string;
534 RestartCount: number;
535 Driver: string;
536 Platform: string;
537 MountLabel: string;
538 ProcessLabel: string;
539 AppArmorProfile: string;
540 ExecIDs?: string[] | undefined;
541 HostConfig: HostConfig;
542 GraphDriver: {
543 Name: string;
544 Data: {
545 DeviceId: string;
546 DeviceName: string;
547 DeviceSize: string;
548 };
549 };
550 Mounts: Array<{
551 Name?: string | undefined;
552 Source: string;
553 Destination: string;
554 Mode: string;
555 RW: boolean;
556 Propagation: string;
557 }>;
558 Config: {
559 Hostname: string;
560 Domainname: string;
561 User: string;
562 AttachStdin: boolean;
563 AttachStdout: boolean;
564 AttachStderr: boolean;
565 ExposedPorts: { [portAndProtocol: string]: {} };
566 Tty: boolean;
567 OpenStdin: boolean;
568 StdinOnce: boolean;
569 Env: string[];
570 Cmd: string[];
571 Image: string;
572 Volumes: { [volume: string]: {} };
573 WorkingDir: string;
574 Entrypoint?: string | string[] | undefined;
575 OnBuild?: any;
576 Labels: { [label: string]: string };
577 };
578 NetworkSettings: {
579 Bridge: string;
580 SandboxID: string;
581 HairpinMode: boolean;
582 LinkLocalIPv6Address: string;
583 LinkLocalIPv6PrefixLen: number;
584 Ports: {
585 [portAndProtocol: string]: Array<{
586 HostIp: string;
587 HostPort: string;
588 }>;
589 };
590 SandboxKey: string;
591 SecondaryIPAddresses?: any;
592 SecondaryIPv6Addresses?: any;
593 EndpointID: string;
594 Gateway: string;
595 GlobalIPv6Address: string;
596 GlobalIPv6PrefixLen: number;
597 IPAddress: string;
598 IPPrefixLen: number;
599 IPv6Gateway: string;
600 MacAddress: string;
601 Networks: {
602 [type: string]: {
603 IPAMConfig?: any;
604 Links?: any;
605 Aliases?: any;
606 NetworkID: string;
607 EndpointID: string;
608 Gateway: string;
609 IPAddress: string;
610 IPPrefixLen: number;
611 IPv6Gateway: string;
612 GlobalIPv6Address: string;
613 GlobalIPv6PrefixLen: number;
614 MacAddress: string;
615 };
616 };
617 Node?: {
618 ID: string;
619 IP: string;
620 Addr: string;
621 Name: string;
622 Cpus: number;
623 Memory: number;
624 Labels: any;
625 } | undefined;
626 };
627 }
628
629 interface NetworkStats {
630 [name: string]: {
631 rx_bytes: number;
632 rx_dropped: number;
633 rx_errors: number;
634 rx_packets: number;
635 tx_bytes: number;
636 tx_dropped: number;
637 tx_errors: number;
638 tx_packets: number;
639 endpoint_id?: string; // not used on linux
640 instance_id?: string; // not used on linux
641 };
642 }
643
644 interface CPUUsage {
645 percpu_usage: number[];
646 usage_in_usermode: number;
647 total_usage: number;
648 usage_in_kernelmode: number;
649 }
650
651 interface ThrottlingData {
652 periods: number;
653 throttled_periods: number;
654 throttled_time: number;
655 }
656
657 interface CPUStats {
658 cpu_usage: CPUUsage;
659 system_cpu_usage: number;
660 online_cpus: number;
661 throttling_data: ThrottlingData;
662 }
663
664 interface MemoryStats {
665 // Linux Memory Stats
666 stats: {
667 total_pgmajfault: number;
668 cache: number;
669 mapped_file: number;
670 total_inactive_file: number;
671 pgpgout: number;
672 rss: number;
673 total_mapped_file: number;
674 writeback: number;
675 unevictable: number;
676 pgpgin: number;
677 total_unevictable: number;
678 pgmajfault: number;
679 total_rss: number;
680 total_rss_huge: number;
681 total_writeback: number;
682 total_inactive_anon: number;
683 rss_huge: number;
684 hierarchical_memory_limit: number;
685 total_pgfault: number;
686 total_active_file: number;
687 active_anon: number;
688 total_active_anon: number;
689 total_pgpgout: number;
690 total_cache: number;
691 inactive_anon: number;
692 active_file: number;
693 pgfault: number;
694 inactive_file: number;
695 total_pgpgin: number;
696 };
697 max_usage: number;
698 usage: number;
699 failcnt: number;
700 limit: number;
701
702 // Windows Memory Stats
703 commitbytes?: number;
704 commitpeakbytes?: number;
705 privateworkingset?: number;
706 }
707
708 interface BlkioStatEntry {
709 major: number;
710 minor: number;
711 op: string;
712 value: number;
713 }
714
715 interface BlkioStats {
716 io_service_bytes_recursive: BlkioStatEntry[];
717 io_serviced_recursive: BlkioStatEntry[];
718 io_queue_recursive: BlkioStatEntry[];
719 io_service_time_recursive: BlkioStatEntry[];
720 io_wait_time_recursive: BlkioStatEntry[];
721 io_merged_recursive: BlkioStatEntry[];
722 io_time_recursive: BlkioStatEntry[];
723 sectors_recursive: BlkioStatEntry[];
724 }
725
726 interface StorageStats {
727 read_count_normalized?: number;
728 read_size_bytes?: number;
729 write_count_normalized?: number;
730 write_size_bytes?: number;
731 }
732
733 interface PidsStats {
734 current?: number;
735 limit?: number;
736 }
737
738 interface ContainerStats {
739 read: string;
740 preread: string;
741 pid_stats?: PidsStats;
742 blkio_stats?: BlkioStats;
743 num_procs: number;
744 storage_stats?: StorageStats;
745 networks: NetworkStats;
746 memory_stats: MemoryStats;
747 cpu_stats: CPUStats;
748 precpu_stats: CPUStats;
749 }
750
751 interface HostConfig {
752 AutoRemove?: boolean | undefined;
753 Binds?: string[] | undefined;
754 ContainerIDFile?: string | undefined;
755 LogConfig?: {
756 Type: string;
757 Config: any;
758 } | undefined;
759 NetworkMode?: string | undefined;
760 PortBindings?: any;
761 RestartPolicy?: RestartPolicy | undefined;
762 VolumeDriver?: string | undefined;
763 VolumesFrom?: any;
764 Mounts?: MountConfig | undefined;
765 CapAdd?: any;
766 CapDrop?: any;
767 Dns?: any[] | undefined;
768 DnsOptions?: any[] | undefined;
769 DnsSearch?: string[] | undefined;
770 ExtraHosts?: any;
771 GroupAdd?: string[] | undefined;
772 IpcMode?: string | undefined;
773 Cgroup?: string | undefined;
774 Links?: any;
775 OomScoreAdj?: number | undefined;
776 PidMode?: string | undefined;
777 Privileged?: boolean | undefined;
778 PublishAllPorts?: boolean | undefined;
779 ReadonlyRootfs?: boolean | undefined;
780 SecurityOpt?: any;
781 StorageOpt?: { [option: string]: string } | undefined;
782 Tmpfs?: { [dir: string]: string } | undefined;
783 UTSMode?: string | undefined;
784 UsernsMode?: string | undefined;
785 ShmSize?: number | undefined;
786 Sysctls?: { [index: string]: string } | undefined;
787 Runtime?: string | undefined;
788 ConsoleSize?: number[] | undefined;
789 Isolation?: string | undefined;
790 MaskedPaths?: string[] | undefined;
791 ReadonlyPaths?: string[] | undefined;
792 CpuShares?: number | undefined;
793 CgroupParent?: string | undefined;
794 BlkioWeight?: number | undefined;
795 BlkioWeightDevice?: any;
796 BlkioDeviceReadBps?: any;
797 BlkioDeviceWriteBps?: any;
798 BlkioDeviceReadIOps?: any;
799 BlkioDeviceWriteIOps?: any;
800 CpuPeriod?: number | undefined;
801 CpuQuota?: number | undefined;
802 CpusetCpus?: string | undefined;
803 CpusetMems?: string | undefined;
804 Devices?: any;
805 DeviceCgroupRules?: string[] | undefined;
806 DeviceRequests?: DeviceRequest[] | undefined;
807 DiskQuota?: number | undefined;
808 KernelMemory?: number | undefined;
809 Memory?: number | undefined;
810 MemoryReservation?: number | undefined;
811 MemorySwap?: number | undefined;
812 MemorySwappiness?: number | undefined;
813 OomKillDisable?: boolean | undefined;
814 Init?: boolean | undefined;
815 PidsLimit?: number | undefined;
816 Ulimits?: any;
817 CpuCount?: number | undefined;
818 CpuPercent?: number | undefined;
819 CpuRealtimePeriod?: number | undefined;
820 CpuRealtimeRuntime?: number | undefined;
821 }
822
823 interface ImageInspectInfo {
824 Id: string;
825 RepoTags: string[];
826 RepoDigests: string[];
827 Parent: string;
828 Comment: string;
829 Created: string;
830 Container: string;
831 ContainerConfig: {
832 Hostname: string;
833 Domainname: string;
834 User: string;
835 AttachStdin: boolean;
836 AttachStdout: boolean;
837 AttachStderr: boolean;
838 ExposedPorts: { [portAndProtocol: string]: {} };
839 Tty: boolean;
840 OpenStdin: boolean;
841 StdinOnce: boolean;
842 Env: string[];
843 Cmd: string[];
844 ArgsEscaped: boolean;
845 Image: string;
846 Volumes: { [path: string]: {} };
847 WorkingDir: string;
848 Entrypoint?: string | string[] | undefined;
849 OnBuild?: any[] | undefined;
850 Labels: { [label: string]: string };
851 };
852 DockerVersion: string;
853 Author: string;
854 Config: {
855 Hostname: string;
856 Domainname: string;
857 User: string;
858 AttachStdin: boolean;
859 AttachStdout: boolean;
860 AttachStderr: boolean;
861 ExposedPorts: { [portAndProtocol: string]: {} };
862 Tty: boolean;
863 OpenStdin: boolean;
864 StdinOnce: boolean;
865 Env: string[];
866 Cmd: string[];
867 ArgsEscaped: boolean;
868 Image: string;
869 Volumes: { [path: string]: {} };
870 WorkingDir: string;
871 Entrypoint?: string | string[] | undefined;
872 OnBuild: any[];
873 Labels: { [label: string]: string };
874 };
875 Architecture: string;
876 Os: string;
877 Size: number;
878 VirtualSize: number;
879 GraphDriver: {
880 Name: string;
881 Data: {
882 DeviceId: string;
883 DeviceName: string;
884 DeviceSize: string;
885 };
886 };
887 RootFS: {
888 Type: string;
889 Layers?: string[] | undefined;
890 BaseLayer?: string | undefined;
891 };
892 }
893
894 interface ImageBuildOptions {
895 authconfig?: AuthConfig | undefined;
896 registryconfig?: RegistryConfig | undefined;
897 abortSignal?: AbortSignal;
898
899 dockerfile?: string | undefined;
900 t?: string | undefined;
901 extrahosts?: string | undefined;
902 remote?: string | undefined;
903 q?: boolean | undefined;
904 cachefrom?: string | undefined;
905 pull?: string | undefined;
906 rm?: boolean | undefined;
907 forcerm?: boolean | undefined;
908 memory?: number | undefined;
909 memswap?: number | undefined;
910 cpushares?: number | undefined;
911 cpusetcpus?: number | undefined;
912 cpuperiod?: number | undefined;
913 cpuquota?: number | undefined;
914 buildargs?: {[key: string]: string} | undefined;
915 shmsize?: number | undefined;
916 squash?: boolean | undefined;
917 labels?: {[key: string]: string} | undefined;
918 networkmode?: string | undefined;
919 platform?: string | undefined;
920 target?: string | undefined;
921 outputs?: string | undefined;
922 }
923
924 interface ImageDistributionOptions {
925 authconfig?: AuthConfig | undefined;
926 abortSignal?: AbortSignal;
927 }
928
929 interface ImagePushOptions {
930 tag?: string | undefined;
931 authconfig?: AuthConfig | undefined;
932 abortSignal?: AbortSignal;
933 }
934
935 interface AuthConfig {
936 username: string;
937 password: string;
938 serveraddress: string;
939 email?: string | undefined;
940 }
941
942 interface RegistryConfig {
943 [registryAddress: string]: {
944 username: string;
945 password: string;
946 };
947 }
948
949 interface PortBinding {
950 HostIp?: string | undefined;
951 HostPort?: string | undefined;
952 }
953
954 interface PortMap {
955 [key: string]: PortBinding[];
956 }
957
958 interface RestartPolicy {
959 Name: string;
960 MaximumRetryCount?: number | undefined;
961 }
962
963 type LoggingDriverType =
964 | 'json-file'
965 | 'syslog'
966 | 'journald'
967 | 'gelf'
968 | 'fluentd'
969 | 'awslogs'
970 | 'splunk'
971 | 'etwlogs'
972 | 'none';
973
974 interface LogConfig {
975 Type: LoggingDriverType;
976 Config?: { [key: string]: string } | undefined;
977 }
978
979 interface DeviceMapping {
980 PathOnHost: string;
981 PathInContainer: string;
982 CgroupPermissions: string;
983 }
984
985 interface DeviceRequest {
986 Driver?: string | undefined;
987 Count?: number | undefined;
988 DeviceIDs?: string[] | undefined;
989 Capabilities?: string[][] | undefined;
990 Options?: { [key: string]: string } | undefined;
991 }
992
993 /* tslint:disable:interface-name */
994 interface IPAMConfig {
995 IPv4Address?: string | undefined;
996 IPv6Address?: string | undefined;
997 LinkLocalIPs?: string[] | undefined;
998 }
999 /* tslint:enable:interface-name */
1000
1001 interface EndpointSettings {
1002 IPAMConfig?: IPAMConfig | undefined;
1003 Links?: string[] | undefined;
1004 Aliases?: string[] | undefined;
1005 NetworkID?: string | undefined;
1006 EndpointID?: string | undefined;
1007 Gateway?: string | undefined;
1008 IPAddress?: string | undefined;
1009 IPPrefixLen?: number | undefined;
1010 IPv6Gateway?: string | undefined;
1011 GlobalIPv6Address?: string | undefined;
1012 GlobalIPV6PrefixLen?: number | undefined;
1013 MacAddress?: string | undefined;
1014 DriverOpts?: { [key: string]: string } | undefined;
1015 }
1016
1017 interface EndpointsConfig {
1018 [key: string]: EndpointSettings;
1019 }
1020
1021 interface ExecCreateOptions {
1022 AttachStdin?: boolean | undefined;
1023 AttachStdout?: boolean | undefined;
1024 AttachStderr?: boolean | undefined;
1025 DetachKeys?: string | undefined;
1026 Tty?: boolean | undefined;
1027 Env?: string[] | undefined;
1028 Cmd?: string[] | undefined;
1029 Privileged?: boolean | undefined;
1030 User?: string | undefined;
1031 WorkingDir?: string | undefined;
1032 abortSignal?: AbortSignal;
1033 }
1034
1035 interface ExecInspectInfo {
1036 CanRemove: boolean;
1037 DetachKeys: string;
1038 ID: string;
1039 Running: boolean;
1040 ExitCode: number | null;
1041 ProcessConfig: {
1042 privileged: boolean;
1043 user: string;
1044 tty: boolean;
1045 entrypoint: string;
1046 arguments: string[];
1047 };
1048 OpenStdin: boolean;
1049 OpenStderr: boolean;
1050 OpenStdout: boolean;
1051 ContainerID: string;
1052 Pid: number;
1053 }
1054
1055 interface ExecStartOptions {
1056 // hijack and stdin are used by docker-modem
1057 hijack?: boolean | undefined;
1058 stdin?: boolean | undefined;
1059 // Detach and Tty are used by Docker's API
1060 Detach?: boolean | undefined;
1061 Tty?: boolean | undefined;
1062 abortSignal?: AbortSignal;
1063 }
1064
1065 type MountType = 'bind' | 'volume' | 'tmpfs';
1066
1067 type MountConsistency = 'default' | 'consistent' | 'cached' | 'delegated';
1068
1069 type MountPropagation = 'private' | 'rprivate' | 'shared' | 'rshared' | 'slave' | 'rslave';
1070
1071 interface MountSettings {
1072 Target: string;
1073 Source: string;
1074 Type: MountType;
1075 ReadOnly?: boolean | undefined;
1076 Consistency?: MountConsistency | undefined;
1077 BindOptions?: {
1078 Propagation: MountPropagation;
1079 } | undefined;
1080 VolumeOptions?: {
1081 NoCopy: boolean;
1082 Labels: { [label: string]: string };
1083 DriverConfig: {
1084 Name: string;
1085 Options: { [option: string]: string };
1086 };
1087 } | undefined;
1088 TmpfsOptions?: {
1089 SizeBytes: number;
1090 Mode: number;
1091 } | undefined;
1092 }
1093
1094 type MountConfig = MountSettings[];
1095
1096 interface ContainerCreateOptions {
1097 name?: string | undefined;
1098 Hostname?: string | undefined;
1099 Domainname?: string | undefined;
1100 User?: string | undefined;
1101 AttachStdin?: boolean | undefined;
1102 AttachStdout?: boolean | undefined;
1103 AttachStderr?: boolean | undefined;
1104 Tty?: boolean | undefined;
1105 OpenStdin?: boolean | undefined;
1106 StdinOnce?: boolean | undefined;
1107 Env?: string[] | undefined;
1108 Cmd?: string[] | undefined;
1109 Entrypoint?: string | string[] | undefined;
1110 Image?: string | undefined;
1111 Labels?: { [label: string]: string } | undefined;
1112 Volumes?: { [volume: string]: {} } | undefined;
1113 WorkingDir?: string | undefined;
1114 NetworkDisabled?: boolean | undefined;
1115 MacAddress?: boolean | undefined;
1116 ExposedPorts?: { [port: string]: {} } | undefined;
1117 StopSignal?: string | undefined;
1118 StopTimeout?: number | undefined;
1119 Healthcheck?: HealthConfig | undefined;
1120 HostConfig?: HostConfig | undefined;
1121 NetworkingConfig?: {
1122 EndpointsConfig?: EndpointsConfig | undefined;
1123 } | undefined;
1124 abortSignal?: AbortSignal;
1125 }
1126
1127 interface ContainerRemoveOptions {
1128 v?: boolean | undefined;
1129 force?: boolean | undefined;
1130 link?: boolean | undefined;
1131 }
1132
1133 interface KeyObject {
1134 pem: string | Buffer;
1135 passphrase?: string | undefined;
1136 }
1137
1138 interface DockerOptions {
1139 socketPath?: string | undefined;
1140 host?: string | undefined;
1141 port?: number | string | undefined;
1142 username?: string | undefined;
1143 ca?: string | string[] | Buffer | Buffer[] | undefined;
1144 cert?: string | string[] | Buffer | Buffer[] | undefined;
1145 key?: string | string[] | Buffer | Buffer[] | KeyObject[] | undefined;
1146 protocol?: 'https' | 'http' | 'ssh' | undefined;
1147 timeout?: number | undefined;
1148 version?: string | undefined;
1149 sshAuthAgent?: string | undefined;
1150 Promise?: typeof Promise | undefined;
1151 }
1152
1153 interface GetEventsOptions {
1154 since?: number | undefined;
1155 until?: number | undefined;
1156 filters?:
1157 | string
1158 | {
1159 config?: string | undefined;
1160 container?: string[] | undefined;
1161 daemon?: string[] | undefined;
1162 event?: string[] | undefined;
1163 image?: string[] | undefined;
1164 label?: string[] | undefined;
1165 network?: string[] | undefined;
1166 node?: string[] | undefined;
1167 plugin?: string[] | undefined;
1168 scope?: Array<'local' | 'swarm'> | undefined;
1169 secret?: string[] | undefined;
1170 service?: string[] | undefined;
1171 type?: Array<
1172 | 'container'
1173 | 'image'
1174 | 'volume'
1175 | 'network'
1176 | 'daemon'
1177 | 'plugin'
1178 | 'service'
1179 | 'node'
1180 | 'secret'
1181 | 'config'
1182 > | undefined;
1183 volume?: string[] | undefined;
1184 } | undefined;
1185 abortSignal?: AbortSignal;
1186 }
1187
1188 interface SecretVersion {
1189 Index: number;
1190 }
1191
1192 interface Annotations {
1193 Name?: string | undefined;
1194 Labels?: { [name: string]: string } | undefined;
1195 }
1196
1197 interface ResourceLimits {
1198 NanoCPUs?: number | undefined;
1199 MemoryBytes?: number | undefined;
1200 Pids?: number | undefined;
1201 }
1202
1203 interface NamedGenericResource {
1204 Kind?: string | undefined;
1205 Value?: string | undefined;
1206 }
1207
1208 interface DiscreteGenericResource {
1209 Kind?: string | undefined;
1210 Value?: number | undefined;
1211 }
1212
1213 type GenericResource = NamedGenericResource | DiscreteGenericResource;
1214
1215 interface RestartPolicy {
1216 Condition?: string | undefined;
1217 Delay?: number | undefined;
1218 MaxAttempts?: number | undefined;
1219 Window?: number | undefined;
1220 }
1221
1222 interface Resources {
1223 NanoCPUs?: number | undefined;
1224 MemoryBytes?: number | undefined;
1225 GenericResources?: GenericResource[] | undefined;
1226 }
1227
1228 interface ResourceRequirements {
1229 Limits?: ResourceLimits | undefined;
1230 Reservations?: Resources | undefined;
1231 }
1232
1233 interface Placement {
1234 Constraints?: string[] | undefined;
1235 Preferences?: Array<{ Spread: { SpreadDescriptor: string } }> | undefined;
1236 MaxReplicas?: number | undefined;
1237 Platforms?: Array<{
1238 Architecture: string;
1239 OS: string;
1240 }> | undefined;
1241 }
1242
1243 interface NetworkAttachmentConfig {
1244 Target?: string | undefined;
1245 Aliases?: string[] | undefined;
1246 DriverOpts?: { [key: string]: string } | undefined;
1247 }
1248
1249 interface Privileges {
1250 CredentialSpec?: {
1251 Config?: string | undefined;
1252 File?: string | undefined;
1253 Registry?: string | undefined;
1254 } | undefined;
1255 SELinuxContext?: {
1256 Disable?: boolean | undefined;
1257 User?: string | undefined;
1258 Role?: string | undefined;
1259 Type?: string | undefined;
1260 Level?: string | undefined;
1261 } | undefined;
1262 }
1263
1264 interface HealthConfig {
1265 Test?: string[] | undefined;
1266 Interval?: number | undefined;
1267 Timeout?: number | undefined;
1268 StartPeriod?: number | undefined;
1269 Retries?: number | undefined;
1270 }
1271
1272 interface DNSConfig {
1273 Nameservers?: string[] | undefined;
1274 Search?: string[] | undefined;
1275 Options?: string[] | undefined;
1276 }
1277
1278 interface SecretReference {
1279 File?: {
1280 Name?: string | undefined;
1281 UID?: string | undefined;
1282 GID?: string | undefined;
1283 Mode?: number | undefined;
1284 } | undefined;
1285 SecretID?: string | undefined;
1286 SecretName?: string | undefined;
1287 }
1288
1289 interface Ulimit {
1290 Name?: string | undefined;
1291 Hard?: number | undefined;
1292 Soft?: number | undefined;
1293 }
1294
1295 interface ContainerSpec {
1296 Image?: string | undefined;
1297 Labels?: { [label: string]: string } | undefined;
1298 Command?: string[] | undefined;
1299 Args?: string[] | undefined;
1300 Hostname?: string | undefined;
1301 Env?: string[] | undefined;
1302 Dir?: string | undefined;
1303 User?: string | undefined;
1304 Groups?: string[] | undefined;
1305 Privileges?: Privileges | undefined;
1306 Init?: boolean | undefined;
1307 TTY?: boolean | undefined;
1308 OpenStdin?: boolean | undefined;
1309 ReadOnly?: boolean | undefined;
1310 Mounts?: MountSettings[] | undefined;
1311 StopSignal?: string | undefined;
1312 StopGracePeriod?: number | undefined;
1313 HealthCheck?: HealthConfig | undefined;
1314 Hosts?: string[] | undefined;
1315 DNSConfig?: DNSConfig | undefined;
1316 Secrets?: SecretReference[] | undefined;
1317 Isolation?: string | undefined;
1318 Sysctls?: { [key: string]: string } | undefined;
1319 CapabilityAdd?: string[] | undefined;
1320 CapabilityDrop?: string[] | undefined;
1321 Ulimits?: Ulimit[] | undefined;
1322 }
1323
1324 interface PluginSpec {
1325 Name?: string | undefined;
1326 Remote?: string | undefined;
1327 Privileges?: {
1328 Name?: string | undefined;
1329 Description?: string | undefined;
1330 Value?: string[] | undefined;
1331 } | undefined;
1332 Disabled?: boolean | undefined;
1333 Env?: string[] | undefined;
1334 }
1335
1336 interface TaskSpecBase {
1337 Resources?: ResourceRequirements | undefined;
1338 RestartPolicy?: RestartPolicy | undefined;
1339 Placement?: Placement | undefined;
1340 Networks?: NetworkAttachmentConfig[] | undefined;
1341 LogDriver?: {
1342 Name?: string | undefined;
1343 Options?: { [key: string]: string } | undefined;
1344 } | undefined;
1345 ForceUpdate?: number | undefined;
1346 Runtime?: string | undefined;
1347 }
1348
1349 interface ContainerTaskSpec extends TaskSpecBase {
1350 ContainerSpec?: ContainerSpec | undefined;
1351 }
1352
1353 interface PluginTaskSpec extends TaskSpecBase {
1354 Runtime: 'plugin';
1355 PluginSpec: PluginSpec;
1356 }
1357
1358 interface NetworkAttachmentTaskSpec extends TaskSpecBase {
1359 Runtime: 'attachment';
1360 NetworkAttachmentSpec: {
1361 ContainerID: string;
1362 };
1363 }
1364
1365 type TaskSpec = ContainerTaskSpec | PluginTaskSpec | NetworkAttachmentTaskSpec;
1366
1367 interface ServiceMode {
1368 Replicated?: { Replicas?: number | undefined } | undefined;
1369 Global?: {} | undefined;
1370 ReplicatedJob?: {
1371 MaxConcurrent?: number | undefined;
1372 TotalCompletions?: number | undefined;
1373 } | undefined;
1374 GlobalJob?: {} | undefined;
1375 }
1376
1377 interface UpdateConfig {
1378 Parallelism: number;
1379 Delay?: number | undefined;
1380 FailureAction?: string | undefined;
1381 Monitor?: number | undefined;
1382 MaxFailureRatio?: number | undefined;
1383 Order: string;
1384 }
1385
1386 interface PortConfig {
1387 Name?: string | undefined;
1388 Protocol?: 'tcp' | 'udp' | 'sctp' | undefined;
1389 TargetPort?: number | undefined;
1390 PublishedPort?: number | undefined;
1391 PublishMode?: 'ingress' | 'host' | undefined;
1392 }
1393
1394 interface EndpointSpec {
1395 Mode?: string | undefined;
1396 Ports?: PortConfig[] | undefined;
1397 }
1398
1399 interface EndpointVirtualIP {
1400 NetworkID?: string | undefined;
1401 Addr?: string | undefined;
1402 }
1403
1404 interface Endpoint {
1405 Spec?: EndpointSpec | undefined;
1406 Ports?: PortConfig[] | undefined;
1407 VirtualIPs?: EndpointVirtualIP[] | undefined;
1408 }
1409
1410 interface ServiceSpec extends Annotations {
1411 TaskTemplate?: TaskSpec | undefined;
1412 Mode?: ServiceMode | undefined;
1413 UpdateConfig?: UpdateConfig | undefined;
1414 RollbackConfig?: UpdateConfig | undefined;
1415 Networks?: NetworkAttachmentConfig[] | undefined;
1416 EndpointSpec?: EndpointSpec | undefined;
1417 }
1418
1419 interface CreateServiceOptions extends ServiceSpec {
1420 authconfig?: AuthConfig | undefined;
1421 abortSignal?: AbortSignal;
1422 }
1423
1424 interface ServiceCreateResponse {
1425 ID: string;
1426 Warnings?: string[] | undefined;
1427 }
1428
1429 interface ServiceListOptions {
1430 Filters: {
1431 id?: string[] | undefined;
1432 label?: string[] | undefined;
1433 mode?: Array<'replicated' | 'global'> | undefined;
1434 name?: string[] | undefined;
1435 };
1436
1437 abortSignal?: AbortSignal;
1438 }
1439
1440 interface Version {
1441 Index?: number | undefined;
1442 }
1443
1444 interface Meta {
1445 Version?: Version | undefined;
1446 CreatedAt?: string | undefined;
1447 UpdatedAt?: string | undefined;
1448 }
1449
1450 type UpdateState = 'updating' | 'paused' | 'completed' | 'rollback_started' | 'rollback_paused' | 'rollback_completed';
1451
1452 interface UpdateStatus {
1453 State?: UpdateState | undefined;
1454 StartedAt?: string | undefined;
1455 CompletedAt?: string | undefined;
1456 Message?: string | undefined;
1457 }
1458
1459 interface ServiceStatus {
1460 RunningTasks: number;
1461 DesiredTasks: number;
1462 CompletedTasks: number;
1463 }
1464
1465 interface JobStatus {
1466 JobIteration: Version;
1467 LastExecution?: string | undefined;
1468 }
1469
1470 interface Service extends Meta {
1471 ID: string;
1472 Spec?: ServiceSpec | undefined;
1473 PreviousSpec?: ServiceSpec | undefined;
1474 Endpoint?: Endpoint | undefined;
1475 UpdateStatus?: UpdateStatus | undefined;
1476 ServiceStatus?: ServiceStatus | undefined;
1477 JobStatus?: JobStatus | undefined;
1478 }
1479
1480 interface OrchestrationConfig {
1481 TaskHistoryRetentionLimit?: number | undefined;
1482 }
1483
1484 interface RaftConfig {
1485 SnapshotInterval?: number | undefined;
1486 KeepOldSnapshots?: number | undefined;
1487 LogEntriesForSlowFollowers?: number | undefined;
1488 ElectionTick?: number | undefined;
1489 HeartbeatTick?: number | undefined;
1490 }
1491
1492 interface DispatcherConfig {
1493 HeartbeatPeriod?: Duration | undefined;
1494 }
1495
1496 type ExternalCAProtocol = 'cfssl' | string;
1497
1498 interface ExternalCA {
1499 Protocol: ExternalCAProtocol;
1500 URL: string;
1501 Options?: { [key: string]: string } | undefined;
1502 CACert: string;
1503 }
1504
1505 interface CAConfig {
1506 NodeCertExpiry?: Duration | undefined;
1507 ExternalCAs?: ExternalCA[] | undefined;
1508 SigningCACert?: string | undefined;
1509 SigningCAKey?: string | undefined;
1510 ForceRotate?: number | undefined;
1511 }
1512
1513 interface TaskDefaults {
1514 LogDriver?: Driver | undefined;
1515 }
1516
1517 interface EncryptionConfig {
1518 AutoLockManagers: boolean;
1519 }
1520
1521 interface Spec extends Annotations {
1522 Orchestration?: OrchestrationConfig | undefined;
1523 Raft: RaftConfig;
1524 Dispatcher?: DispatcherConfig | undefined;
1525 CAConfig?: CAConfig | undefined;
1526 TaskDefaults?: TaskDefaults | undefined;
1527 EncryptionConfig?: EncryptionConfig | undefined;
1528 }
1529
1530 interface TLSInfo {
1531 TrustRoot?: string | undefined;
1532 CertIssuerSubject?: string | undefined;
1533 CertIssuerPublicKey?: string | undefined;
1534 }
1535
1536 interface ClusterInfo extends Meta {
1537 ID: string;
1538 Spec: Spec;
1539 TLSInfo: TLSInfo;
1540 RootRotationInProgress: boolean;
1541 DefaultAddrPool: string[];
1542 SubnetSize: number;
1543 DataPathPort: number;
1544 }
1545
1546 interface JoinTokens {
1547 Worker: string;
1548 Manager: string;
1549 }
1550
1551 interface Swarm extends ClusterInfo {
1552 JoinTokens: JoinTokens;
1553 }
1554
1555 interface Driver {
1556 Name: string;
1557 Options?: { [key: string]: string } | undefined;
1558 }
1559
1560 interface SecretSpec extends Annotations {
1561 Data?: string | undefined;
1562 Driver?: Driver | undefined;
1563 Templating?: Driver | undefined;
1564 }
1565
1566 interface Secret extends Meta {
1567 ID: string;
1568 Spec?: SecretSpec | undefined;
1569 }
1570
1571 interface ConfigInfo {
1572 ID: string;
1573 Version: SecretVersion;
1574 CreatedAt: string;
1575 UpdatedAt?: string | undefined;
1576 Spec?: ConfigSpec | undefined;
1577 }
1578
1579 interface ConfigSpec {
1580 Name: string;
1581 Labels: { [label: string]: string };
1582 Data: string;
1583 }
1584
1585 interface ConfigVersion {
1586 Index: number;
1587 }
1588
1589 interface PluginInfo {
1590 Id?: string | undefined;
1591 Name: string;
1592 Enabled: boolean;
1593 Settings: PluginSettings;
1594 PluginReference?: string | undefined;
1595 Config: PluginConfig;
1596 }
1597
1598 type PluginInspectInfo = PluginInfo;
1599
1600 interface PluginSettings {
1601 Mounts: PluginMount[];
1602 Env: string[];
1603 Args: string[];
1604 Devices: PluginDevice[];
1605 }
1606
1607 interface PluginConfig {
1608 Description: string;
1609 Documentation: string;
1610 Interface: any;
1611 Entrypoint: string[];
1612 WorkDir: string;
1613 User?: User | undefined;
1614 Network: Network;
1615 Linux: Linux;
1616 PropagatedMount: string;
1617 Mounts: PluginMount[];
1618 Env: PluginEnv[];
1619 Args: Args;
1620 rootfs: any;
1621 }
1622
1623 interface Interface {
1624 Types: PluginInterfaceType[];
1625 Socket: string;
1626 }
1627
1628 interface PluginInterfaceType {
1629 Prefix: string;
1630 Capability: string;
1631 Version: string;
1632 }
1633
1634 interface PluginMount {
1635 Name: string;
1636 Description: string;
1637 Settable: string[];
1638 Source: string;
1639 Destination: string;
1640 Type: string;
1641 Options: string[];
1642 }
1643
1644 interface Linux {
1645 Capabilities: string[];
1646 AllowAllDevices: boolean;
1647 Devices: PluginDevice[];
1648 }
1649
1650 interface PluginDevice {
1651 Name: string;
1652 Description: string;
1653 Settable: string[];
1654 Path: string;
1655 }
1656
1657 interface Network {
1658 Type: string;
1659 }
1660
1661 interface PluginEnv {
1662 Name: string;
1663 Description: string;
1664 Settable: string[];
1665 Value: string;
1666 }
1667
1668 interface Args {
1669 Name: string;
1670 Description: string;
1671 Settable: string[];
1672 Value: string;
1673 }
1674
1675 interface User {
1676 UID: number;
1677 GID: number;
1678 }
1679
1680 interface ListImagesOptions {
1681 all?: boolean | undefined;
1682 filters?: string | undefined;
1683 digests?: boolean | undefined;
1684 }
1685
1686 interface ImageDistributionPlatformInfo {
1687 architecture: string;
1688 os: string;
1689 'os.version': string;
1690 'os.features': string[];
1691 variant: string;
1692 }
1693
1694 interface ImageDistributionDescriptorInfo {
1695 mediaType: string;
1696 digest: string;
1697 size: number;
1698 }
1699
1700 interface ImageDistributionInfo {
1701 Descriptor: ImageDistributionDescriptorInfo;
1702 Platforms: ImageDistributionPlatformInfo[];
1703 }
1704
1705 interface ImageRemoveInfo {
1706 Untagged: string;
1707 Deleted: string;
1708 }
1709
1710 interface ImageRemoveOptions {
1711 force?: boolean | undefined;
1712 noprune?: boolean | undefined;
1713 }
1714
1715 interface PruneImagesInfo {
1716 ImagesDeleted: ImageRemoveInfo[];
1717 SpaceReclaimed: number;
1718 }
1719
1720 interface PruneVolumesInfo {
1721 VolumesDeleted: string[];
1722 SpaceReclaimed: number;
1723 }
1724
1725 interface PruneContainersInfo {
1726 ContainersDeleted: string[];
1727 SpaceReclaimed: number;
1728 }
1729
1730 interface PruneNetworksInfo {
1731 NetworksDeleted: string[];
1732 }
1733
1734 interface ContainerWaitOptions {
1735 /** Since v1.30 */
1736 condition?: 'not-running' | 'next-exit' | 'removed' | undefined;
1737 abortSignal?: AbortSignal;
1738 }
1739
1740 interface ContainerLogsOptions {
1741 stdout?: boolean | undefined;
1742 stderr?: boolean | undefined;
1743 follow?: boolean | undefined;
1744 since?: number | undefined;
1745 details?: boolean | undefined;
1746 tail?: number | undefined;
1747 timestamps?: boolean | undefined;
1748 abortSignal?: AbortSignal;
1749 }
1750
1751 interface ImageBuildContext {
1752 context: string;
1753 src: string[];
1754 }
1755
1756 interface DockerVersion {
1757 ApiVersion: string;
1758 Arch: string;
1759 BuildTime: Date;
1760 Components: Array<{
1761 Details: {
1762 ApiVersion: string;
1763 Arch: string;
1764 BuildTime: Date;
1765 Experimental: string;
1766 GitCommit: string;
1767 GoVersion: string;
1768 KernelVersion: string;
1769 Os: string;
1770 };
1771 Name: string;
1772 Version: string;
1773 }>;
1774 GitCommit: string;
1775 GoVersion: string;
1776 KernelVersion: string;
1777 MinAPIVersion: string;
1778 Os: string;
1779 Platform: {
1780 Name: string;
1781 };
1782 Version: string;
1783 }
1784}
1785
1786type Callback<T> = (error?: any, result?: T) => void;
1787
1788declare class Dockerode {
1789 constructor(options?: Dockerode.DockerOptions);
1790
1791 createContainer(options: Dockerode.ContainerCreateOptions, callback: Callback<Dockerode.Container>): void;
1792 createContainer(options: Dockerode.ContainerCreateOptions): Promise<Dockerode.Container>;
1793
1794 createImage(options: {}, callback: Callback<NodeJS.ReadableStream>): void;
1795 createImage(auth: any, options: {}, callback: Callback<NodeJS.ReadableStream>): void;
1796 createImage(options: {}): Promise<NodeJS.ReadableStream>;
1797 createImage(auth: any, options: {}): Promise<NodeJS.ReadableStream>;
1798
1799 loadImage(file: string | NodeJS.ReadableStream, options: {}, callback: Callback<NodeJS.ReadableStream>): void;
1800 loadImage(file: string | NodeJS.ReadableStream, callback: Callback<NodeJS.ReadableStream>): void;
1801 loadImage(file: string | NodeJS.ReadableStream, options?: {}): Promise<NodeJS.ReadableStream>;
1802
1803 importImage(file: string | NodeJS.ReadableStream, options: {}, callback: Callback<NodeJS.ReadableStream>): void;
1804 importImage(file: string | NodeJS.ReadableStream, callback: Callback<NodeJS.ReadableStream>): void;
1805 importImage(file: string | NodeJS.ReadableStream, options?: {}): Promise<NodeJS.ReadableStream>;
1806
1807 checkAuth(options: any, callback: Callback<any>): void;
1808 checkAuth(options: any): Promise<any>;
1809
1810 buildImage(
1811 file: string | NodeJS.ReadableStream | Dockerode.ImageBuildContext,
1812 options: Dockerode.ImageBuildOptions,
1813 callback: Callback<NodeJS.ReadableStream>,
1814 ): void;
1815 buildImage(
1816 file: string | NodeJS.ReadableStream | Dockerode.ImageBuildContext,
1817 callback: Callback<NodeJS.ReadableStream>,
1818 ): void;
1819 buildImage(
1820 file: string | NodeJS.ReadableStream | Dockerode.ImageBuildContext,
1821 options?: Dockerode.ImageBuildOptions,
1822 ): Promise<NodeJS.ReadableStream>;
1823
1824 getContainer(id: string): Dockerode.Container;
1825
1826 getImage(name: string): Dockerode.Image;
1827
1828 getVolume(name: string): Dockerode.Volume;
1829
1830 getPlugin(name: string, remote: any): Dockerode.Plugin;
1831
1832 getService(id: string): Dockerode.Service;
1833
1834 getTask(id: string): Dockerode.Task;
1835
1836 getNode(id: string): Dockerode.Node;
1837
1838 getNetwork(id: string): Dockerode.Network;
1839
1840 getSecret(id: string): Dockerode.Secret;
1841
1842 getExec(id: string): Dockerode.Exec;
1843
1844 getConfig(id: string): Dockerode.Config;
1845
1846 listContainers(options: {}, callback: Callback<Dockerode.ContainerInfo[]>): void;
1847 listContainers(callback: Callback<Dockerode.ContainerInfo[]>): void;
1848 listContainers(options?: {}): Promise<Dockerode.ContainerInfo[]>;
1849
1850 listImages(options: Dockerode.ListImagesOptions, callback: Callback<Dockerode.ImageInfo[]>): void;
1851 listImages(callback: Callback<Dockerode.ImageInfo[]>): void;
1852 listImages(options?: Dockerode.ListImagesOptions): Promise<Dockerode.ImageInfo[]>;
1853
1854 listServices(options: Dockerode.ServiceListOptions, callback: Callback<Dockerode.Service[]>): void;
1855 listServices(callback: Callback<Dockerode.Service[]>): void;
1856 listServices(options?: Dockerode.ServiceListOptions): Promise<Dockerode.Service[]>;
1857
1858 listNodes(options: {}, callback: Callback<any[]>): void;
1859 listNodes(callback: Callback<any[]>): void;
1860 listNodes(options?: {}): Promise<any[]>;
1861
1862 listTasks(options: {}, callback: Callback<any[]>): void;
1863 listTasks(callback: Callback<any[]>): void;
1864 listTasks(options?: {}): Promise<any[]>;
1865
1866 listSecrets(options: {}, callback: Callback<Dockerode.Secret[]>): void;
1867 listSecrets(callback: Callback<Dockerode.Secret[]>): void;
1868 listSecrets(options?: {}): Promise<Dockerode.Secret[]>;
1869
1870 listPlugins(options: {}, callback: Callback<Dockerode.PluginInfo[]>): void;
1871 listPlugins(callback: Callback<Dockerode.PluginInfo[]>): void;
1872 listPlugins(options?: {}): Promise<Dockerode.PluginInfo[]>;
1873
1874 listVolumes(
1875 options: {},
1876 callback: Callback<{
1877 Volumes: Dockerode.VolumeInspectInfo[];
1878 Warnings: string[];
1879 }>,
1880 ): void;
1881 listVolumes(
1882 callback: Callback<{
1883 Volumes: Dockerode.VolumeInspectInfo[];
1884 Warnings: string[];
1885 }>,
1886 ): void;
1887 listVolumes(options?: {}): Promise<{
1888 Volumes: Dockerode.VolumeInspectInfo[];
1889 Warnings: string[];
1890 }>;
1891
1892 listNetworks(options: {}, callback: Callback<Dockerode.NetworkInspectInfo[]>): void;
1893 listNetworks(callback: Callback<Dockerode.NetworkInspectInfo[]>): void;
1894 listNetworks(options?: {}): Promise<Dockerode.NetworkInspectInfo[]>;
1895
1896 listConfigs(options: {}, callback: Callback<Dockerode.ConfigInfo[]>): void;
1897 listConfigs(callback: Callback<Dockerode.ConfigInfo[]>): void;
1898 listConfigs(options?: {}): Promise<Dockerode.ConfigInfo[]>;
1899
1900 createSecret(options: {}, callback: Callback<any>): void;
1901 createSecret(options: {}): Promise<any>;
1902
1903 createConfig(options: {}, callback: Callback<any>): void;
1904 createConfig(options: {}): Promise<any>;
1905
1906 createPlugin(options: {}, callback: Callback<any>): void;
1907 createPlugin(options: {}): Promise<any>;
1908
1909 createVolume(options: Dockerode.VolumeCreateOptions, callback: Callback<Dockerode.Volume>): void;
1910 createVolume(callback: Callback<Dockerode.Volume>): void;
1911 createVolume(options?: Dockerode.VolumeCreateOptions): Promise<Dockerode.VolumeCreateResponse>;
1912
1913 createService(options: Dockerode.CreateServiceOptions, callback: Callback<Dockerode.ServiceCreateResponse>): void;
1914 createService(options: Dockerode.CreateServiceOptions): Promise<Dockerode.ServiceCreateResponse>;
1915 createService(auth: Dockerode.AuthConfig, options: Dockerode.ServiceSpec): Promise<Dockerode.ServiceCreateResponse>;
1916
1917 createNetwork(options: Dockerode.NetworkCreateOptions, callback: Callback<Dockerode.Network>): void;
1918 createNetwork(options: Dockerode.NetworkCreateOptions): Promise<Dockerode.Network>;
1919
1920 searchImages(options: {}, callback: Callback<any>): void;
1921 searchImages(options: {}): Promise<any>;
1922
1923 pruneImages(options: {}, callback: Callback<Dockerode.PruneImagesInfo>): void;
1924 pruneImages(callback: Callback<Dockerode.PruneImagesInfo>): void;
1925 pruneImages(options?: {}): Promise<Dockerode.PruneImagesInfo>;
1926
1927 pruneContainers(options: {}, callback: Callback<Dockerode.PruneContainersInfo>): void;
1928 pruneContainers(callback: Callback<Dockerode.PruneContainersInfo>): void;
1929 pruneContainers(options?: {}): Promise<Dockerode.PruneContainersInfo>;
1930
1931 pruneVolumes(options: {}, callback: Callback<Dockerode.PruneVolumesInfo>): void;
1932 pruneVolumes(callback: Callback<Dockerode.PruneVolumesInfo>): void;
1933 pruneVolumes(options?: {}): Promise<Dockerode.PruneVolumesInfo>;
1934
1935 pruneNetworks(options: {}, callback: Callback<Dockerode.PruneNetworksInfo>): void;
1936 pruneNetworks(callback: Callback<Dockerode.PruneNetworksInfo>): void;
1937 pruneNetworks(options?: {}): Promise<Dockerode.PruneNetworksInfo>;
1938
1939 info(callback: Callback<any>): void;
1940 info(): Promise<any>;
1941
1942 df(callback: Callback<any>): void;
1943 df(): Promise<any>;
1944
1945 version(callback: Callback<Dockerode.DockerVersion>): void;
1946 version(): Promise<Dockerode.DockerVersion>;
1947
1948 ping(callback: Callback<any>): void;
1949 ping(): Promise<any>;
1950
1951 getEvents(options: Dockerode.GetEventsOptions, callback: Callback<NodeJS.ReadableStream>): void;
1952 getEvents(callback: Callback<NodeJS.ReadableStream>): void;
1953 getEvents(options?: Dockerode.GetEventsOptions): Promise<NodeJS.ReadableStream>;
1954
1955 pull(repoTag: string, options: {}, callback: Callback<any>, auth?: {}): Dockerode.Image;
1956 pull(repoTag: string, options?: {}): Promise<any>;
1957
1958 run(
1959 image: string,
1960 cmd: string[],
1961 outputStream: NodeJS.WritableStream | NodeJS.WritableStream[],
1962 createOptions: {},
1963 startOptions: {},
1964 callback: Callback<any>,
1965 ): events.EventEmitter;
1966 run(
1967 image: string,
1968 cmd: string[],
1969 outputStream: NodeJS.WritableStream | NodeJS.WritableStream[],
1970 startOptions: {},
1971 callback: Callback<any>,
1972 ): events.EventEmitter;
1973 run(
1974 image: string,
1975 cmd: string[],
1976 outputStream: NodeJS.WritableStream | NodeJS.WritableStream[],
1977 callback: Callback<any>,
1978 ): events.EventEmitter;
1979 run(
1980 image: string,
1981 cmd: string[],
1982 outputStream: NodeJS.WritableStream | NodeJS.WritableStream[],
1983 createOptions: {},
1984 callback: Callback<any>,
1985 ): events.EventEmitter;
1986 run(
1987 image: string,
1988 cmd: string[],
1989 outputStream: NodeJS.WritableStream | NodeJS.WritableStream[],
1990 createOptions?: {},
1991 startOptions?: {},
1992 ): Promise<any>;
1993
1994 swarmInit(options: {}, callback: Callback<any>): void;
1995 swarmInit(options: {}): Promise<any>;
1996
1997 swarmJoin(options: {}, callback: Callback<any>): void;
1998 swarmJoin(options: {}): Promise<any>;
1999
2000 swarmLeave(options: {}, callback: Callback<any>): void;
2001 swarmLeave(options: {}): Promise<any>;
2002
2003 swarmUpdate(options: {}, callback: Callback<any>): void;
2004 swarmUpdate(options: {}): Promise<any>;
2005
2006 swarmInspect(callback: Callback<any>): void;
2007 swarmInspect(): Promise<any>;
2008
2009 modem: DockerModem;
2010}
2011
2012export = Dockerode;