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 GetReservationUtilization}.
7 */
8export interface GetReservationUtilizationRequest
9 extends ce.GetReservationUtilizationRequest {}
10
11/**
12 * Runtime binding for `ce:GetReservationUtilization`.
13 *
14 * Retrieve how fully your reservations were utilized over a time
15 * range, optionally grouped by subscription. Provide the implementation with
16 * `Effect.provide(AWS.CostExplorer.GetReservationUtilizationHttp)`.
17 * ### Reservations
18 * **Example:** Check Reservation Utilization
19 * ```typescript
20 * // init — account-level binding takes no resource
21 * const getReservationUtilization = yield* AWS.CostExplorer.GetReservationUtilization();
22 *
23 * // runtime
24 * const result = yield* getReservationUtilization({
25 * TimePeriod: { Start: "2026-06-01", End: "2026-07-01" },
26 * });
27 * const utilization = result.Total?.UtilizationPercentage;
28 * ```
29 *
30 * @binding
31 */
32export interface GetReservationUtilization extends Binding.Service<
33 GetReservationUtilization,
34 "AWS.CostExplorer.GetReservationUtilization",
35 () => Effect.Effect<
36 (
37 request: GetReservationUtilizationRequest,
38 ) => Effect.Effect<
39 ce.GetReservationUtilizationResponse,
40 ce.GetReservationUtilizationError
41 >
42 >
43> {}
44
45export const GetReservationUtilization =
46 Binding.Service<GetReservationUtilization>(
47 "AWS.CostExplorer.GetReservationUtilization",
48 );