UNPKG

65.4 kBTypeScriptView Raw
1/// <reference types="node" />
2
3import * as DockerModem from "docker-modem";
4import * as events from "events";
5import * as stream from "stream";
6
7declare namespace Dockerode {
8 class Container {
9 constructor(modem: any, id: string);
10
11 modem: any;
12 id: string;
13
14 inspect(options: {}, callback: Callback<ContainerInspectInfo>): void;
15 inspect(callback: Callback<ContainerInspectInfo>): void;
16 inspect(options?: {}): Promise<ContainerInspectInfo>;
17
18 rename(options: {}, callback: Callback<any>): void;
19 rename(options: {}): Promise<any>;
20
21 update(options: {}, callback: Callback<any>): void;
22 update(options: {}): Promise<any>;
23
24 top(options: {}, callback: Callback<any>): void;
25 top(callback: Callback<any>): void;
26 top(options?: {}): Promise<any>;
27
28 changes(options: {}, callback: Callback<any>): void;
29 changes(callback: Callback<any>): void;
30 changes(options?: {}): Promise<any>;
31
32 export(options: {}, callback: Callback<NodeJS.ReadableStream>): void;
33 export(callback: Callback<NodeJS.ReadableStream>): void;
34 export(options?: {}): Promise<NodeJS.ReadableStream>;
35
36 start(options: ContainerStartOptions, callback: Callback<any>): void;
37 start(callback: Callback<any>): void;
38 start(options?: ContainerStartOptions): Promise<any>;
39
40 pause(options: {}, callback: Callback<any>): void;
41 pause(callback: Callback<any>): void;
42 pause(options?: {}): Promise<any>;
43
44 unpause(options: {}, callback: Callback<any>): void;
45 unpause(callback: Callback<any>): void;
46 unpause(options?: {}): Promise<any>;
47
48 exec(options: ExecCreateOptions, callback: Callback<Exec>): void;
49 exec(options: ExecCreateOptions): Promise<Exec>;
50
51 commit(options: {}, callback: Callback<any>): void;
52 commit(callback: Callback<any>): void;
53 commit(options?: {}): Promise<any>;
54
55 stop(options: ContainerStopOptions, callback: Callback<any>): void;
56 stop(callback: Callback<any>): void;
57 stop(options?: ContainerStopOptions): Promise<any>;
58
59 restart(options: {}, callback: Callback<any>): void;
60 restart(callback: Callback<any>): void;
61 restart(options?: {}): Promise<any>;
62
63 kill(options: {}, callback: Callback<any>): void;
64 kill(callback: Callback<any>): void;
65 kill(options?: {}): Promise<any>;
66
67 resize(options: {}, callback: Callback<any>): void;
68 resize(callback: Callback<any>): void;
69 resize(options?: {}): Promise<any>;
70
71 wait(options: ContainerWaitOptions, callback: Callback<any>): void;
72 wait(callback: Callback<any>): void;
73 wait(options?: ContainerWaitOptions): Promise<any>;
74
75 remove(options: ContainerRemoveOptions, callback: Callback<any>): void;
76 remove(callback: Callback<any>): void;
77 remove(options?: {}): Promise<any>;
78
79 /** Deprecated since RAPI v1.20 */
80 copy(options: {}, callback: Callback<any>): void;
81 /** Deprecated since RAPI v1.20 */
82 copy(callback: Callback<any>): void;
83 /** Deprecated since RAPI v1.20 */
84 copy(options?: {}): Promise<any>;
85
86 getArchive(options: {}, callback: Callback<NodeJS.ReadableStream>): void;
87 getArchive(options: {}): Promise<NodeJS.ReadableStream>;
88
89 infoArchive(options: {}, callback: Callback<any>): void;
90 infoArchive(options: {}): Promise<any>;
91
92 /** @param file Filename (will read synchronously), Buffer or stream */
93 putArchive(
94 file: string | Buffer | NodeJS.ReadableStream,
95 options: {},
96 callback: Callback<NodeJS.WritableStream>,
97 ): void;
98 putArchive(file: string | Buffer | NodeJS.ReadableStream, options: {}): Promise<NodeJS.ReadWriteStream>;
99
100 logs(options: ContainerLogsOptions & { follow?: false }, callback: Callback<Buffer>): void;
101 logs(options: ContainerLogsOptions & { follow: true }, callback: Callback<NodeJS.ReadableStream>): void;
102 logs(callback: Callback<Buffer>): void;
103 logs(options?: ContainerLogsOptions & { follow?: false }): Promise<Buffer>;
104 logs(options?: ContainerLogsOptions & { follow: true }): Promise<NodeJS.ReadableStream>;
105
106 stats(options: { stream?: false; "one-shot"?: boolean }, callback: Callback<ContainerStats>): void;
107 stats(options: { stream: true }, callback: Callback<NodeJS.ReadableStream>): void;
108 stats(callback: Callback<ContainerStats>): void;
109 stats(options?: { stream?: false; "one-shot"?: boolean }): Promise<ContainerStats>;
110 stats(options?: { stream: true }): Promise<NodeJS.ReadableStream>;
111
112 attach(options: ContainerAttachOptions, callback: Callback<NodeJS.ReadWriteStream>): void;
113 attach(options: ContainerAttachOptions): Promise<NodeJS.ReadWriteStream>;
114 }
115
116 class Image {
117 constructor(modem: any, name: string);
118
119 modem: any;
120 id: string;
121
122 inspect(callback: Callback<ImageInspectInfo>): void;
123 inspect(): Promise<ImageInspectInfo>;
124
125 history(callback: Callback<any>): void;
126 history(): Promise<any>;
127
128 get(callback: Callback<NodeJS.ReadableStream>): void;
129 get(): Promise<NodeJS.ReadableStream>;
130
131 push(options: ImagePushOptions, callback: Callback<NodeJS.ReadableStream>): void;
132 push(callback: Callback<NodeJS.ReadableStream>): void;
133 push(options?: ImagePushOptions): Promise<NodeJS.ReadableStream>;
134
135 tag(options: {}, callback: Callback<any>): void;
136 tag(callback: Callback<any>): void;
137 tag(options?: {}): Promise<any>;
138
139 remove(options: ImageRemoveOptions, callback: Callback<ImageRemoveInfo>): void;
140 remove(callback: Callback<ImageRemoveInfo>): void;
141 remove(options?: {}): Promise<any>;
142
143 distribution(options: ImageDistributionOptions, callback: Callback<ImageDistributionInfo>): void;
144 distribution(callback: Callback<ImageDistributionInfo>): void;
145 distribution(options?: ImageDistributionOptions): Promise<ImageDistributionInfo>;
146 }
147
148 class Volume {
149 constructor(modem: any, name: string);
150
151 modem: any;
152 name: string;
153
154 inspect(options: {}, callback: Callback<VolumeInspectInfo>): void;
155 inspect(callback: Callback<VolumeInspectInfo>): void;
156 inspect(options?: {}): Promise<VolumeInspectInfo>;
157
158 remove(options: {}, callback: Callback<any>): void;
159 remove(callback: Callback<any>): void;
160 remove(options?: {}): Promise<any>;
161 }
162
163 class Service {
164 constructor(modem: any, id: string);
165
166 modem: any;
167 id: string;
168
169 inspect(options: {}, callback: Callback<any>): void;
170 inspect(callback: Callback<any>): void;
171 inspect(options?: {}): Promise<any>;
172
173 remove(options: {}, callback: Callback<any>): void;
174 remove(callback: Callback<any>): void;
175 remove(options?: {}): Promise<any>;
176
177 update(options: {}, callback: Callback<any>): void;
178 update(options: {}): Promise<any>;
179
180 logs(options: ContainerLogsOptions, callback: Callback<NodeJS.ReadableStream>): void;
181 logs(callback: Callback<NodeJS.ReadableStream>): void;
182 logs(options?: ContainerLogsOptions): Promise<NodeJS.ReadableStream>;
183 }
184
185 class Task {
186 constructor(modem: any, id: string);
187
188 modem: any;
189 id: string;
190
191 inspect(options: {}, callback: Callback<any>): void;
192 inspect(callback: Callback<any>): void;
193 inspect(options?: {}): Promise<any>;
194 }
195
196 class Node {
197 constructor(modem: any, id: string);
198
199 modem: any;
200 id: string;
201
202 inspect(options: {}, callback: Callback<any>): void;
203 inspect(callback: Callback<any>): void;
204 inspect(options?: {}): Promise<any>;
205
206 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(options: {}, callback: Callback<PluginInspectInfo>): void;
223 inspect(callback: Callback<PluginInspectInfo>): void;
224 inspect(options?: {}): Promise<PluginInspectInfo>;
225
226 remove(options: {}, callback: Callback<any>): void;
227 remove(callback: Callback<any>): void;
228 remove(options?: {}): Promise<any>;
229
230 privileges(options: {}, callback: Callback<any>): void;
231 privileges(callback: Callback<any>): void;
232 privileges(options?: {}): Promise<any>;
233
234 pull(options: {}, callback: Callback<any>): void;
235 pull(options: {}): Promise<any>;
236
237 enable(options: {}, callback: Callback<any>): void;
238 enable(callback: Callback<any>): void;
239 enable(options?: {}): Promise<any>;
240
241 disable(options: {}, callback: Callback<any>): void;
242 disable(callback: Callback<any>): void;
243 disable(options?: {}): Promise<any>;
244
245 push(options: {}, callback: Callback<any>): void;
246 push(callback: Callback<any>): void;
247 push(options?: {}): Promise<any>;
248
249 configure(options: {}, callback: Callback<any>): void;
250 configure(callback: Callback<any>): void;
251 configure(options?: {}): Promise<any>;
252
253 upgrade(auth: any, options: {}, callback: Callback<any>): void;
254 upgrade(auth: any, callback: Callback<any>): void;
255 upgrade(auth: any, options?: {}): Promise<any>;
256 }
257
258 class Secret {
259 constructor(modem: any, id: string);
260
261 modem: any;
262 id: string;
263
264 inspect(options: {}, callback: Callback<Secret>): void;
265 inspect(callback: Callback<Secret>): void;
266 inspect(options?: {}): Promise<Secret>;
267
268 update(options: {}, callback: Callback<any>): void;
269 update(callback: Callback<any>): void;
270 update(options?: {}): Promise<any>;
271
272 remove(options: {}, callback: Callback<any>): void;
273 remove(callback: Callback<any>): void;
274 remove(options?: {}): Promise<any>;
275 }
276
277 class Network {
278 constructor(modem: any, id: string);
279
280 modem: any;
281 id: string;
282
283 inspect(callback: Callback<any>): void;
284 inspect(): Promise<any>;
285
286 remove(options: {}, callback: Callback<any>): void;
287 remove(callback: Callback<any>): void;
288 remove(options?: {}): Promise<any>;
289
290 connect(options: NetworkConnectOptions, callback: Callback<any>): void;
291 connect(callback: Callback<any>): void;
292 connect(options?: NetworkConnectOptions): Promise<any>;
293
294 disconnect(options: {}, callback: Callback<any>): void;
295 disconnect(callback: Callback<any>): void;
296 disconnect(options?: {}): Promise<any>;
297 }
298
299 class Exec {
300 constructor(modem: any, id: string);
301
302 modem: any;
303 id: string;
304
305 inspect(options: ExecInspectOptions, callback: Callback<ExecInspectInfo>): void;
306 inspect(callback: Callback<ExecInspectInfo>): void;
307 inspect(options?: ExecInspectOptions): Promise<ExecInspectInfo>;
308
309 start(options: ExecStartOptions, callback: Callback<stream.Duplex>): void;
310 start(options: ExecStartOptions): Promise<stream.Duplex>;
311
312 resize(options: {}, callback: Callback<any>): void;
313 resize(options: {}): Promise<any>;
314 }
315
316 class Config {
317 constructor(modem: any, id: string);
318
319 modem: any;
320 id: string;
321
322 inspect(options: {}, callback: Callback<ConfigInfo>): void;
323 inspect(callback: Callback<ConfigInfo>): void;
324 inspect(options?: {}): Promise<ConfigInfo>;
325
326 update(options: {}, callback: Callback<any>): void;
327 update(callback: Callback<any>): void;
328 update(options?: {}): Promise<any>;
329
330 remove(options: {}, callback: Callback<any>): void;
331 remove(callback: Callback<any>): void;
332 remove(options?: {}): Promise<any>;
333 }
334
335 type Duration = number;
336
337 interface ImageInfo {
338 Id: string;
339 ParentId: string;
340 RepoTags: string[] | undefined;
341 RepoDigests?: string[] | undefined;
342 Created: number;
343 Size: number;
344 VirtualSize: number;
345 SharedSize: number;
346 Labels: { [label: string]: string };
347 Containers: number;
348 }
349
350 interface ContainerInfo {
351 Id: string;
352 Names: string[];
353 Image: string;
354 ImageID: string;
355 Command: string;
356 Created: number;
357 Ports: Port[];
358 Labels: { [label: string]: string };
359 State: string;
360 Status: string;
361 HostConfig: {
362 NetworkMode: string;
363 };
364 NetworkSettings: {
365 Networks: { [networkType: string]: NetworkInfo };
366 };
367 Mounts: Array<{
368 Name?: string | undefined;
369 Type: string;
370 Source: string;
371 Destination: string;
372 Driver?: string | undefined;
373 Mode: string;
374 RW: boolean;
375 Propagation: string;
376 }>;
377 }
378
379 interface Port {
380 IP: string;
381 PrivatePort: number;
382 PublicPort: number;
383 Type: string;
384 }
385
386 interface NetworkInfo {
387 IPAMConfig?: any;
388 Links?: any;
389 Aliases?: any;
390 NetworkID: string;
391 EndpointID: string;
392 Gateway: string;
393 IPAddress: string;
394 IPPrefixLen: number;
395 IPv6Gateway: string;
396 GlobalIPv6Address: string;
397 GlobalIPv6PrefixLen: number;
398 MacAddress: string;
399 }
400
401 // Information returned from inspecting a network
402 interface NetworkInspectInfo {
403 Name: string;
404 Id: string;
405 Created: string;
406 Scope: string;
407 Driver: string;
408 EnableIPv6: boolean;
409 IPAM?: IPAM | undefined;
410 Internal: boolean;
411 Attachable: boolean;
412 Ingress: boolean;
413 ConfigFrom?: { Network: string } | undefined;
414 ConfigOnly: boolean;
415 Containers?: { [id: string]: NetworkContainer } | undefined;
416 Options?: { [key: string]: string } | undefined;
417 Labels?: { [key: string]: string } | undefined;
418 }
419
420 interface NetworkCreateOptions {
421 Name: string;
422 CheckDuplicate?: boolean | undefined;
423 Driver?: string | undefined;
424 Internal?: boolean | undefined;
425 Attachable?: boolean | undefined;
426 Ingress?: boolean | undefined;
427 IPAM?: IPAM | undefined;
428 EnableIPv6?: boolean | undefined;
429 Options?: { [option: string]: string } | undefined;
430 Labels?: { [label: string]: string } | undefined;
431
432 abortSignal?: AbortSignal;
433 }
434
435 interface NetworkConnectOptions {
436 Container?: string;
437 EndpointConfig?: EndpointSettings | undefined;
438 }
439
440 interface NetworkContainer {
441 Name: string;
442 EndpointID: string;
443 MacAddress: string;
444 IPv4Address: string;
445 IPv6Address: string;
446 }
447
448 /* tslint:disable:interface-name */
449 interface IPAM {
450 Driver: string;
451 Config?: Array<{ [key: string]: string }> | undefined;
452 Options?: { [key: string]: string } | undefined;
453 }
454 /* tslint:enable:interface-name */
455
456 interface VolumeCreateOptions {
457 Name?: string | undefined;
458 Driver?: string | undefined;
459 DriverOpts?: { [key: string]: string } | undefined;
460 Labels?: { [label: string]: string } | undefined;
461 }
462
463 interface VolumeCreateResponse {
464 Name: string;
465 Driver: string;
466 Mountpoint: string;
467 CreatedAt?: string | undefined;
468 Status?: { [key: string]: string } | undefined;
469 Labels: { [label: string]: string };
470 Scope: string;
471 Options: { [key: string]: string };
472 // Field is sometimes present, and sometimes null
473 UsageData?:
474 | {
475 Size: number;
476 RefCount: number;
477 }
478 | null
479 | undefined;
480 }
481
482 interface VolumeInspectInfo {
483 Name: string;
484 Driver: string;
485 Mountpoint: string;
486 Status?: { [key: string]: string } | undefined;
487 Labels: { [key: string]: string };
488 Scope: "local" | "global";
489 // Field is always present, but sometimes is null
490 Options: { [key: string]: string } | null;
491 // Field is sometimes present, and sometimes null
492 UsageData?:
493 | {
494 Size: number;
495 RefCount: number;
496 }
497 | null
498 | undefined;
499 }
500
501 interface ContainerInspectInfo {
502 Id: string;
503 Created: string;
504 Path: string;
505 Args: string[];
506 State: {
507 Status: string;
508 Running: boolean;
509 Paused: boolean;
510 Restarting: boolean;
511 OOMKilled: boolean;
512 Dead: boolean;
513 Pid: number;
514 ExitCode: number;
515 Error: string;
516 StartedAt: string;
517 FinishedAt: string;
518 Health?:
519 | {
520 Status: string;
521 FailingStreak: number;
522 Log: Array<{
523 Start: string;
524 End: string;
525 ExitCode: number;
526 Output: string;
527 }>;
528 }
529 | undefined;
530 };
531 Image: string;
532 ResolvConfPath: string;
533 HostnamePath: string;
534 HostsPath: string;
535 LogPath: string;
536 Name: string;
537 RestartCount: number;
538 Driver: string;
539 Platform: string;
540 MountLabel: string;
541 ProcessLabel: string;
542 AppArmorProfile: string;
543 ExecIDs?: string[] | undefined;
544 HostConfig: HostConfig;
545 GraphDriver: {
546 Name: string;
547 Data: {
548 DeviceId: string;
549 DeviceName: string;
550 DeviceSize: string;
551 };
552 };
553 Mounts: Array<{
554 Name?: string | undefined;
555 Source: string;
556 Destination: string;
557 Mode: string;
558 RW: boolean;
559 Propagation: string;
560 }>;
561 Config: {
562 Hostname: string;
563 Domainname: string;
564 User: string;
565 AttachStdin: boolean;
566 AttachStdout: boolean;
567 AttachStderr: boolean;
568 ExposedPorts: { [portAndProtocol: string]: {} };
569 Tty: boolean;
570 OpenStdin: boolean;
571 StdinOnce: boolean;
572 Env: string[];
573 Cmd: string[];
574 Image: string;
575 Volumes: { [volume: string]: {} };
576 WorkingDir: string;
577 Entrypoint?: string | string[] | undefined;
578 OnBuild?: any;
579 Labels: { [label: string]: string };
580 };
581 NetworkSettings: {
582 Bridge: string;
583 SandboxID: string;
584 HairpinMode: boolean;
585 LinkLocalIPv6Address: string;
586 LinkLocalIPv6PrefixLen: number;
587 Ports: {
588 [portAndProtocol: string]: Array<{
589 HostIp: string;
590 HostPort: string;
591 }>;
592 };
593 SandboxKey: string;
594 SecondaryIPAddresses?: any;
595 SecondaryIPv6Addresses?: any;
596 EndpointID: string;
597 Gateway: string;
598 GlobalIPv6Address: string;
599 GlobalIPv6PrefixLen: number;
600 IPAddress: string;
601 IPPrefixLen: number;
602 IPv6Gateway: string;
603 MacAddress: string;
604 Networks: {
605 [type: string]: {
606 IPAMConfig?: any;
607 Links?: any;
608 Aliases?: any;
609 NetworkID: string;
610 EndpointID: string;
611 Gateway: string;
612 IPAddress: string;
613 IPPrefixLen: number;
614 IPv6Gateway: string;
615 GlobalIPv6Address: string;
616 GlobalIPv6PrefixLen: number;
617 MacAddress: string;
618 };
619 };
620 Node?:
621 | {
622 ID: string;
623 IP: string;
624 Addr: string;
625 Name: string;
626 Cpus: number;
627 Memory: number;
628 Labels: any;
629 }
630 | undefined;
631 };
632 }
633
634 interface NetworkStats {
635 [name: string]: {
636 rx_bytes: number;
637 rx_dropped: number;
638 rx_errors: number;
639 rx_packets: number;
640 tx_bytes: number;
641 tx_dropped: number;
642 tx_errors: number;
643 tx_packets: number;
644 endpoint_id?: string; // not used on linux
645 instance_id?: string; // not used on linux
646 };
647 }
648
649 interface CPUUsage {
650 percpu_usage: number[];
651 usage_in_usermode: number;
652 total_usage: number;
653 usage_in_kernelmode: number;
654 }
655
656 interface ThrottlingData {
657 periods: number;
658 throttled_periods: number;
659 throttled_time: number;
660 }
661
662 interface CPUStats {
663 cpu_usage: CPUUsage;
664 system_cpu_usage: number;
665 online_cpus: number;
666 throttling_data: ThrottlingData;
667 }
668
669 interface MemoryStats {
670 // Linux Memory Stats
671 stats: {
672 total_pgmajfault: number;
673 cache: number;
674 mapped_file: number;
675 total_inactive_file: number;
676 pgpgout: number;
677 rss: number;
678 total_mapped_file: number;
679 writeback: number;
680 unevictable: number;
681 pgpgin: number;
682 total_unevictable: number;
683 pgmajfault: number;
684 total_rss: number;
685 total_rss_huge: number;
686 total_writeback: number;
687 total_inactive_anon: number;
688 rss_huge: number;
689 hierarchical_memory_limit: number;
690 total_pgfault: number;
691 total_active_file: number;
692 active_anon: number;
693 total_active_anon: number;
694 total_pgpgout: number;
695 total_cache: number;
696 inactive_anon: number;
697 active_file: number;
698 pgfault: number;
699 inactive_file: number;
700 total_pgpgin: number;
701 };
702 max_usage: number;
703 usage: number;
704 failcnt: number;
705 limit: number;
706
707 // Windows Memory Stats
708 commitbytes?: number;
709 commitpeakbytes?: number;
710 privateworkingset?: number;
711 }
712
713 interface BlkioStatEntry {
714 major: number;
715 minor: number;
716 op: string;
717 value: number;
718 }
719
720 interface BlkioStats {
721 io_service_bytes_recursive: BlkioStatEntry[];
722 io_serviced_recursive: BlkioStatEntry[];
723 io_queue_recursive: BlkioStatEntry[];
724 io_service_time_recursive: BlkioStatEntry[];
725 io_wait_time_recursive: BlkioStatEntry[];
726 io_merged_recursive: BlkioStatEntry[];
727 io_time_recursive: BlkioStatEntry[];
728 sectors_recursive: BlkioStatEntry[];
729 }
730
731 interface StorageStats {
732 read_count_normalized?: number;
733 read_size_bytes?: number;
734 write_count_normalized?: number;
735 write_size_bytes?: number;
736 }
737
738 interface PidsStats {
739 current?: number;
740 limit?: number;
741 }
742
743 interface ContainerStats {
744 read: string;
745 preread: string;
746 pids_stats?: PidsStats;
747 blkio_stats?: BlkioStats;
748 num_procs: number;
749 storage_stats?: StorageStats;
750 networks: NetworkStats;
751 memory_stats: MemoryStats;
752 cpu_stats: CPUStats;
753 precpu_stats: CPUStats;
754 }
755
756 interface HostConfig {
757 AutoRemove?: boolean | undefined;
758 Binds?: string[] | undefined;
759 ContainerIDFile?: string | undefined;
760 LogConfig?:
761 | {
762 Type: string;
763 Config: any;
764 }
765 | undefined;
766 NetworkMode?: string | undefined;
767 PortBindings?: any;
768 RestartPolicy?: HostRestartPolicy | undefined;
769 VolumeDriver?: string | undefined;
770 VolumesFrom?: any;
771 Mounts?: MountConfig | undefined;
772 CapAdd?: any;
773 CapDrop?: any;
774 Dns?: any[] | undefined;
775 DnsOptions?: any[] | undefined;
776 DnsSearch?: string[] | undefined;
777 ExtraHosts?: any;
778 GroupAdd?: string[] | undefined;
779 IpcMode?: string | undefined;
780 Cgroup?: string | undefined;
781 Links?: any;
782 OomScoreAdj?: number | undefined;
783 PidMode?: string | undefined;
784 Privileged?: boolean | undefined;
785 PublishAllPorts?: boolean | undefined;
786 ReadonlyRootfs?: boolean | undefined;
787 SecurityOpt?: any;
788 StorageOpt?: { [option: string]: string } | undefined;
789 Tmpfs?: { [dir: string]: string } | undefined;
790 UTSMode?: string | undefined;
791 UsernsMode?: string | undefined;
792 ShmSize?: number | undefined;
793 Sysctls?: { [index: string]: string } | undefined;
794 Runtime?: string | undefined;
795 ConsoleSize?: number[] | undefined;
796 Isolation?: string | undefined;
797 MaskedPaths?: string[] | undefined;
798 ReadonlyPaths?: string[] | undefined;
799 CpuShares?: number | undefined;
800 CgroupParent?: string | undefined;
801 BlkioWeight?: number | undefined;
802 BlkioWeightDevice?: any;
803 BlkioDeviceReadBps?: any;
804 BlkioDeviceWriteBps?: any;
805 BlkioDeviceReadIOps?: any;
806 BlkioDeviceWriteIOps?: any;
807 CpuPeriod?: number | undefined;
808 CpuQuota?: number | undefined;
809 CpusetCpus?: string | undefined;
810 CpusetMems?: string | undefined;
811 Devices?: any;
812 DeviceCgroupRules?: string[] | undefined;
813 DeviceRequests?: DeviceRequest[] | undefined;
814 DiskQuota?: number | undefined;
815 KernelMemory?: number | undefined;
816 Memory?: number | undefined;
817 MemoryReservation?: number | undefined;
818 MemorySwap?: number | undefined;
819 MemorySwappiness?: number | undefined;
820 NanoCpus?: number | undefined;
821 OomKillDisable?: boolean | undefined;
822 Init?: boolean | undefined;
823 PidsLimit?: number | undefined;
824 Ulimits?: Ulimit[] | undefined;
825 CpuCount?: number | undefined;
826 CpuPercent?: number | undefined;
827 CpuRealtimePeriod?: number | undefined;
828 CpuRealtimeRuntime?: number | undefined;
829 }
830
831 interface ImageInspectInfo {
832 Id: string;
833 RepoTags: string[];
834 RepoDigests: string[];
835 Parent: string;
836 Comment: string;
837 Created: string;
838 Container: string;
839 ContainerConfig: {
840 Hostname: string;
841 Domainname: string;
842 User: string;
843 AttachStdin: boolean;
844 AttachStdout: boolean;
845 AttachStderr: boolean;
846 ExposedPorts: { [portAndProtocol: string]: {} };
847 Tty: boolean;
848 OpenStdin: boolean;
849 StdinOnce: boolean;
850 Env: string[];
851 Cmd: string[];
852 ArgsEscaped: boolean;
853 Image: string;
854 Volumes: { [path: string]: {} };
855 WorkingDir: string;
856 Entrypoint?: string | string[] | undefined;
857 OnBuild?: any[] | undefined;
858 Labels: { [label: string]: string };
859 };
860 DockerVersion: string;
861 Author: string;
862 Config: {
863 Hostname: string;
864 Domainname: string;
865 User: string;
866 AttachStdin: boolean;
867 AttachStdout: boolean;
868 AttachStderr: boolean;
869 ExposedPorts: { [portAndProtocol: string]: {} };
870 Tty: boolean;
871 OpenStdin: boolean;
872 StdinOnce: boolean;
873 Env: string[];
874 Cmd: string[];
875 ArgsEscaped: boolean;
876 Image: string;
877 Volumes: { [path: string]: {} };
878 WorkingDir: string;
879 Entrypoint?: string | string[] | undefined;
880 OnBuild: any[];
881 Labels: { [label: string]: string };
882 };
883 Architecture: string;
884 Os: string;
885 Size: number;
886 VirtualSize: number;
887 GraphDriver: {
888 Name: string;
889 Data: {
890 DeviceId: string;
891 DeviceName: string;
892 DeviceSize: string;
893 };
894 };
895 RootFS: {
896 Type: string;
897 Layers?: string[] | undefined;
898 BaseLayer?: string | undefined;
899 };
900 }
901
902 interface ImageBuildOptions {
903 authconfig?: AuthConfig | undefined;
904 registryconfig?: RegistryConfig | undefined;
905 abortSignal?: AbortSignal;
906
907 dockerfile?: string | undefined;
908 t?: string | undefined;
909 extrahosts?: string | undefined;
910 remote?: string | undefined;
911 q?: boolean | undefined;
912 cachefrom?: string | undefined;
913 pull?: string | undefined;
914 rm?: boolean | undefined;
915 forcerm?: boolean | undefined;
916 memory?: number | undefined;
917 memswap?: number | undefined;
918 cpushares?: number | undefined;
919 cpusetcpus?: number | undefined;
920 cpuperiod?: number | undefined;
921 cpuquota?: number | undefined;
922 buildargs?: { [key: string]: string } | undefined;
923 shmsize?: number | undefined;
924 squash?: boolean | undefined;
925 labels?: { [key: string]: string } | undefined;
926 networkmode?: string | undefined;
927 platform?: string | undefined;
928 target?: string | undefined;
929 outputs?: string | undefined;
930 nocache?: boolean | undefined;
931 }
932
933 interface ImageDistributionOptions {
934 authconfig?: AuthConfig | undefined;
935 abortSignal?: AbortSignal;
936 }
937
938 interface ImagePushOptions {
939 tag?: string | undefined;
940 authconfig?: AuthConfig | undefined;
941 abortSignal?: AbortSignal;
942 }
943
944 interface AuthConfig {
945 username: string;
946 password: string;
947 serveraddress: string;
948 email?: string | undefined;
949 }
950
951 interface RegistryConfig {
952 [registryAddress: string]: {
953 username: string;
954 password: string;
955 };
956 }
957
958 interface PortBinding {
959 HostIp?: string | undefined;
960 HostPort?: string | undefined;
961 }
962
963 interface PortMap {
964 [key: string]: PortBinding[];
965 }
966
967 interface HostRestartPolicy {
968 Name: string;
969 MaximumRetryCount?: number | undefined;
970 }
971
972 type LoggingDriverType =
973 | "json-file"
974 | "syslog"
975 | "journald"
976 | "gelf"
977 | "fluentd"
978 | "awslogs"
979 | "splunk"
980 | "etwlogs"
981 | "none";
982
983 interface LogConfig {
984 Type: LoggingDriverType;
985 Config?: { [key: string]: string } | undefined;
986 }
987
988 interface DeviceMapping {
989 PathOnHost: string;
990 PathInContainer: string;
991 CgroupPermissions: string;
992 }
993
994 interface DeviceRequest {
995 Driver?: string | undefined;
996 Count?: number | undefined;
997 DeviceIDs?: string[] | undefined;
998 Capabilities?: string[][] | undefined;
999 Options?: { [key: string]: string } | undefined;
1000 }
1001
1002 /* tslint:disable:interface-name */
1003 interface IPAMConfig {
1004 IPv4Address?: string | undefined;
1005 IPv6Address?: string | undefined;
1006 LinkLocalIPs?: string[] | undefined;
1007 }
1008 /* tslint:enable:interface-name */
1009
1010 interface EndpointSettings {
1011 IPAMConfig?: IPAMConfig | undefined;
1012 Links?: string[] | undefined;
1013 Aliases?: string[] | undefined;
1014 NetworkID?: string | undefined;
1015 EndpointID?: string | undefined;
1016 Gateway?: string | undefined;
1017 IPAddress?: string | undefined;
1018 IPPrefixLen?: number | undefined;
1019 IPv6Gateway?: string | undefined;
1020 GlobalIPv6Address?: string | undefined;
1021 GlobalIPV6PrefixLen?: number | undefined;
1022 MacAddress?: string | undefined;
1023 DriverOpts?: { [key: string]: string } | undefined;
1024 }
1025
1026 interface EndpointsConfig {
1027 [key: string]: EndpointSettings;
1028 }
1029
1030 interface ExecCreateOptions {
1031 AttachStdin?: boolean | undefined;
1032 AttachStdout?: boolean | undefined;
1033 AttachStderr?: boolean | undefined;
1034 DetachKeys?: string | undefined;
1035 Tty?: boolean | undefined;
1036 Env?: string[] | undefined;
1037 Cmd?: string[] | undefined;
1038 Privileged?: boolean | undefined;
1039 User?: string | undefined;
1040 WorkingDir?: string | undefined;
1041 abortSignal?: AbortSignal;
1042 }
1043
1044 interface ExecInspectInfo {
1045 CanRemove: boolean;
1046 DetachKeys: string;
1047 ID: string;
1048 Running: boolean;
1049 ExitCode: number | null;
1050 ProcessConfig: {
1051 privileged: boolean;
1052 user: string;
1053 tty: boolean;
1054 entrypoint: string;
1055 arguments: string[];
1056 };
1057 OpenStdin: boolean;
1058 OpenStderr: boolean;
1059 OpenStdout: boolean;
1060 ContainerID: string;
1061 Pid: number;
1062 }
1063
1064 interface ExecInspectOptions {
1065 abortSignal?: AbortSignal;
1066 }
1067
1068 interface ExecStartOptions {
1069 // hijack and stdin are used by docker-modem
1070 hijack?: boolean | undefined;
1071 stdin?: boolean | undefined;
1072 // Detach and Tty are used by Docker's API
1073 Detach?: boolean | undefined;
1074 Tty?: boolean | undefined;
1075 abortSignal?: AbortSignal;
1076 }
1077
1078 type MountType = "bind" | "volume" | "tmpfs";
1079
1080 type MountConsistency = "default" | "consistent" | "cached" | "delegated";
1081
1082 type MountPropagation = "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave";
1083
1084 interface MountSettings {
1085 Target: string;
1086 Source: string;
1087 Type: MountType;
1088 ReadOnly?: boolean | undefined;
1089 Consistency?: MountConsistency | undefined;
1090 BindOptions?:
1091 | {
1092 Propagation: MountPropagation;
1093 }
1094 | undefined;
1095 VolumeOptions?:
1096 | {
1097 NoCopy: boolean;
1098 Labels: { [label: string]: string };
1099 DriverConfig: {
1100 Name: string;
1101 Options: { [option: string]: string };
1102 };
1103 }
1104 | undefined;
1105 TmpfsOptions?:
1106 | {
1107 SizeBytes: number;
1108 Mode: number;
1109 }
1110 | undefined;
1111 }
1112
1113 type MountConfig = MountSettings[];
1114
1115 interface ContainerCreateOptions {
1116 name?: string | undefined;
1117 platform?: string | undefined;
1118 Hostname?: string | undefined;
1119 Domainname?: string | undefined;
1120 User?: string | undefined;
1121 AttachStdin?: boolean | undefined;
1122 AttachStdout?: boolean | undefined;
1123 AttachStderr?: boolean | undefined;
1124 Tty?: boolean | undefined;
1125 OpenStdin?: boolean | undefined;
1126 StdinOnce?: boolean | undefined;
1127 Env?: string[] | undefined;
1128 Cmd?: string[] | undefined;
1129 Entrypoint?: string | string[] | undefined;
1130 Image?: string | undefined;
1131 Labels?: { [label: string]: string } | undefined;
1132 Volumes?: { [volume: string]: {} } | undefined;
1133 WorkingDir?: string | undefined;
1134 NetworkDisabled?: boolean | undefined;
1135 MacAddress?: string | undefined;
1136 ExposedPorts?: { [port: string]: {} } | undefined;
1137 StopSignal?: string | undefined;
1138 StopTimeout?: number | undefined;
1139 Healthcheck?: HealthConfig | undefined;
1140 HostConfig?: HostConfig | undefined;
1141 NetworkingConfig?:
1142 | {
1143 EndpointsConfig?: EndpointsConfig | undefined;
1144 }
1145 | undefined;
1146 abortSignal?: AbortSignal;
1147 }
1148
1149 interface ContainerStartOptions {
1150 detachKeys?: string;
1151 abortSignal?: AbortSignal;
1152 }
1153
1154 interface ContainerRemoveOptions {
1155 v?: boolean | undefined;
1156 force?: boolean | undefined;
1157 link?: boolean | undefined;
1158 }
1159
1160 interface KeyObject {
1161 pem: string | Buffer;
1162 passphrase?: string | undefined;
1163 }
1164
1165 interface DockerOptions {
1166 socketPath?: string | undefined;
1167 host?: string | undefined;
1168 port?: number | string | undefined;
1169 username?: string | undefined;
1170 headers?: { [name: string]: string };
1171 ca?: string | string[] | Buffer | Buffer[] | undefined;
1172 cert?: string | string[] | Buffer | Buffer[] | undefined;
1173 key?: string | string[] | Buffer | Buffer[] | KeyObject[] | undefined;
1174 protocol?: "https" | "http" | "ssh" | undefined;
1175 timeout?: number | undefined;
1176 version?: string | undefined;
1177 sshAuthAgent?: string | undefined;
1178 Promise?: typeof Promise | undefined;
1179 }
1180
1181 interface GetEventsOptions {
1182 since?: number | undefined;
1183 until?: number | undefined;
1184 filters?:
1185 | string
1186 | {
1187 config?: string | undefined;
1188 container?: string[] | undefined;
1189 daemon?: string[] | undefined;
1190 event?: string[] | undefined;
1191 image?: string[] | undefined;
1192 label?: string[] | undefined;
1193 network?: string[] | undefined;
1194 node?: string[] | undefined;
1195 plugin?: string[] | undefined;
1196 scope?: Array<"local" | "swarm"> | undefined;
1197 secret?: string[] | undefined;
1198 service?: string[] | undefined;
1199 type?:
1200 | Array<
1201 | "container"
1202 | "image"
1203 | "volume"
1204 | "network"
1205 | "daemon"
1206 | "plugin"
1207 | "service"
1208 | "node"
1209 | "secret"
1210 | "config"
1211 >
1212 | undefined;
1213 volume?: string[] | undefined;
1214 }
1215 | undefined;
1216 abortSignal?: AbortSignal;
1217 }
1218
1219 interface SecretVersion {
1220 Index: number;
1221 }
1222
1223 interface Annotations {
1224 Name?: string | undefined;
1225 Labels?: { [name: string]: string } | undefined;
1226 }
1227
1228 interface ResourceLimits {
1229 NanoCPUs?: number | undefined;
1230 MemoryBytes?: number | undefined;
1231 Pids?: number | undefined;
1232 }
1233
1234 interface NamedGenericResource {
1235 Kind?: string | undefined;
1236 Value?: string | undefined;
1237 }
1238
1239 interface DiscreteGenericResource {
1240 Kind?: string | undefined;
1241 Value?: number | undefined;
1242 }
1243
1244 type GenericResource = NamedGenericResource | DiscreteGenericResource;
1245
1246 interface TaskRestartPolicy {
1247 Condition?: string | undefined;
1248 Delay?: number | undefined;
1249 MaxAttempts?: number | undefined;
1250 Window?: number | undefined;
1251 }
1252
1253 interface Resources {
1254 NanoCPUs?: number | undefined;
1255 MemoryBytes?: number | undefined;
1256 GenericResources?: GenericResource[] | undefined;
1257 }
1258
1259 interface ResourceRequirements {
1260 Limits?: ResourceLimits | undefined;
1261 Reservations?: Resources | undefined;
1262 }
1263
1264 interface Placement {
1265 Constraints?: string[] | undefined;
1266 Preferences?: Array<{ Spread: { SpreadDescriptor: string } }> | undefined;
1267 MaxReplicas?: number | undefined;
1268 Platforms?:
1269 | Array<{
1270 Architecture: string;
1271 OS: string;
1272 }>
1273 | undefined;
1274 }
1275
1276 interface NetworkAttachmentConfig {
1277 Target?: string | undefined;
1278 Aliases?: string[] | undefined;
1279 DriverOpts?: { [key: string]: string } | undefined;
1280 }
1281
1282 interface Privileges {
1283 CredentialSpec?:
1284 | {
1285 Config?: string | undefined;
1286 File?: string | undefined;
1287 Registry?: string | undefined;
1288 }
1289 | undefined;
1290 SELinuxContext?:
1291 | {
1292 Disable?: boolean | undefined;
1293 User?: string | undefined;
1294 Role?: string | undefined;
1295 Type?: string | undefined;
1296 Level?: string | undefined;
1297 }
1298 | undefined;
1299 }
1300
1301 interface HealthConfig {
1302 Test?: string[] | undefined;
1303 Interval?: number | undefined;
1304 Timeout?: number | undefined;
1305 StartPeriod?: number | undefined;
1306 Retries?: number | undefined;
1307 }
1308
1309 interface DNSConfig {
1310 Nameservers?: string[] | undefined;
1311 Search?: string[] | undefined;
1312 Options?: string[] | undefined;
1313 }
1314
1315 interface ConfigReference {
1316 File?:
1317 | {
1318 Name?: string | undefined;
1319 UID?: string | undefined;
1320 GID?: string | undefined;
1321 Mode: number | undefined;
1322 }
1323 | undefined;
1324 ConfigID?: string | undefined;
1325 ConfigName?: string | undefined;
1326 }
1327
1328 interface SecretReference {
1329 File?:
1330 | {
1331 Name?: string | undefined;
1332 UID?: string | undefined;
1333 GID?: string | undefined;
1334 Mode?: number | undefined;
1335 }
1336 | undefined;
1337 SecretID?: string | undefined;
1338 SecretName?: string | undefined;
1339 }
1340
1341 interface Ulimit {
1342 Name?: string | undefined;
1343 Hard?: number | undefined;
1344 Soft?: number | undefined;
1345 }
1346
1347 interface ContainerSpec {
1348 Image?: string | undefined;
1349 Labels?: { [label: string]: string } | undefined;
1350 Command?: string[] | undefined;
1351 Args?: string[] | undefined;
1352 Hostname?: string | undefined;
1353 Env?: string[] | undefined;
1354 Dir?: string | undefined;
1355 User?: string | undefined;
1356 Groups?: string[] | undefined;
1357 Privileges?: Privileges | undefined;
1358 Init?: boolean | undefined;
1359 TTY?: boolean | undefined;
1360 OpenStdin?: boolean | undefined;
1361 ReadOnly?: boolean | undefined;
1362 Mounts?: MountSettings[] | undefined;
1363 StopSignal?: string | undefined;
1364 StopGracePeriod?: number | undefined;
1365 HealthCheck?: HealthConfig | undefined;
1366 Hosts?: string[] | undefined;
1367 DNSConfig?: DNSConfig | undefined;
1368 Configs?: ConfigReference[] | 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;