1import type * as osis from "@distilled.cloud/aws/osis";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `osis:ValidatePipeline`.
7 *
8 * Checks whether a Data Prepper pipeline configuration body is valid prior to
9 * creation — the building block of config-authoring tooling (validate a
10 * generated configuration before calling `CreatePipeline`, or lint
11 * user-submitted configs in a self-service portal). Account-level: no
12 * resource argument. Provide the implementation with
13 * `Effect.provide(AWS.OSIS.ValidatePipelineHttp)`.
14 * ### Authoring Pipeline Configurations
15 * **Example:** Validate a Configuration Body
16 * ```typescript
17 * // init — account-level binding, no resource argument
18 * const validatePipeline = yield* AWS.OSIS.ValidatePipeline();
19 *
20 * // runtime
21 * const { isValid, Errors } = yield* validatePipeline({
22 * PipelineConfigurationBody: configYaml,
23 * });
24 * if (!isValid) {
25 * yield* Effect.logError(Errors?.map((e) => e.Message).join("\n") ?? "");
26 * }
27 * ```
28 *
29 * @binding
30 */
31export interface ValidatePipeline extends Binding.Service<
32 ValidatePipeline,
33 "AWS.OSIS.ValidatePipeline",
34 () => Effect.Effect<
35 (
36 request: osis.ValidatePipelineRequest,
37 ) => Effect.Effect<
38 osis.ValidatePipelineResponse,
39 osis.ValidatePipelineError
40 >
41 >
42> {}
43export const ValidatePipeline = Binding.Service<ValidatePipeline>(
44 "AWS.OSIS.ValidatePipeline",
45);