1import type * as config from "@distilled.cloud/aws/config-service";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `config:ListDiscoveredResources` — enumerate the
7 * resource identifiers (type, id, name) AWS Config has discovered for a
8 * resource type, including optionally deleted resources.
9 *
10 * Provide `Config.ListDiscoveredResourcesHttp` on the hosting Lambda Function to
11 * satisfy the requirement.
12 * ### Discovering Resources
13 * **Example:** List Discovered Buckets
14 * ```typescript
15 * // init — grants config:ListDiscoveredResources
16 * const listDiscoveredResources = yield* AWS.Config.ListDiscoveredResources();
17 *
18 * // runtime
19 * const result = yield* listDiscoveredResources({
20 * resourceType: "AWS::S3::Bucket",
21 * });
22 * console.log(result.resourceIdentifiers);
23 * ```
24 *
25 * @binding
26 */
27export interface ListDiscoveredResources extends Binding.Service<
28 ListDiscoveredResources,
29 "AWS.Config.ListDiscoveredResources",
30 () => Effect.Effect<
31 (
32 request: config.ListDiscoveredResourcesRequest,
33 ) => Effect.Effect<
34 config.ListDiscoveredResourcesResponse,
35 config.ListDiscoveredResourcesError
36 >
37 >
38> {}
39
40export const ListDiscoveredResources = Binding.Service<ListDiscoveredResources>(
41 "AWS.Config.ListDiscoveredResources",
42);