1import type * as ce from "@distilled.cloud/aws/cost-explorer";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Request for {@link ProvideAnomalyFeedback}.
7 */
8export interface ProvideAnomalyFeedbackRequest
9 extends ce.ProvideAnomalyFeedbackRequest {}
10
11/**
12 * Runtime binding for `ce:ProvideAnomalyFeedback`.
13 *
14 * Record feedback on a detected anomaly (`YES` / `NO` /
15 * `PLANNED_ACTIVITY`), improving future detection. Anomalies are
16 * addressed by id; per the `ce` service authorization reference the action
17 * supports no resource types, so this is an account-level binding. Provide the implementation with
18 * `Effect.provide(AWS.CostExplorer.ProvideAnomalyFeedbackHttp)`.
19 * ### Anomaly Detection at Runtime
20 * **Example:** Mark an Anomaly as Expected
21 * ```typescript
22 * // init — account-level binding takes no resource
23 * const provideAnomalyFeedback = yield* AWS.CostExplorer.ProvideAnomalyFeedback();
24 *
25 * // runtime
26 * yield* provideAnomalyFeedback({
27 * AnomalyId: anomalyId,
28 * Feedback: "PLANNED_ACTIVITY",
29 * });
30 * ```
31 *
32 * @binding
33 */
34export interface ProvideAnomalyFeedback extends Binding.Service<
35 ProvideAnomalyFeedback,
36 "AWS.CostExplorer.ProvideAnomalyFeedback",
37 () => Effect.Effect<
38 (
39 request: ProvideAnomalyFeedbackRequest,
40 ) => Effect.Effect<
41 ce.ProvideAnomalyFeedbackResponse,
42 ce.ProvideAnomalyFeedbackError
43 >
44 >
45> {}
46
47export const ProvideAnomalyFeedback = Binding.Service<ProvideAnomalyFeedback>(
48 "AWS.CostExplorer.ProvideAnomalyFeedback",
49);