export type AccessLimiter = {accessHolder?: ('PERSONALIZATION' | 'AB_TEST' | 'TAG' | 'FEATURE_FLAG') | undefined, accessHolderId?: number | undefined, id?: number | undefined}; export type CustomData = {adobeAnalyticsVariableName?: string | undefined, advancedProposedValues?: string | undefined, createdById?: number | undefined, customEvalCode?: string | undefined, dateCreated?: string | undefined, dateModified?: string | undefined, description?: string | undefined, format?: ('BOOLEAN' | 'NUMBER' | 'STRING') | undefined, gtmVariableName?: string | undefined, id?: number | undefined, index?: number | undefined, isConstant?: boolean | undefined, isFiltrableVentilable?: boolean | undefined, isLearnable?: boolean | undefined, isLocalOnly?: boolean | undefined, method: 'ADOBE_ANALYTICS' | 'CLIENT' | 'CUSTOM_CODE' | 'GTM' | 'SDK' | 'TC' | 'TEALIUM', modificationDate?: string | undefined, name: string, siteCode?: string | undefined, siteId: number, tags?: string | undefined, tcVariableName?: string | undefined, tealiumVariableName?: string | undefined, type?: ('COUNT_LIST' | 'LIST' | 'UNIQUE') | undefined}; export type Link = {domainId?: number | undefined, domainStatus?: string | undefined, domainType?: ('EXPERIMENT' | 'PERSONALIZATION' | 'FEATURE_FLAG' | 'HOLDOUT') | undefined, linkRole?: ('MAIN' | 'SECONDARY') | undefined, linkType?: ('DIRECT' | 'TRANSITIVE') | undefined}; export type AccessToPageGoalParams = {matchString?: string | undefined, matchType?: ('CONTAINS' | 'CORRESPONDS_EXACTLY' | 'REGULAR_EXPRESSION') | undefined}; export type TrackingSelector = {id?: number | undefined, mode?: ('ID' | 'CLASS' | 'TAG' | 'TAG_CLASS' | 'CUSTOM' | 'AUTOGENERATED' | 'CONTENT' | 'CUSTOM_ATTRIBUTE') | undefined, selector?: string | undefined}; export type ClickTrackingGoalParams = {customSelectors?: Array | undefined, url?: string | undefined}; export type PageViewsGoalParams = {numberMatchType?: ('MORE_THAN' | 'EQUALS' | 'LESS_THAN') | undefined, numberOfVisitedPages?: number | undefined}; export type ScrollTrackingGoalParams = {type?: ('ELEMENT' | 'PERCENTAGE' | 'PIXELS_HEIGHT') | undefined, url?: string | undefined, value?: number | undefined}; export type TimeSpentGoalParams = {matchType?: ('MORE_THAN' | 'EQUALS' | 'LESS_THAN') | undefined, timeSeconds?: number | undefined}; export type Goal = {accessLimiters?: Array | undefined, createdBy?: number | undefined, customDatas?: Array | undefined, dateCreated?: string | undefined, dateModified?: string | undefined, description?: string | undefined, experimentAmount?: number | undefined, experiments?: Array | undefined, featureFlagAmount?: number | undefined, hasMultipleConversions: boolean, holdoutAmount?: number | undefined, holdouts?: Array | undefined, id?: number | undefined, isActive?: boolean | undefined, isTargetingSegmentMentalist?: boolean | undefined, links?: Array | undefined, mentalistWeight?: number | undefined, name: string, params?: (AccessToPageGoalParams | ClickTrackingGoalParams | PageViewsGoalParams | ScrollTrackingGoalParams | TimeSpentGoalParams) | undefined, personalizationAmount?: number | undefined, personalizations?: Array | undefined, siteId: number, status?: ('ACTIVE' | 'INACTIVE') | undefined, tags?: Array | undefined, targetingSegmentMentalist?: Array | undefined, trackingTools?: (Array<'GOOGLE_ANALYTICS4' | 'GOOGLE_ANALYTICS4_AUDIENCES' | 'GOOGLE_UNIVERSAL_ANALYTICS' | 'ECONDA' | 'SMART_TAG' | 'PIANO' | 'ADOBE_OMNITURE' | 'EULERIAN' | 'WEBTRENDS' | 'KISSMETRICS' | 'PIWIK' | 'CRAZY_EGG' | 'COM_SCORE' | 'TEALIUM' | 'YSANCE' | 'M_PATHY' | 'SMARTFOCUS' | 'EMARSYS' | 'EXPERTSENDER' | 'TAG_COMMANDER' | 'CONTENT_SQUARE' | 'WEBTREKK' | 'CUSTOM_INTEGRATIONS' | 'HEAP' | 'HEAP_COHORTS' | 'KLAVIYO_COHORTS' | 'SEGMENT' | 'MIXPANEL' | 'CLARITY' | 'IABTCF' | 'DATABRICKS' | 'REDSHIFT' | 'SMARTLOOK' | 'MOUSEFLOW' | 'KLAVIYO' | 'FULLSTORY' | 'AMPLITUDE' | 'SNOWPLOW' | 'JUNE' | 'MPARTICLE' | 'BIGQUERY' | 'RUDDERSTACK' | 'SNOWFLAKE' | 'GLASSBOX' | 'HUBSPOT' | 'AIR360' | 'DATADOG' | 'QUANTUM_METRIC' | 'GLASSBOX_V2' | 'BRAZE' | 'KAMELEOON_TRACKING' | 'CUSTOM_TRACKING' | 'VERCEL' | 'AKAMAI'>) | undefined, type: 'CLICK' | 'CUSTOM' | 'SCROLL' | 'PAGE_VIEWS' | 'URL' | 'TIME_SPENT' | 'RETENTION_RATE' | 'WAREHOUSE' | 'RATIO_METRICS'}; export type UpdateApiGoalsGoalIdArgs = {goalId: number, body: Goal}; export type UpdateApiGoalsGoalIdOptions = {baseUrl?: string | undefined, bearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * Update goal * * PUT /goals/{goalId} */ export const updateApiGoalsGoalId = async (args: UpdateApiGoalsGoalIdArgs, options?: UpdateApiGoalsGoalIdOptions) => { 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(/\/+$/, '')}/goals/${encodeURIComponent(String(args.goalId))}${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() };