1import type * as personalize from "@distilled.cloud/aws/personalize";
2import type * as Effect from "effect/Effect";
3import * as Binding from "../../Binding.ts";
4
5/**
6 * Runtime binding for `personalize:UpdateCampaign` — Points a live campaign at a newly trained solution version (or adjusts
7 * its provisioned TPS) — the deploy step of the MLOps retraining loop.
8 * Provide the implementation with
9 * `Effect.provide(AWS.Personalize.UpdateCampaignHttp)`.
10 *
11 * ### Retraining Loop
12 * **Example:** Deploy a New Model Version
13 * ```typescript
14 * // init
15 * const updateCampaign = yield* Personalize.UpdateCampaign();
16 *
17 * yield* updateCampaign({ campaignArn, solutionVersionArn });
18 * ```
19 *
20 * @binding
21 */
22export interface UpdateCampaign extends Binding.Service<
23 UpdateCampaign,
24 "AWS.Personalize.UpdateCampaign",
25 () => Effect.Effect<
26 (
27 request: personalize.UpdateCampaignRequest,
28 ) => Effect.Effect<
29 personalize.UpdateCampaignResponse,
30 personalize.UpdateCampaignError
31 >
32 >
33> {}
34export const UpdateCampaign = Binding.Service<UpdateCampaign>(
35 "AWS.Personalize.UpdateCampaign",
36);