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 GetReservationPurchaseRecommendation}.
7 */
8export interface GetReservationPurchaseRecommendationRequest
9 extends ce.GetReservationPurchaseRecommendationRequest {}
10
11/**
12 * Runtime binding for `ce:GetReservationPurchaseRecommendation`.
13 *
14 * Get reserved-instance purchase recommendations for a service based
15 * on your historical usage. Provide the implementation with
16 * `Effect.provide(AWS.CostExplorer.GetReservationPurchaseRecommendationHttp)`.
17 * ### Reservations
18 * **Example:** Get RI Purchase Recommendations
19 * ```typescript
20 * // init — account-level binding takes no resource
21 * const getReservationPurchaseRecommendation = yield* AWS.CostExplorer.GetReservationPurchaseRecommendation();
22 *
23 * // runtime
24 * const result = yield* getReservationPurchaseRecommendation({
25 * Service: "Amazon Elastic Compute Cloud - Compute",
26 * });
27 * const recommendations = result.Recommendations;
28 * ```
29 *
30 * @binding
31 */
32export interface GetReservationPurchaseRecommendation extends Binding.Service<
33 GetReservationPurchaseRecommendation,
34 "AWS.CostExplorer.GetReservationPurchaseRecommendation",
35 () => Effect.Effect<
36 (
37 request: GetReservationPurchaseRecommendationRequest,
38 ) => Effect.Effect<
39 ce.GetReservationPurchaseRecommendationResponse,
40 ce.GetReservationPurchaseRecommendationError
41 >
42 >
43> {}
44
45export const GetReservationPurchaseRecommendation =
46 Binding.Service<GetReservationPurchaseRecommendation>(
47 "AWS.CostExplorer.GetReservationPurchaseRecommendation",
48 );