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:DescribeWhatIfForecast` — poll the status of
7 * a scenario forecast created with {@link CreateWhatIfForecast} until it is
8 * `ACTIVE` and queryable via {@link QueryWhatIfForecast}.
9 *
10 * What-if forecast ARNs are created at runtime, so the binding takes no
11 * arguments and grants `forecast:DescribeWhatIfForecast` on `*`. Provide the
12 * implementation with
13 * `Effect.provide(AWS.Forecast.DescribeWhatIfForecastHttp)`.
14 *
15 * ### What-If Scenarios
16 * **Example:** Poll a Scenario Forecast
17 * ```typescript
18 * // init
19 * const describeWhatIfForecast = yield* AWS.Forecast.DescribeWhatIfForecast();
20 *
21 * // runtime
22 * const { Status } = yield* describeWhatIfForecast({
23 * WhatIfForecastArn: scenarioArn,
24 * });
25 * ```
26 *
27 * @binding
28 */
29export interface DescribeWhatIfForecast extends Binding.Service<
30 DescribeWhatIfForecast,
31 "AWS.Forecast.DescribeWhatIfForecast",
32 () => Effect.Effect<
33 (
34 request: forecast.DescribeWhatIfForecastRequest,
35 ) => Effect.Effect<
36 forecast.DescribeWhatIfForecastResponse,
37 forecast.DescribeWhatIfForecastError
38 >
39 >
40> {}
41export const DescribeWhatIfForecast = Binding.Service<DescribeWhatIfForecast>(
42 "AWS.Forecast.DescribeWhatIfForecast",
43);