1import type * as neptunegraph from "@distilled.cloud/aws/neptune-graph";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Graph } from "./Graph.ts";
5
6/**
7 * Runtime binding for the `StartGraph` operation (IAM action `neptune-graph:StartGraph`),
8 * scoped to one {@link Graph}.
9 *
10 * Restarts the bound graph after it was stopped — m-NCU billing resumes and the graph transitions back to `AVAILABLE`. Provide the implementation with
11 * `Effect.provide(AWS.NeptuneGraph.StartGraphHttp)`.
12 * ### Starting and Stopping a Graph
13 * **Example:** Start a stopped graph
14 * ```typescript
15 * const startGraph = yield* NeptuneGraph.StartGraph(graph);
16 *
17 * const result = yield* startGraph();
18 * // result.status → transitioning toward AVAILABLE
19 * ```
20 *
21 * @binding
22 */
23export interface StartGraph extends Binding.Service<
24 StartGraph,
25 "AWS.NeptuneGraph.StartGraph",
26 (
27 graph: Graph,
28 ) => Effect.Effect<
29 () => Effect.Effect<
30 neptunegraph.StartGraphOutput,
31 neptunegraph.StartGraphError
32 >
33 >
34> {}
35export const StartGraph = Binding.Service<StartGraph>(
36 "AWS.NeptuneGraph.StartGraph",
37);