1import type * as imagebuilder from "@distilled.cloud/aws/imagebuilder";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { ImagePipeline } from "./ImagePipeline.ts";
5
6/**
7 * Runtime binding for `imagebuilder:GetImagePipeline`.
8 *
9 * Reads the bound {@link ImagePipeline}'s current configuration and state —
10 * schedule, status, recipe/infrastructure wiring, and the timestamps of the
11 * latest and next scheduled runs. The pipeline's ARN is injected from the
12 * binding. Provide the implementation with
13 * `Effect.provide(AWS.ImageBuilder.GetImagePipelineHttp)`.
14 * ### Observing Pipelines
15 * **Example:** Read the Bound Pipeline's State
16 * ```typescript
17 * // init — bind the operation to the pipeline
18 * const getPipeline = yield* AWS.ImageBuilder.GetImagePipeline(pipeline);
19 *
20 * // runtime
21 * const { imagePipeline } = yield* getPipeline();
22 * yield* Effect.log(
23 * `${imagePipeline?.name}: ${imagePipeline?.status}, last run ${imagePipeline?.dateLastRun}`,
24 * );
25 * ```
26 *
27 * @binding
28 */
29export interface GetImagePipeline extends Binding.Service<
30 GetImagePipeline,
31 "AWS.ImageBuilder.GetImagePipeline",
32 (
33 pipeline: ImagePipeline,
34 ) => Effect.Effect<
35 () => Effect.Effect<
36 imagebuilder.GetImagePipelineResponse,
37 imagebuilder.GetImagePipelineError
38 >
39 >
40> {}
41export const GetImagePipeline = Binding.Service<GetImagePipeline>(
42 "AWS.ImageBuilder.GetImagePipeline",
43);