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:ListInsightsMetricData`.
7 *
8 * An account-level operation (no resource argument) that reads the Insights
9 * metric time series (API call rate / error rate) for a given event source
10 * and event name — empty when Insights has recorded no anomalies. Provide
11 * the implementation with
12 * `Effect.provide(AWS.CloudTrail.ListInsightsMetricDataHttp)`.
13 * ### Reading Insights Metrics
14 * **Example:** Read API Call Rate Metrics
15 * ```typescript
16 * // init — account-level binding takes no resource
17 * const listInsightsMetricData =
18 * yield* AWS.CloudTrail.ListInsightsMetricData();
19 *
20 * // runtime
21 * const result = yield* listInsightsMetricData({
22 * EventSource: "s3.amazonaws.com",
23 * EventName: "PutObject",
24 * InsightType: "ApiCallRateInsight",
25 * });
26 * console.log(result.Timestamps?.length, result.Values?.length);
27 * ```
28 *
29 * @binding
30 */
31export interface ListInsightsMetricData extends Binding.Service<
32 ListInsightsMetricData,
33 "AWS.CloudTrail.ListInsightsMetricData",
34 () => Effect.Effect<
35 (
36 request: cloudtrail.ListInsightsMetricDataRequest,
37 ) => Effect.Effect<
38 cloudtrail.ListInsightsMetricDataResponse,
39 cloudtrail.ListInsightsMetricDataError
40 >
41 >
42> {}
43export const ListInsightsMetricData = Binding.Service<ListInsightsMetricData>(
44 "AWS.CloudTrail.ListInsightsMetricData",
45);