1import type * as detective from "@distilled.cloud/aws/detective";
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 `detective:ListDatasourcePackages`.
8 *
9 * Lists the behavior graph's data source packages (core CloudTrail/VPC Flow,
10 * EKS audit, ASFF findings) and their ingest state — audit what Detective is
11 * actually ingesting. The graph ARN is injected from the bound {@link Graph}.
12 * Provide the implementation with
13 * `Effect.provide(AWS.Detective.ListDatasourcePackagesHttp)`.
14 * ### Managing Data Source Packages
15 * **Example:** Audit Ingested Data Sources
16 * ```typescript
17 * // init
18 * const listDatasourcePackages =
19 * yield* AWS.Detective.ListDatasourcePackages(graph);
20 *
21 * // runtime
22 * const { DatasourcePackages } = yield* listDatasourcePackages();
23 * ```
24 *
25 * @binding
26 */
27export interface ListDatasourcePackages extends Binding.Service<
28 ListDatasourcePackages,
29 "AWS.Detective.ListDatasourcePackages",
30 (
31 graph: Graph,
32 ) => Effect.Effect<
33 (
34 request?: Omit<detective.ListDatasourcePackagesRequest, "GraphArn">,
35 ) => Effect.Effect<
36 detective.ListDatasourcePackagesResponse,
37 detective.ListDatasourcePackagesError
38 >
39 >
40> {}
41export const ListDatasourcePackages = Binding.Service<ListDatasourcePackages>(
42 "AWS.Detective.ListDatasourcePackages",
43);