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 StartSavingsPlansPurchaseRecommendationGeneration}.
7 */
8export interface StartSavingsPlansPurchaseRecommendationGenerationRequest
9 extends ce.StartSavingsPlansPurchaseRecommendationGenerationRequest {}
10
11/**
12 * Runtime binding for `ce:StartSavingsPlansPurchaseRecommendationGeneration`.
13 *
14 * Request a fresh Savings Plans recommendation generation based on
15 * your latest usage (limited to one generation per day). Provide the implementation with
16 * `Effect.provide(AWS.CostExplorer.StartSavingsPlansPurchaseRecommendationGenerationHttp)`.
17 * ### Savings Plans
18 * **Example:** Refresh the Recommendations
19 * ```typescript
20 * // init — account-level binding takes no resource
21 * const startSavingsPlansPurchaseRecommendationGeneration = yield* AWS.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration();
22 *
23 * // runtime
24 * const result = yield* startSavingsPlansPurchaseRecommendationGeneration();
25 * const generationId = result.RecommendationId;
26 * ```
27 *
28 * @binding
29 */
30export interface StartSavingsPlansPurchaseRecommendationGeneration extends Binding.Service<
31 StartSavingsPlansPurchaseRecommendationGeneration,
32 "AWS.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration",
33 () => Effect.Effect<
34 (
35 request?: StartSavingsPlansPurchaseRecommendationGenerationRequest,
36 ) => Effect.Effect<
37 ce.StartSavingsPlansPurchaseRecommendationGenerationResponse,
38 ce.StartSavingsPlansPurchaseRecommendationGenerationError
39 >
40 >
41> {}
42
43export const StartSavingsPlansPurchaseRecommendationGeneration =
44 Binding.Service<StartSavingsPlansPurchaseRecommendationGeneration>(
45 "AWS.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration",
46 );