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 GetSavingsPlanPurchaseRecommendationDetails}.
7 */
8export interface GetSavingsPlanPurchaseRecommendationDetailsRequest
9 extends ce.GetSavingsPlanPurchaseRecommendationDetailsRequest {}
10
11/**
12 * Runtime binding for `ce:GetSavingsPlanPurchaseRecommendationDetails`.
13 *
14 * Retrieve the hourly data points behind one Savings Plans
15 * recommendation — the cost, coverage, and utilization charts. Provide the implementation with
16 * `Effect.provide(AWS.CostExplorer.GetSavingsPlanPurchaseRecommendationDetailsHttp)`.
17 * ### Savings Plans
18 * **Example:** Read One Recommendation's Details
19 * ```typescript
20 * // init — account-level binding takes no resource
21 * const getSavingsPlanPurchaseRecommendationDetails = yield* AWS.CostExplorer.GetSavingsPlanPurchaseRecommendationDetails();
22 *
23 * // runtime
24 * const result = yield* getSavingsPlanPurchaseRecommendationDetails({
25 * RecommendationDetailId: detailId,
26 * });
27 * ```
28 *
29 * @binding
30 */
31export interface GetSavingsPlanPurchaseRecommendationDetails extends Binding.Service<
32 GetSavingsPlanPurchaseRecommendationDetails,
33 "AWS.CostExplorer.GetSavingsPlanPurchaseRecommendationDetails",
34 () => Effect.Effect<
35 (
36 request: GetSavingsPlanPurchaseRecommendationDetailsRequest,
37 ) => Effect.Effect<
38 ce.GetSavingsPlanPurchaseRecommendationDetailsResponse,
39 ce.GetSavingsPlanPurchaseRecommendationDetailsError
40 >
41 >
42> {}
43
44export const GetSavingsPlanPurchaseRecommendationDetails =
45 Binding.Service<GetSavingsPlanPurchaseRecommendationDetails>(
46 "AWS.CostExplorer.GetSavingsPlanPurchaseRecommendationDetails",
47 );