export type PromptAttachmentMediaType = 'IMAGE' | 'IMAGE'; export type PromptAttachmentType = 'TEMPORARY' | 'REGULAR' | 'TEMPORARY' | 'REGULAR'; export type PromptAttachment = {mediaType: PromptAttachmentMediaType, name: string, type: PromptAttachmentType}; export type Prompt = {attachments?: Array | undefined, promptSource?: string | undefined, textInput: string}; export type VariationRedirection = {includeQueryParameters?: boolean | undefined, parameters?: string | undefined, type?: ('GLOBAL_REDIRECTION' | 'PARAMETER_REDIRECTION') | undefined, url?: string | undefined}; export type Variation = {color?: number | undefined, creationMode?: ('AI' | 'CODE_BASE' | 'GRAPHICAL' | 'UNDEFINED' | 'WIDGET') | undefined, cssCode?: string | undefined, customJson?: string | undefined, experimentId?: number | undefined, expositionFrequencyDelaySecondsBetweenTwoExpositions?: number | undefined, expositionFrequencySameVisit?: number | undefined, expositionFrequencySameVisitor?: number | undefined, expositionFrequencySameVisitorDelaySeconds?: number | undefined, forceNoFlicker?: boolean | undefined, id?: number | undefined, isJsCodeAfterDomReady?: boolean | undefined, jsCode?: string | undefined, name: string, personalizationId?: number | undefined, prompt?: Prompt | undefined, redirection?: VariationRedirection | undefined, redirectionStrings?: string | undefined, shadowDom?: boolean | undefined, siteId: number, widgetTemplateInput?: string | undefined}; export type UpdateApiVariationsVariationIdArgs = {variationId: number, body: Variation}; export type UpdateApiVariationsVariationIdOptions = {baseUrl?: string | undefined, bearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * Update variation * * PUT /variations/{variationId} */ export const updateApiVariationsVariationId = async (args: UpdateApiVariationsVariationIdArgs, options?: UpdateApiVariationsVariationIdOptions) => { const {baseUrl = "https://api.kameleoon.com", fetch: fetchFn = fetch, bearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "*/*") if (bearerAuth !== undefined) headers.set('authorization', `Bearer ${bearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/variations/${encodeURIComponent(String(args.variationId))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "PUT", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return res.blob() };