1import type * as forecast from "@distilled.cloud/aws/forecast";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `forecast:GetAccuracyMetrics` — read a trained
7 * (legacy) predictor's backtest accuracy metrics (wQL, RMSE, MAPE, WAPE) so
8 * an ops function can gate promotion of a retrained model on its accuracy.
9 *
10 * Predictor ARNs are created at runtime, so the binding takes no arguments
11 * and grants `forecast:GetAccuracyMetrics` on `*`. Provide the
12 * implementation with `Effect.provide(AWS.Forecast.GetAccuracyMetricsHttp)`.
13 *
14 * ### Training Predictors
15 * **Example:** Gate on Accuracy
16 * ```typescript
17 * // init
18 * const getAccuracyMetrics = yield* AWS.Forecast.GetAccuracyMetrics();
19 *
20 * // runtime
21 * const metrics = yield* getAccuracyMetrics({
22 * PredictorArn: predictorArn,
23 * });
24 * ```
25 *
26 * @binding
27 */
28export interface GetAccuracyMetrics extends Binding.Service<
29 GetAccuracyMetrics,
30 "AWS.Forecast.GetAccuracyMetrics",
31 () => Effect.Effect<
32 (
33 request: forecast.GetAccuracyMetricsRequest,
34 ) => Effect.Effect<
35 forecast.GetAccuracyMetricsResponse,
36 forecast.GetAccuracyMetricsError
37 >
38 >
39> {}
40export const GetAccuracyMetrics = Binding.Service<GetAccuracyMetrics>(
41 "AWS.Forecast.GetAccuracyMetrics",
42);