1import type * as SVC from "@distilled.cloud/aws/codedeploy";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Application } from "./Application.ts";
5
6export interface RegisterApplicationRevisionRequest extends Omit<
7 SVC.RegisterApplicationRevisionInput,
8 "applicationName"
9> {}
10
11/**
12 * Runtime binding for `codedeploy:RegisterApplicationRevision` — registers
13 * a revision (S3 bundle or inline AppSpec) with the bound application so it
14 * shows up for deployment.
15 * ### Managing Revisions
16 * **Example:** Register an S3 Revision
17 * ```typescript
18 * const registerApplicationRevision =
19 * yield* AWS.CodeDeploy.RegisterApplicationRevision(app);
20 *
21 * yield* registerApplicationRevision({
22 * revision: {
23 * revisionType: "S3",
24 * s3Location: { bucket, key, bundleType: "zip" },
25 * },
26 * });
27 * ```
28 *
29 * @binding
30 */
31export interface RegisterApplicationRevision extends Binding.Service<
32 RegisterApplicationRevision,
33 "AWS.CodeDeploy.RegisterApplicationRevision",
34 <P extends Application>(
35 application: P,
36 ) => Effect.Effect<
37 (
38 request: RegisterApplicationRevisionRequest,
39 ) => Effect.Effect<
40 SVC.RegisterApplicationRevisionResponse,
41 SVC.RegisterApplicationRevisionError
42 >
43 >
44> {}
45export const RegisterApplicationRevision =
46 Binding.Service<RegisterApplicationRevision>(
47 "AWS.CodeDeploy.RegisterApplicationRevision",
48 );