1import type * as docdbelastic from "@distilled.cloud/aws/docdb-elastic";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Cluster } from "./Cluster.ts";
5
6/**
7 * Runtime binding for the `StartCluster` operation (IAM action
8 * `docdb-elastic:StartCluster`), scoped to one {@link Cluster}.
9 *
10 * Restarts the bound elastic cluster after it was stopped — compute billing
11 * resumes and the cluster transitions through `STARTING` back to `ACTIVE`.
12 * Provide the implementation with
13 * `Effect.provide(AWS.DocDBElastic.StartClusterHttp)`.
14 * ### Starting and Stopping a Cluster
15 * **Example:** Start a Stopped Cluster
16 * ```typescript
17 * const startCluster = yield* DocDBElastic.StartCluster(cluster);
18 *
19 * const result = yield* startCluster();
20 * // result.cluster.status → "STARTING"
21 * ```
22 *
23 * @binding
24 */
25export interface StartCluster extends Binding.Service<
26 StartCluster,
27 "AWS.DocDBElastic.StartCluster",
28 (
29 cluster: Cluster,
30 ) => Effect.Effect<
31 () => Effect.Effect<
32 docdbelastic.StartClusterOutput,
33 docdbelastic.StartClusterError
34 >
35 >
36> {}
37export const StartCluster = Binding.Service<StartCluster>(
38 "AWS.DocDBElastic.StartCluster",
39);