1import type * as SVC from "@distilled.cloud/aws/codebuild";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Project } from "./Project.ts";
5
6/**
7 * Runtime binding for `codebuild:BatchGetBuilds` — reads the status of one
8 * or more builds by id (the ids returned from {@link StartBuild}). Bind it
9 * to the project whose builds you poll.
10 * ### Polling Builds
11 * **Example:** Poll a Build to Completion
12 * ```typescript
13 * const batchGetBuilds = yield* AWS.CodeBuild.BatchGetBuilds(project);
14 *
15 * const { builds } = yield* batchGetBuilds({ ids: [buildId] });
16 * const status = builds?.[0]?.buildStatus; // IN_PROGRESS | SUCCEEDED | FAILED | ...
17 * ```
18 *
19 * @binding
20 */
21export interface BatchGetBuilds extends Binding.Service<
22 BatchGetBuilds,
23 "AWS.CodeBuild.BatchGetBuilds",
24 <P extends Project>(
25 project: P,
26 ) => Effect.Effect<
27 (
28 request: SVC.BatchGetBuildsInput,
29 ) => Effect.Effect<SVC.BatchGetBuildsOutput, SVC.BatchGetBuildsError>
30 >
31> {}
32export const BatchGetBuilds = Binding.Service<BatchGetBuilds>(
33 "AWS.CodeBuild.BatchGetBuilds",
34);