1import type * as SVC from "@distilled.cloud/aws/finspace";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { KxEnvironment } from "./KxEnvironment.ts";
5
6/**
7 * Runtime binding for `finspace:CreateKxDataview` — creates a dataview — a snapshot of a kdb database at a changeset, materialized onto volumes — in the bound environment.
8 * Provide the implementation with
9 * `Effect.provide(AWS.FinSpace.CreateKxDataviewHttp)`.
10 * ### Managing Dataviews
11 * **Example:** Create a Dataview
12 * ```typescript
13 * const createDataview = yield* AWS.FinSpace.CreateKxDataview(kdb);
14 *
15 * yield* createDataview({
16 * databaseName: "ticks",
17 * dataviewName: "latest",
18 * azMode: "SINGLE",
19 * availabilityZoneId: "use1-az1",
20 * autoUpdate: true,
21 * clientToken: crypto.randomUUID(),
22 * });
23 * ```
24 *
25 * @binding
26 */
27export interface CreateKxDataview extends Binding.Service<
28 CreateKxDataview,
29 "AWS.FinSpace.CreateKxDataview",
30 <K extends KxEnvironment>(
31 environment: K,
32 ) => Effect.Effect<
33 (
34 request: Omit<SVC.CreateKxDataviewRequest, "environmentId">,
35 ) => Effect.Effect<SVC.CreateKxDataviewResponse, SVC.CreateKxDataviewError>
36 >
37> {}
38export const CreateKxDataview = Binding.Service<CreateKxDataview>(
39 "AWS.FinSpace.CreateKxDataview",
40);