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 StartCommitmentPurchaseAnalysis}.
7 */
8export interface StartCommitmentPurchaseAnalysisRequest
9 extends ce.StartCommitmentPurchaseAnalysisRequest {}
10
11/**
12 * Runtime binding for `ce:StartCommitmentPurchaseAnalysis`.
13 *
14 * Start an analysis of a planned Savings Plans commitment purchase —
15 * projects the cost impact before you buy. Provide the implementation with
16 * `Effect.provide(AWS.CostExplorer.StartCommitmentPurchaseAnalysisHttp)`.
17 * ### Commitment Purchase Analysis
18 * **Example:** Analyze a Planned Commitment
19 * ```typescript
20 * // init — account-level binding takes no resource
21 * const startCommitmentPurchaseAnalysis = yield* AWS.CostExplorer.StartCommitmentPurchaseAnalysis();
22 *
23 * // runtime
24 * const result = yield* startCommitmentPurchaseAnalysis({
25 * CommitmentPurchaseAnalysisConfiguration: configuration,
26 * });
27 * const analysisId = result.AnalysisId;
28 * ```
29 *
30 * @binding
31 */
32export interface StartCommitmentPurchaseAnalysis extends Binding.Service<
33 StartCommitmentPurchaseAnalysis,
34 "AWS.CostExplorer.StartCommitmentPurchaseAnalysis",
35 () => Effect.Effect<
36 (
37 request: StartCommitmentPurchaseAnalysisRequest,
38 ) => Effect.Effect<
39 ce.StartCommitmentPurchaseAnalysisResponse,
40 ce.StartCommitmentPurchaseAnalysisError
41 >
42 >
43> {}
44
45export const StartCommitmentPurchaseAnalysis =
46 Binding.Service<StartCommitmentPurchaseAnalysis>(
47 "AWS.CostExplorer.StartCommitmentPurchaseAnalysis",
48 );