the-moby-effect
Version:
Moby/Docker API client built using effect-ts
254 lines • 10.2 kB
TypeScript
/**
* Docker engine.
*
* @since 1.0.0
*/
import type * as HttpClient from "@effect/platform/HttpClient";
import type * as Socket from "@effect/platform/Socket";
import type * as Effect from "effect/Effect";
import type * as ParseResult from "effect/ParseResult";
import type * as Scope from "effect/Scope";
import type * as Stream from "effect/Stream";
import type * as MobyConnection from "./MobyConnection.js";
import type * as MobySchemas from "./MobySchemas.js";
import * as Layer from "effect/Layer";
import * as MobyEndpoints from "./MobyEndpoints.js";
/**
* @since 1.0.0
* @category Layers
*/
export type DockerLayer = Layer.Layer<MobyEndpoints.Configs | MobyEndpoints.Containers | MobyEndpoints.Distributions | MobyEndpoints.Execs | MobyEndpoints.Images | MobyEndpoints.Networks | MobyEndpoints.Nodes | MobyEndpoints.Plugins | MobyEndpoints.Secrets | MobyEndpoints.Services | MobyEndpoints.Sessions | MobyEndpoints.Swarm | MobyEndpoints.Systems | MobyEndpoints.Tasks | MobyEndpoints.Volumes, never, never>;
/**
* @since 1.0.0
* @category Layers
*/
export type DockerLayerWithoutHttpClientOrWebsocketConstructor = Layer.Layer<Layer.Layer.Success<DockerLayer>, Layer.Layer.Error<DockerLayer>, Layer.Layer.Context<DockerLayer> | HttpClient.HttpClient | Socket.WebSocketConstructor>;
/**
* @since 1.0.0
* @category Layers
*/
export declare const layerWithoutHttpCLient: DockerLayerWithoutHttpClientOrWebsocketConstructor;
/**
* @since 1.0.0
* @category Layers
*/
export declare const layerNodeJS: (connectionOptions: MobyConnection.MobyConnectionOptions) => DockerLayer;
/**
* @since 1.0.0
* @category Layers
*/
export declare const layerBun: (connectionOptions: MobyConnection.MobyConnectionOptions) => DockerLayer;
/**
* @since 1.0.0
* @category Layers
*/
export declare const layerDeno: (connectionOptions: MobyConnection.MobyConnectionOptions) => DockerLayer;
/**
* @since 1.0.0
* @category Layers
*/
export declare const layerUndici: (connectionOptions: MobyConnection.MobyConnectionOptions) => DockerLayer;
/**
* @since 1.0.0
* @category Layers
*/
export declare const layerWeb: (connectionOptions: MobyConnection.HttpConnectionOptionsTagged | MobyConnection.HttpsConnectionOptionsTagged) => DockerLayer;
/**
* @since 1.0.0
* @category Layers
*/
export declare const layerFetch: (connectionOptions: MobyConnection.HttpConnectionOptionsTagged | MobyConnection.HttpsConnectionOptionsTagged) => DockerLayer;
/**
* @since 1.0.0
* @category Layers
*/
export declare const layerAgnostic: (connectionOptions: MobyConnection.HttpConnectionOptionsTagged | MobyConnection.HttpsConnectionOptionsTagged) => DockerLayerWithoutHttpClientOrWebsocketConstructor;
/**
* Implements the `docker build` command. It doesn't have all the flags that the
* images build endpoint exposes.
*
* @since 1.0.0
* @category Docker
*/
export declare const build: <E1>({ auth, buildArgs, context, dockerfile, platform, tag, }: {
tag: string;
auth?: string | undefined;
platform?: string | undefined;
dockerfile?: string | undefined;
context: Stream.Stream<Uint8Array, E1, never>;
buildArgs?: Record<string, string | undefined> | undefined;
}) => Stream.Stream<MobySchemas.JSONMessage, MobyEndpoints.ImagesError, MobyEndpoints.Images>;
/**
* Implements the `docker build` command as a scoped effect. When the scope is
* closed, the built image is removed. It doesn't have all the flags that the
* images build endpoint exposes.
*
* @since 1.0.0
* @category Docker
*/
export declare const buildScoped: <E1>({ auth, buildArgs, context, dockerfile, platform, tag, }: {
tag: string;
auth?: string | undefined;
platform?: string | undefined;
dockerfile?: string | undefined;
buildArgs?: Record<string, string | undefined> | undefined;
context: Stream.Stream<Uint8Array, E1, never>;
}) => Effect.Effect<Stream.Stream<MobySchemas.JSONMessage, MobyEndpoints.ImagesError, never>, never, Scope.Scope | MobyEndpoints.Images>;
/**
* Implements the `docker exec` command in a blocking fashion. Incompatible with
* web.
*
* @since 1.0.0
* @category Docker
*/
export declare const exec: ({ command, containerId, }: {
containerId: string;
command: string | Array<string>;
}) => Effect.Effect<readonly [exitCode: number, output: string], MobyEndpoints.ExecsError | Socket.SocketError | ParseResult.ParseError, MobyEndpoints.Execs>;
/**
* Implements the `docker exec` command in a non blocking fashion. Incompatible
* with web when not detached.
*
* @since 1.0.0
* @category Docker
*/
export declare const execNonBlocking: <T extends boolean | undefined = undefined>({ command, containerId, detach, }: {
detach?: T;
containerId: string;
command: string | Array<string>;
}) => Effect.Effect<[socket: T extends true ? void : import("./MobyDemux.js").RawSocket | import("./MobyDemux.js").MultiplexedSocket, execId: string], MobyEndpoints.ExecsError, MobyEndpoints.Execs>;
/**
* Implements the `docker exec` command in a blocking fashion with websockets as
* the underlying transport instead of the docker engine exec apis so that is
* can be compatible with web.
*
* @since 1.0.0
* @category Docker
*/
export declare const execWebsockets: ({ command, containerId, }: {
command: string | Array<string>;
containerId: string;
}) => Effect.Effect<readonly [stdout: string, stderr: string], MobyEndpoints.ContainersError | Socket.SocketError | ParseResult.ParseError, MobyEndpoints.Containers>;
/**
* Implements the `docker exec` command in a non blocking fashion with
* websockets as the underlying transport instead of the docker engine exec apis
* so that is can be compatible with web.
*
* @since 1.0.0
* @category Docker
*/
export declare const execWebsocketsNonBlocking: ({ command, containerId, }: {
command: string | Array<string>;
containerId: string;
}) => Effect.Effect<import("./MobyDemux.js").MultiplexedChannel<never, Socket.SocketError | MobyEndpoints.ContainersError, never>, never, MobyEndpoints.Containers>;
/**
* Implements the `docker images` command.
*
* @since 1.0.0
* @category Docker
*/
export declare const images: (options?: Parameters<MobyEndpoints.Images["list"]>[0]) => Effect.Effect<ReadonlyArray<MobySchemas.ImageSummary>, MobyEndpoints.ImagesError, MobyEndpoints.Images>;
/**
* Implements the `docker info` command.
*
* @since 1.0.0
* @category Docker
*/
export declare const info: () => Effect.Effect<Readonly<MobySchemas.SystemInfoResponse>, MobyEndpoints.SystemsError, MobyEndpoints.Systems>;
/**
* Implements the `docker ping` command.
*
* @since 1.0.0
* @category Docker
*/
export declare const ping: () => Effect.Effect<"OK", MobyEndpoints.SystemsError, MobyEndpoints.Systems>;
/**
* Implements the `docker ping` command.
*
* @since 1.0.0
* @category Docker
*/
export declare const pingHead: () => Effect.Effect<void, MobyEndpoints.SystemsError, MobyEndpoints.Systems>;
/**
* Implements the `docker ps` command.
*
* @since 1.0.0
* @category Docker
*/
export declare const ps: (options?: Parameters<MobyEndpoints.Containers["list"]>[0]) => Effect.Effect<ReadonlyArray<MobySchemas.ContainerListResponseItem>, MobyEndpoints.ContainersError, MobyEndpoints.Containers>;
/**
* Implements the `docker pull` command. It does not have all the flags that the
* images create endpoint exposes.
*
* @since 1.0.0
* @category Docker
*/
export declare const pull: ({ auth, image, platform, }: {
image: string;
auth?: string | undefined;
platform?: string | undefined;
}) => Stream.Stream<MobySchemas.JSONMessage, MobyEndpoints.ImagesError, MobyEndpoints.Images>;
/**
* Implements the `docker pull` command as a scoped effect. When the scope is
* closed, the pulled image is removed. It doesn't have all the flag =
* internalDocker.flags that the images create endpoint exposes.
*
* @since 1.0.0
* @category Docker
*/
export declare const pullScoped: ({ auth, image, platform, }: {
image: string;
auth?: string | undefined;
platform?: string | undefined;
}) => Effect.Effect<Stream.Stream<MobySchemas.JSONMessage, MobyEndpoints.ImagesError, never>, never, MobyEndpoints.Images | Scope.Scope>;
/**
* Implements the `docker push` command.
*
* @since 1.0.0
* @category Docker
*/
export declare const push: (options: Parameters<MobyEndpoints.Images["push"]>[0]) => Stream.Stream<string, MobyEndpoints.ImagesError, MobyEndpoints.Images>;
/**
* Implements `docker run` command.
*
* @since 1.0.0
* @category Docker
*/
export declare const run: (containerOptions: Parameters<MobyEndpoints.Containers["create"]>[0]) => Effect.Effect<MobySchemas.ContainerInspectResponse, MobyEndpoints.ContainersError, MobyEndpoints.Containers>;
/**
* Implements `docker run` command as a scoped effect. When the scope is closed,
* both the image and the container is removed = internalDocker.removed.
*
* @since 1.0.0
* @category Docker
*/
export declare const runScoped: (containerOptions: Parameters<MobyEndpoints.Containers["create"]>[0]) => Effect.Effect<MobySchemas.ContainerInspectResponse, MobyEndpoints.ContainersError, Scope.Scope | MobyEndpoints.Containers>;
/**
* Implements the `docker search` command.
*
* @since 1.0.0
* @category Docker
*/
export declare const search: (options: Parameters<MobyEndpoints.Images["search"]>[0]) => Effect.Effect<ReadonlyArray<MobySchemas.RegistrySearchResponse>, MobyEndpoints.ImagesError, MobyEndpoints.Images>;
/**
* Implements the `docker start` command.
*
* @since 1.0.0
* @category Docker
*/
export declare const start: (containerId: string) => Effect.Effect<void, MobyEndpoints.ContainersError, MobyEndpoints.Containers>;
/**
* Implements the `docker stop` command.
*
* @since 1.0.0
* @category Docker
*/
export declare const stop: (containerId: string) => Effect.Effect<void, MobyEndpoints.ContainersError, MobyEndpoints.Containers>;
/**
* Implements the `docker version` command.
*
* @since 1.0.0
* @category Docker
*/
export declare const version: () => Effect.Effect<Readonly<MobySchemas.SystemVersionResponse>, MobyEndpoints.SystemsError, MobyEndpoints.Systems>;
//# sourceMappingURL=DockerEngine.d.ts.map