UNPKG

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