1import type * as budgets from "@distilled.cloud/aws/budgets";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4import type { Budget } from "./Budget.ts";
5
6/**
7 * Request for {@link DescribeBudgetActionsForBudget} — the bound budget's
8 * `AccountId` and `BudgetName` are injected automatically.
9 */
10export interface DescribeBudgetActionsForBudgetRequest extends Omit<
11 budgets.DescribeBudgetActionsForBudgetRequest,
12 "AccountId" | "BudgetName"
13> {}
14
15/**
16 * Runtime binding for `budgets:DescribeBudgetActionsForBudget`.
17 *
18 * Bind this operation to a {@link Budget} to list its budget actions and
19 * their execution status — e.g. to check whether a cost kill-switch has
20 * fired. Provide the implementation with
21 * `Effect.provide(AWS.Budgets.DescribeBudgetActionsForBudgetHttp)`.
22 * ### Reading Budget Actions
23 * **Example:** List a Budget's Actions and Statuses
24 * ```typescript
25 * // init — bind the operation to the budget
26 * const listActions = yield* AWS.Budgets.DescribeBudgetActionsForBudget(budget);
27 *
28 * // runtime
29 * const result = yield* listActions();
30 * const statuses = (result.Actions ?? []).map((a) => a.Status);
31 * ```
32 *
33 * @binding
34 */
35export interface DescribeBudgetActionsForBudget extends Binding.Service<
36 DescribeBudgetActionsForBudget,
37 "AWS.Budgets.DescribeBudgetActionsForBudget",
38 (
39 budget: Budget,
40 ) => Effect.Effect<
41 (
42 request?: DescribeBudgetActionsForBudgetRequest,
43 ) => Effect.Effect<
44 budgets.DescribeBudgetActionsForBudgetResponse,
45 budgets.DescribeBudgetActionsForBudgetError
46 >
47 >
48> {}
49
50export const DescribeBudgetActionsForBudget =
51 Binding.Service<DescribeBudgetActionsForBudget>(
52 "AWS.Budgets.DescribeBudgetActionsForBudget",
53 );