the-moby-effect
Version:
Moby/Docker API client built using effect-ts
110 lines • 6.97 kB
TypeScript
import * as Context from "effect/Context";
import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
import * as Schema from "effect/Schema";
import * as HttpClient from "effect/unstable/http/HttpClient";
import * as HttpApi from "effect/unstable/httpapi/HttpApi";
import * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint";
import * as HttpApiGroup from "effect/unstable/httpapi/HttpApiGroup";
import { SwarmSwarm as SwarmData, SwarmInitRequest, SwarmJoinRequest, SwarmSpec } from "../generated/index.ts";
import { DockerError } from "./circular.ts";
import { BadRequest, InternalServerError, NotFound } from "./errors.ts";
declare const NodeNotPartOfSwarm_base: Schema.Class<NodeNotPartOfSwarm, Schema.Struct<{
readonly _tag: Schema.withDecodingDefaultKey<Schema.tag<"NodeNotPartOfSwarm">, never>;
readonly message: Schema.optionalKey<Schema.String>;
}>, import("effect/Cause").YieldableError>;
/** @since 1.0.0 */
export declare class NodeNotPartOfSwarm extends NodeNotPartOfSwarm_base {
}
declare const NodeAlreadyPartOfSwarm_base: Schema.Class<NodeAlreadyPartOfSwarm, Schema.Struct<{
readonly _tag: Schema.withDecodingDefaultKey<Schema.tag<"NodeAlreadyPartOfSwarm">, never>;
readonly message: Schema.optionalKey<Schema.String>;
}>, import("effect/Cause").YieldableError>;
/** @since 1.0.0 */
export declare class NodeAlreadyPartOfSwarm extends NodeAlreadyPartOfSwarm_base {
}
/**
* Engines can be clustered together in a swarm. Refer to the swarm mode
* documentation for more information.
*
* @since 1.0.0
* @category HttpApi
* @see https://docs.docker.com/reference/api/engine/latest/#tag/Swarm
*/
export declare const SwarmApi: HttpApi.HttpApi<"SwarmApi", HttpApiGroup.HttpApiGroup<"swarm", HttpApiEndpoint.HttpApiEndpoint<"init", "POST", "/swarm/init", never, never, Schema.toCodecJson<typeof SwarmInitRequest>, never, Schema.toCodecJson<Schema.String>, Schema.toCodecJson<typeof BadRequest | typeof InternalServerError | typeof NodeAlreadyPartOfSwarm>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"inspect", "GET", "/swarm/", never, never, never, never, Schema.toCodecJson<typeof SwarmData>, Schema.toCodecJson<typeof NotFound | typeof InternalServerError | typeof NodeNotPartOfSwarm>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"join", "POST", "/swarm/join", never, never, Schema.toCodecJson<typeof SwarmJoinRequest>, never, Schema.toCodecJson<Schema.Void>, Schema.toCodecJson<typeof BadRequest | typeof InternalServerError | typeof NodeAlreadyPartOfSwarm>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"leave", "POST", "/swarm/leave", never, Schema.toCodecStringTree<Schema.Struct<{
force: Schema.optional<Schema.Boolean>;
}>>, never, never, Schema.toCodecJson<Schema.Void>, Schema.toCodecJson<typeof InternalServerError | typeof NodeNotPartOfSwarm>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"unlock", "POST", "/swarm/unlock", never, never, Schema.toCodecJson<Schema.Struct<{
readonly UnlockKey: Schema.String;
}>>, never, Schema.toCodecJson<Schema.Void>, Schema.toCodecJson<typeof InternalServerError | typeof NodeNotPartOfSwarm>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"unlockkey", "GET", "/swarm/unlockkey", never, never, never, never, Schema.toCodecJson<Schema.Struct<{
readonly UnlockKey: Schema.String;
}>>, Schema.toCodecJson<typeof InternalServerError | typeof NodeNotPartOfSwarm>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"update", "POST", "/swarm/update", never, Schema.toCodecStringTree<Schema.Struct<{
version: Schema.BigIntFromString;
rotateWorkerToken: Schema.optional<Schema.Boolean>;
rotateManagerToken: Schema.optional<Schema.Boolean>;
rotateManagerUnlockKey: Schema.optional<Schema.Boolean>;
}>>, Schema.toCodecJson<typeof SwarmSpec>, never, Schema.toCodecJson<Schema.Void>, Schema.toCodecJson<typeof BadRequest | typeof InternalServerError | typeof NodeNotPartOfSwarm>, never, never>, false>>;
declare const Swarm_base: Context.ServiceClass<Swarm, "@the-moby-effect/endpoints/Swarm", {
inspect: () => Effect.Effect<SwarmData, DockerError, never>;
init: (payload: (typeof SwarmInitRequest)["~type.make.in"]) => Effect.Effect<string, DockerError, never>;
join: (payload: (typeof SwarmJoinRequest)["~type.make.in"]) => Effect.Effect<void, DockerError, never>;
leave: (options?: {
force?: boolean | undefined;
} | undefined) => Effect.Effect<void, DockerError, never>;
update: (spec: (typeof SwarmSpec)["~type.make.in"], version: bigint, rotate?: {
readonly rotateWorkerToken?: boolean | undefined;
readonly rotateManagerToken?: boolean | undefined;
readonly rotateManagerUnlockKey?: boolean | undefined;
} | undefined) => Effect.Effect<void, DockerError, never>;
unlockkey: () => Effect.Effect<{
readonly UnlockKey: string;
}, DockerError, never>;
unlock: (unlockKey: string) => Effect.Effect<void, DockerError, never>;
}> & {
readonly make: Effect.Effect<{
inspect: () => Effect.Effect<SwarmData, DockerError, never>;
init: (payload: (typeof SwarmInitRequest)["~type.make.in"]) => Effect.Effect<string, DockerError, never>;
join: (payload: (typeof SwarmJoinRequest)["~type.make.in"]) => Effect.Effect<void, DockerError, never>;
leave: (options?: {
force?: boolean | undefined;
} | undefined) => Effect.Effect<void, DockerError, never>;
update: (spec: (typeof SwarmSpec)["~type.make.in"], version: bigint, rotate?: {
readonly rotateWorkerToken?: boolean | undefined;
readonly rotateManagerToken?: boolean | undefined;
readonly rotateManagerUnlockKey?: boolean | undefined;
} | undefined) => Effect.Effect<void, DockerError, never>;
unlockkey: () => Effect.Effect<{
readonly UnlockKey: string;
}, DockerError, never>;
unlock: (unlockKey: string) => Effect.Effect<void, DockerError, never>;
}, never, HttpClient.HttpClient>;
};
/**
* Engines can be clustered together in a swarm. Refer to the swarm mode
* documentation for more information.
*
* @since 1.0.0
* @category Services
* @see https://docs.docker.com/reference/api/engine/latest/#tag/Swarm
*/
export declare class Swarm extends Swarm_base {
}
/**
* Engines can be clustered together in a swarm. Refer to the swarm mode
* documentation for more information.
*
* @since 1.0.0
* @category Layers
* @see https://docs.docker.com/reference/api/engine/latest/#tag/Swarm
*/
export declare const SwarmLayer: Layer.Layer<Swarm, never, HttpClient.HttpClient>;
/**
* Engines can be clustered together in a swarm. Refer to the swarm mode
* documentation for more information.
*
* @since 1.0.0
* @category Layers
* @see https://docs.docker.com/reference/api/engine/latest/#tag/Swarm
*/
export declare const SwarmLayerLocalSocket: Layer.Layer<Swarm, never, HttpClient.HttpClient>;
export {};
//# sourceMappingURL=swarm.d.ts.map