1import type * as iam from "@distilled.cloud/aws/iam";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `iam:GetServiceLastAccessedDetailsWithEntities` — after
7 * an access-advisor job generated for a *group or policy*, drill into which
8 * member users/roles actually attempted to use a given service namespace.
9 *
10 * The `JobId` is produced at runtime, so the binding takes no arguments and
11 * grants `iam:GetServiceLastAccessedDetailsWithEntities` on `*`. Provide the
12 * implementation with
13 * `Effect.provide(AWS.IAM.GetServiceLastAccessedDetailsWithEntitiesHttp)`.
14 *
15 * ### Access Advisor
16 * **Example:** List the Entities That Used a Service
17 * ```typescript
18 * // init
19 * const getDetailsWithEntities =
20 * yield* IAM.GetServiceLastAccessedDetailsWithEntities();
21 *
22 * // runtime
23 * const { EntityDetailsList } = yield* getDetailsWithEntities({
24 * JobId: jobId,
25 * ServiceNamespace: "s3",
26 * });
27 * ```
28 *
29 * @binding
30 */
31export interface GetServiceLastAccessedDetailsWithEntities extends Binding.Service<
32 GetServiceLastAccessedDetailsWithEntities,
33 "AWS.IAM.GetServiceLastAccessedDetailsWithEntities",
34 () => Effect.Effect<
35 (
36 request: iam.GetServiceLastAccessedDetailsWithEntitiesRequest,
37 ) => Effect.Effect<
38 iam.GetServiceLastAccessedDetailsWithEntitiesResponse,
39 iam.GetServiceLastAccessedDetailsWithEntitiesError
40 >
41 >
42> {}
43export const GetServiceLastAccessedDetailsWithEntities =
44 Binding.Service<GetServiceLastAccessedDetailsWithEntities>(
45 "AWS.IAM.GetServiceLastAccessedDetailsWithEntities",
46 );