1import type * as fms from "@distilled.cloud/aws/fms";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Request for {@link ListDiscoveredResources}.
7 */
8export interface ListDiscoveredResourcesRequest
9 extends fms.ListDiscoveredResourcesRequest {}
10
11/**
12 * Runtime binding for `fms:ListDiscoveredResources`.
13 *
14 * Returns an array of resources in the organization's accounts that are available to be associated with a resource set. Provide the
15 * implementation with `Effect.provide(AWS.FMS.ListDiscoveredResourcesHttp)`.
16 * ### Resource Sets
17 * **Example:** Discover Associable Resources
18 * ```typescript
19 * // init — account-level binding takes no resource
20 * const listDiscoveredResources = yield* AWS.FMS.ListDiscoveredResources();
21 *
22 * // runtime
23 * const result = yield* listDiscoveredResources({
24 * MemberAccountIds: [accountId],
25 * ResourceType: "AWS::EC2::Instance",
26 * });
27 * console.log(result.Items?.length);
28 * ```
29 *
30 * @binding
31 */
32export interface ListDiscoveredResources extends Binding.Service<
33 ListDiscoveredResources,
34 "AWS.FMS.ListDiscoveredResources",
35 () => Effect.Effect<
36 (
37 request: ListDiscoveredResourcesRequest,
38 ) => Effect.Effect<
39 fms.ListDiscoveredResourcesResponse,
40 fms.ListDiscoveredResourcesError
41 >
42 >
43> {}
44
45export const ListDiscoveredResources = Binding.Service<ListDiscoveredResources>(
46 "AWS.FMS.ListDiscoveredResources",
47);