1import type * as rolesanywhere from "@distilled.cloud/aws/rolesanywhere";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `rolesanywhere:ListSubjects`.
7 *
8 * Lists the *subjects* — the audit records IAM Roles Anywhere keeps for each
9 * certificate identity that has requested credentials in the account and
10 * Region. The backbone of workload-identity auditing: which certificates
11 * authenticated, and when they were last seen.
12 * Account-level operation — the binding takes no resource argument. Provide
13 * the implementation with `Effect.provide(AWS.RolesAnywhere.ListSubjectsHttp)`.
14 * ### Auditing Certificate Identities
15 * **Example:** List Authenticated Subjects
16 * ```typescript
17 * // init — account-level binding, no resource argument
18 * const listSubjects = yield* AWS.RolesAnywhere.ListSubjects();
19 *
20 * // runtime
21 * const { subjects } = yield* listSubjects();
22 * ```
23 *
24 * @binding
25 */
26export interface ListSubjects extends Binding.Service<
27 ListSubjects,
28 "AWS.RolesAnywhere.ListSubjects",
29 () => Effect.Effect<
30 (
31 request?: rolesanywhere.ListSubjectsRequest,
32 ) => Effect.Effect<
33 rolesanywhere.ListSubjectsResponse,
34 rolesanywhere.ListSubjectsError
35 >
36 >
37> {}
38export const ListSubjects = Binding.Service<ListSubjects>(
39 "AWS.RolesAnywhere.ListSubjects",
40);