1import type * as cloudtrail from "@distilled.cloud/aws/cloudtrail";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `cloudtrail:ListPublicKeys`.
7 *
8 * An account-level operation (no resource argument) that returns the public
9 * keys used to sign CloudTrail digest files in the region — the building
10 * block for verifying log-file integrity at runtime. Provide the
11 * implementation with `Effect.provide(AWS.CloudTrail.ListPublicKeysHttp)`.
12 * ### Verifying Log Integrity
13 * **Example:** List Digest Public Keys
14 * ```typescript
15 * // init — account-level binding takes no resource
16 * const listPublicKeys = yield* AWS.CloudTrail.ListPublicKeys();
17 *
18 * // runtime
19 * const result = yield* listPublicKeys();
20 * console.log(result.PublicKeyList?.map((k) => k.Fingerprint));
21 * ```
22 *
23 * @binding
24 */
25export interface ListPublicKeys extends Binding.Service<
26 ListPublicKeys,
27 "AWS.CloudTrail.ListPublicKeys",
28 () => Effect.Effect<
29 (
30 request?: cloudtrail.ListPublicKeysRequest,
31 ) => Effect.Effect<
32 cloudtrail.ListPublicKeysResponse,
33 cloudtrail.ListPublicKeysError
34 >
35 >
36> {}
37export const ListPublicKeys = Binding.Service<ListPublicKeys>(
38 "AWS.CloudTrail.ListPublicKeys",
39);