the-moby-effect
Version:
Moby/Docker API client built using effect-ts
98 lines • 6.42 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 * as HttpApiSchema from "effect/unstable/httpapi/HttpApiSchema";
import { SwarmConfig, SwarmConfigSpec } from "../generated/index.ts";
import { ConfigIdentifier } from "../schemas/id.ts";
import { DockerError } from "./circular.ts";
import { BadRequest, Conflict, InternalServerError, NotFound } from "./errors.ts";
import { NodeNotPartOfSwarm } from "./swarm.ts";
/** @since 1.0.0 */
export declare const ListFilters: Schema.fromJsonString<Schema.Struct<{
readonly id: Schema.optional<Schema.$Array<Schema.brand<Schema.String, "ConfigId">>>;
readonly name: Schema.optional<Schema.$Array<Schema.String>>;
readonly names: Schema.optional<Schema.$Array<Schema.String>>;
readonly label: Schema.optional<Schema.$Array<Schema.String>>;
}>>;
/**
* Configs are application configurations that can be used by services. Swarm
* mode must be enabled for these endpoints to work.
*
* @since 1.0.0
* @category HttpApi
* @see https://docs.docker.com/reference/api/engine/latest/#tag/Config
*/
export declare const ConfigsApi: HttpApi.HttpApi<"ConfigsApi", HttpApiGroup.HttpApiGroup<"configs", HttpApiEndpoint.HttpApiEndpoint<"create", "POST", "/configs/create", never, never, Schema.toCodecJson<typeof SwarmConfigSpec>, never, Schema.toCodecJson<Schema.decodeTo<Schema.Struct<{
readonly Id: Schema.brand<Schema.String, "ConfigId">;
}>, Schema.Struct<{
readonly ID: Schema.toEncoded<Schema.brand<Schema.String, "ConfigId">>;
}>, never, never>>, Schema.toCodecJson<typeof Conflict | typeof InternalServerError | typeof NodeNotPartOfSwarm>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"delete", "DELETE", "/configs/:identifier", Schema.toCodecStringTree<Schema.Struct<{
identifier: Schema.brand<Schema.String, "ConfigId">;
}>>, never, never, never, Schema.toCodecJson<HttpApiSchema.NoContent>, Schema.toCodecJson<typeof NotFound | typeof InternalServerError | typeof NodeNotPartOfSwarm>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"inspect", "GET", "/configs/:identifier", Schema.toCodecStringTree<Schema.Struct<{
identifier: Schema.brand<Schema.String, "ConfigId">;
}>>, never, never, never, Schema.toCodecJson<typeof SwarmConfig>, Schema.toCodecJson<typeof NotFound | typeof InternalServerError | typeof NodeNotPartOfSwarm>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"list", "GET", "/configs/", never, Schema.toCodecStringTree<Schema.Struct<{
filters: Schema.optional<Schema.fromJsonString<Schema.Struct<{
readonly id: Schema.optional<Schema.$Array<Schema.brand<Schema.String, "ConfigId">>>;
readonly name: Schema.optional<Schema.$Array<Schema.String>>;
readonly names: Schema.optional<Schema.$Array<Schema.String>>;
readonly label: Schema.optional<Schema.$Array<Schema.String>>;
}>>>;
}>>, never, never, Schema.toCodecJson<Schema.$Array<typeof SwarmConfig>>, Schema.toCodecJson<typeof InternalServerError | typeof NodeNotPartOfSwarm>, never, never> | HttpApiEndpoint.HttpApiEndpoint<"update", "POST", "/configs/:identifier/update", Schema.toCodecStringTree<Schema.Struct<{
identifier: Schema.brand<Schema.String, "ConfigId">;
}>>, Schema.toCodecStringTree<Schema.Struct<{
version: Schema.BigIntFromString;
}>>, Schema.toCodecJson<typeof SwarmConfigSpec>, never, Schema.toCodecJson<Schema.Void>, Schema.toCodecJson<typeof BadRequest | typeof NotFound | typeof InternalServerError | typeof NodeNotPartOfSwarm>, never, never>, false>>;
declare const Configs_base: Context.ServiceClass<Configs, "@the-moby-effect/endpoints/Configs", {
list: (filters?: Schema.Schema.Type<typeof ListFilters> | undefined) => Effect.Effect<readonly SwarmConfig[], DockerError, never>;
create: (config: (typeof SwarmConfigSpec)["~type.make.in"]) => Effect.Effect<{
readonly Id: string & import("effect/Brand").Brand<"ConfigId">;
}, DockerError, never>;
inspect: (identifier: ConfigIdentifier) => Effect.Effect<SwarmConfig, DockerError, never>;
delete: (identifier: ConfigIdentifier) => Effect.Effect<void, DockerError, never>;
update: (identifier: ConfigIdentifier, version: bigint, config: (typeof SwarmConfigSpec)["~type.make.in"]) => Effect.Effect<void, DockerError, never>;
}> & {
readonly make: Effect.Effect<{
list: (filters?: Schema.Schema.Type<typeof ListFilters> | undefined) => Effect.Effect<readonly SwarmConfig[], DockerError, never>;
create: (config: (typeof SwarmConfigSpec)["~type.make.in"]) => Effect.Effect<{
readonly Id: string & import("effect/Brand").Brand<"ConfigId">;
}, DockerError, never>;
inspect: (identifier: ConfigIdentifier) => Effect.Effect<SwarmConfig, DockerError, never>;
delete: (identifier: ConfigIdentifier) => Effect.Effect<void, DockerError, never>;
update: (identifier: ConfigIdentifier, version: bigint, config: (typeof SwarmConfigSpec)["~type.make.in"]) => Effect.Effect<void, DockerError, never>;
}, never, HttpClient.HttpClient>;
};
/**
* Configs are application configurations that can be used by services. Swarm
* mode must be enabled for these endpoints to work.
*
* @since 1.0.0
* @category Services
* @see https://docs.docker.com/reference/api/engine/latest/#tag/Config
*/
export declare class Configs extends Configs_base {
}
/**
* Configs are application configurations that can be used by services. Swarm
* mode must be enabled for these endpoints to work.
*
* @since 1.0.0
* @category Layers
* @see https://docs.docker.com/reference/api/engine/latest/#tag/Config
*/
export declare const ConfigsLayer: Layer.Layer<Configs, never, HttpClient.HttpClient>;
/**
* Configs are application configurations that can be used by services. Swarm
* mode must be enabled for these endpoints to work.
*
* @since 1.0.0
* @category Layers
* @see https://docs.docker.com/reference/api/engine/latest/#tag/Config
*/
export declare const ConfigsLayerLocalSocket: Layer.Layer<Configs, never, HttpClient.HttpClient>;
export {};
//# sourceMappingURL=configs.d.ts.map