UNPKG

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