// Type definitions for dockerode 2.3 // Project: https://github.com/apocas/dockerode // Definitions by: Carl Winkler // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// import * as stream from 'stream'; import * as events from 'events'; declare namespace Dockerode { interface Container { inspect(options: {}, callback: Callback): void; inspect(callback: Callback): void; inspect(options?: {}): { id: string }; rename(options: {}, callback: Callback): void; update(options: {}, callback: Callback): void; top(options: {}, callback: Callback): void; top(callback: Callback): void; changes(callback: Callback): void; export(callback: Callback): void; start(options: {}, callback: Callback): void; start(callback: Callback): void; pause(options: {}, callback: Callback): void; pause(callback: Callback): void; unpause(options: {}, callback: Callback): void; unpause(callback: Callback): void; exec(options: {}, callback: Callback): void; commit(options: {}, callback: Callback): void; commit(callback: Callback): void; stop(options: {}, callback: Callback): void; stop(callback: Callback): void; restart(options: {}, callback: Callback): void; restart(callback: Callback): void; kill(options: {}, callback: Callback): void; kill(callback: Callback): void; resize(options: {}, callback: Callback): void; resize(callback: Callback): void; wait(callback: Callback): void; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; /** Deprecated since RAPI v1.20 */ copy(options: {}, callback: Callback): void; /** Deprecated since RAPI v1.20 */ copy(callback: Callback): void; getArchive(options: {}, callback: Callback): void; infoArchive(options: {}, callback: Callback): void; /** @param file Filename (will read synchronously), Buffer or stream */ putArchive(file: string | Buffer | NodeJS.ReadableStream, options: {}, callback: Callback): void; logs(options: { stdout?: boolean, stderr?: boolean, follow?: boolean, since?: number, details?: boolean, tail?: number, timestamps?: boolean }, callback: Callback): void; logs(callback: Callback): void; stats(options: {}, callback: Callback): void; stats(callback: Callback): void; attach(options: {}, callback: Callback): void; modem: any; id?: string; } interface Image { inspect(callback: Callback): void; history(callback: Callback): void; get(callback: Callback): void; push(options: {}, callback: Callback): void; push(callback: Callback): void; tag(options: {}, callback: Callback): void; tag(callback: Callback): void; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; modem: any; id?: string; } interface Volume { inspect(callback: Callback): void; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; modem: any; name?: string; } interface Service { inspect(callback: Callback): void; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; update(options: {}, callback: Callback): void; modem: any; id?: string; } interface Task { inspect(callback: Callback): void; modem: any; id?: string; } interface Node { inspect(callback: Callback): void; modem: any; id?: string; } interface Network { inspect(callback: Callback): void; remove(options: {}, callback: Callback): void; remove(callback: Callback): void; connect(options: {}, callback: Callback): void; connect(callback: Callback): void; disconnect(options: {}, callback: Callback): void; disconnect(callback: Callback): void; modem: any; id?: string; } interface Exec { inspect(callback: Callback): void; start(options: {}, callback: Callback): void; resize(options: {}, callback: Callback): void; modem: any; id?: string; } interface ImageInfo { Id: string; ParentId: string; RepoTags: string[]; RepoDigests?: string[]; Created: number; Size: number; VirtualSize: number; Labels: { [label: string]: string }; } interface ContainerInfo { Id: string; Names: string[]; Image: string; ImageID: string; Command: string; Created: number; Ports: Port[]; Labels: { [label: string]: string }; State: string; Status: string; HostConfig: { NetworkMode: string; }; NetworkSettings: { Networks: { [networkType: string]: NetworkInfo } }; } interface Port { IP: string; PrivatePort: number; PublicPort: number; Type: string; } interface NetworkInfo { IPAMConfig?: any; Links?: any; Aliases?: any; NetworkID: string; EndpointID: string; Gateway: string; IPAddress: string; IPPrefixLen: number; IPv6Gateway: string; GlobalIPv6Address: string; GlobalIPv6PrefixLen: number; MacAddress: string; } interface ContainerInspectInfo { Id: string; Created: string; Path: string; Args: string[]; State: { Status: string; Running: boolean; Paused: boolean; Restarting: boolean; OOMKilled: boolean; Dead: boolean; Pid: number; ExitCode: number; Error: string; StartedAt: string; FinishedAt: string; }; Image: string; ResolvConfPath: string; HostnamePath: string; HostsPath: string; LogPath: string; Name: string; RestartCount: number; Driver: string; MountLabel: string; ProcessLabel: string; AppArmorProfile: string; ExecIDs?: any; HostConfig: HostConfig; GraphDriver: { Name: string; Data: { DeviceId: string; DeviceName: string; DeviceSize: string; } }; Mounts: Array<{ Source: string; Destination: string; Mode: string; RW: boolean; Propagation: string; }>; Config: { Hostname: string; Domainname: string; User: string; AttachStdin: boolean; AttachStdout: boolean; AttachStderr: boolean; ExposedPorts: { [portAndProtocol: string]: {} }; Tty: boolean; OpenStdin: boolean; StdinOnce: boolean; Env: string[]; Cmd: string[]; Image: string; Volumes: { [volume: string]: {} }; WorkingDir: string; Entrypoint?: any; OnBuild?: any; Labels: { [label: string]: string } }; NetworkSettings: { Bridge: string; SandboxID: string; HairpinMode: boolean; LinkLocalIPv6Address: string; LinkLocalIPv6PrefixLen: number; Ports: { [portAndProtocol: string]: { HostIp: string; HostPort: string; } }; SandboxKey: string; SecondaryIPAddresses?: any; SecondaryIPv6Addresses?: any; EndpointID: string; Gateway: string; GlobalIPv6Address: string; GlobalIPv6PrefixLen: number; IPAddress: string; IPPrefixLen: number; IPv6Gateway: string; MacAddress: string; Networks: { [type: string]: { IPAMConfig?: any; Links?: any; Aliases?: any; NetworkID: string; EndpointID: string; Gateway: string; IPAddress: string; IPPrefixLen: number; IPv6Gateway: string; GlobalIPv6Address: string; GlobalIPv6PrefixLen: number; MacAddress: string; } } }; } interface HostConfig { Binds: string[]; ContainerIDFile: string; LogConfig: { Type: string; Config: any; }; NetworkMode: string; PortBindings?: any; RestartPolicy: { Name: string; MaximumRetryCount: number; }; VolumeDriver: string; VolumesFrom?: any; CapAdd?: any; CapDrop?: any; Dns: any[]; DnsOptions: any[]; DnsSearch: any[]; ExtraHosts?: any; IpcMode: string; Links?: any; OomScoreAdj: number; PidMode: string; Privileged: boolean; PublishAllPorts: boolean; ReadonlyRootfs: boolean; SecurityOpt?: any; UTSMode: string; ShmSize: number; ConsoleSize: number[]; Isolation: string; CpuShares: number; CgroupParent: string; BlkioWeight: number; BlkioWeightDevice?: any; BlkioDeviceReadBps?: any; BlkioDeviceWriteBps?: any; BlkioDeviceReadIOps?: any; BlkioDeviceWriteIOps?: any; CpuPeriod: number; CpuQuota: number; CpusetCpus: string; CpusetMems: string; Devices?: any; KernelMemory: number; Memory: number; MemoryReservation: number; MemorySwap: number; MemorySwappiness: number; OomKillDisable: boolean; PidsLimit: number; Ulimits?: any; } interface ImageInspectInfo { Id: string; RepoTags: string[]; RepoDigests: string[]; Parent: string; Comment: string; Created: string; Container: string; ContainerConfig: { Hostname: string; Domainname: string; User: string; AttachStdin: boolean; AttachStdout: boolean; AttachStderr: boolean; ExposedPorts: { [portAndProtocol: string]: {} }; Tty: boolean; OpenStdin: boolean; StdinOnce: boolean; Env: string[]; Cmd: string[]; ArgsEscaped: boolean; Image: string; Volumes: { [path: string]: {} }, WorkingDir: string; Entrypoint?: any; OnBuild?: any[]; Labels: { [label: string]: string } }; DockerVersion: string; Author: string; Config: { Hostname: string; Domainname: string; User: string; AttachStdin: boolean; AttachStdout: boolean; AttachStderr: boolean; ExposedPorts: { [portAndProtocol: string]: {} } Tty: boolean; OpenStdin: boolean; StdinOnce: boolean; Env: string[]; Cmd: string[]; ArgsEscaped: boolean; Image: string; Volumes: { [path: string]: {} }, WorkingDir: string; Entrypoint?: any; OnBuild: any[]; Labels: { [label: string]: string } }; Architecture: string; Os: string; Size: number; VirtualSize: number; GraphDriver: { Name: string; Data: { DeviceId: string; DeviceName: string; DeviceSize: string; } }; } interface ContainerCreateOptions { name?: string; Hostname?: string; Domainname?: string; User?: string; AttachStdin?: boolean; AttachStdout?: boolean; AttachStderr?: boolean; Tty?: boolean; OpenStdin?: boolean; StdinOnce?: boolean; Env?: string[]; Cmd?: string[]; Entrypoint?: string; Image?: string; Labels?: { [label: string]: string }; Volumes?: { [volume: string]: {} }; WorkingDir?: string; NetworkDisabled?: boolean; MacAddress?: boolean; ExposedPorts?: { [port: string]: {} }; StopSignal?: string; HostConfig?: { Binds?: string[]; Links?: string[]; Memory?: number; MemorySwap?: number; MemoryReservation?: number; KernelMemory?: number; CpuPercent?: number; CpuShares?: number; CpuPeriod?: number; CpuQuota?: number; CpusetMems?: string; MaximumIOps?: number; MaxmimumIOBps?: number; BlkioWeightDevice?: Array<{}>; BlkioDeviceReadBps?: Array<{}>; BlkioDeviceReadIOps?: Array<{}>; BlkioDeviceWriteBps?: Array<{}>; BlkioDeviceWriteIOps?: Array<{}>; MemorySwappiness?: number; OomKillDisable?: boolean; OomScoreAdj?: number; PidMode?: string; PidsLimit?: number; PortBindings?: { [portAndProtocol: string]: Array<{ [index: string]: string }> }; PublishAllPorts?: boolean; Privileged?: boolean; ReadonlyRootfs?: boolean; Dns?: string[]; DnsOptions?: string[]; DnsSearch?: string[]; ExtraHosts?: any; VolumesFrom?: string[]; CapAdd?: string[]; CapDrop?: string[]; GroupAdd?: string[]; RestartPolicy?: { [index: string]: number | string }; NetworkMode?: string; Devices?: any[]; Sysctls?: { [index: string]: string }; Ulimits?: Array<{}>; LogConfig?: { [index: string]: string | {} }; SecurityOpt?: { [index: string]: any }; CgroupParent?: string; VolumeDriver?: string; ShmSize?: number; }; NetworkingConfig?: { EndpointsConfig?: { [index: string]: any; isolated_nw?: { [index: string]: any; IPAMConfig?: { IPv4Address?: string; IPv6Adress?: string; LinkLocalIPs?: string[]; } Links?: string[]; Aliases?: string[]; } } }; } interface DockerOptions { socketPath?: string; host?: string; port?: number; ca?: string; cert?: string; key?: string; protocol?: "https" | "http"; timeout?: number; } } type Callback = (error?: any, result?: T) => void; declare class Dockerode { constructor(options?: Dockerode.DockerOptions); createContainer(options: Dockerode.ContainerCreateOptions, callback: Callback): void; createImage(options: {}, callback: Callback): void; createImage(auth: any, options: {}, callback: Callback): void; loadImage(file: string, options: {}, callback: Callback): void; loadImage(file: string, callback: Callback): void; importImage(file: string, options: {}, callback: Callback): void; importImage(file: string, callback: Callback): void; checkAuth(options: any, callback: Callback): void; buildImage(file: string | NodeJS.ReadableStream, options: {}, callback: Callback): void; buildImage(file: string | NodeJS.ReadableStream, callback: Callback): void; getContainer(id: string): Dockerode.Container; getImage(name: string): Dockerode.Image; getVolume(name: string): Dockerode.Volume; getService(id: string): Dockerode.Service; getTask(id: string): Dockerode.Task; getNode(id: string): Dockerode.Node; getNetwork(id: string): Dockerode.Network; getExec(id: string): Dockerode.Exec; listContainers(options: {}, callback: Callback): void; listContainers(callback: Callback): void; listImages(options: {}, callback: Callback): void; listImages(callback: Callback): void; listServices(options: {}, callback: Callback): void; listServices(callback: Callback): void; listNodes(options: {}, callback: Callback): void; listNodes(callback: Callback): void; listTasks(options: {}, callback: Callback): void; listTasks(callback: Callback): void; listVolumes(options: {}, callback: Callback): void; listVolumes(callback: Callback): void; listNetworks(options: {}, callback: Callback): void; listNetworks(callback: Callback): void; createVolume(options: {}, callback: Callback): void; createService(options: {}, callback: Callback): void; createNetwork(options: {}, callback: Callback): void; searchImages(options: {}, callback: Callback): void; info(callback: Callback): void; version(callback: Callback): void; ping(callback: Callback): void; getEvents(options: {}, callback: Callback): void; getEvents(callback: Callback): void; pull(repoTag: string, options: {}, callback: Callback, auth?: {}): Dockerode.Image; run(image: string, cmd: string[], outputStream: NodeJS.WritableStream, createOptions: {}, startOptions: {}, callback: Callback): events.EventEmitter; run(image: string, cmd: string[], outputStream: NodeJS.WritableStream, startOptions: {}, callback: Callback): events.EventEmitter; run(image: string, cmd: string[], outputStream: NodeJS.WritableStream, callback: Callback): events.EventEmitter; run(image: string, cmd: string[], outputStream: NodeJS.WritableStream, createOptions: {}, callback: Callback): events.EventEmitter; swarmInit(options: {}, callback: Callback): void; swarmJoin(options: {}, callback: Callback): void; swarmLeave(options: {}, callback: Callback): void; swarmUpdate(options: {}, callback: Callback): void; modem: any; } export = Dockerode;