@postrun/js 3.1.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client/core/bodySerializer.gen.ts","../src/client/core/serverSentEvents.gen.ts","../src/client/core/pathSerializer.gen.ts","../src/client/core/utils.gen.ts","../src/client/core/auth.gen.ts","../src/client/client/utils.gen.ts","../src/client/client/client.gen.ts","../src/client/client.gen.ts","../src/client/sdk.gen.ts","../src/client/@tanstack/react-query.gen.ts"],"names":["joinedValues","config","request","url"],"mappings":"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","file":"query.js","sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { ArrayStyle, ObjectStyle, SerializerOptions } from './pathSerializer.gen';\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: unknown) => unknown;\n\ntype QuerySerializerOptionsObject = {\n allowReserved?: boolean;\n array?: Partial<SerializerOptions<ArrayStyle>>;\n object?: Partial<SerializerOptions<ObjectStyle>>;\n};\n\nexport type QuerySerializerOptions = QuerySerializerOptionsObject & {\n /**\n * Per-parameter serialization overrides. When provided, these settings\n * override the global array/object settings for specific parameter names.\n */\n parameters?: Record<string, QuerySerializerOptionsObject>;\n};\n\nconst serializeFormDataPair = (data: FormData, key: string, value: unknown): void => {\n if (typeof value === 'string' || value instanceof Blob) {\n data.append(key, value);\n } else if (value instanceof Date) {\n data.append(key, value.toISOString());\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nconst serializeUrlSearchParamsPair = (data: URLSearchParams, key: string, value: unknown): void => {\n if (typeof value === 'string') {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const formDataBodySerializer = {\n bodySerializer: (body: unknown): FormData => {\n const data = new FormData();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n } else {\n serializeFormDataPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nexport const jsonBodySerializer = {\n bodySerializer: (body: unknown): string =>\n JSON.stringify(body, (_key, value) => (typeof value === 'bigint' ? value.toString() : value)),\n};\n\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: (body: unknown): string => {\n const data = new URLSearchParams();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n } else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n\n return data.toString();\n },\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Config } from './types.gen';\n\nexport type ServerSentEventsOptions<TData = unknown> = Omit<RequestInit, 'method'> &\n Pick<Config, 'method' | 'responseTransformer' | 'responseValidator'> & {\n /**\n * Fetch API implementation. You can use this option to provide a custom\n * fetch instance.\n *\n * @default globalThis.fetch\n */\n fetch?: typeof fetch;\n /**\n * Implementing clients can call request interceptors inside this hook.\n */\n onRequest?: (url: string, init: RequestInit) => Promise<Request>;\n /**\n * Callback invoked when a network or parsing error occurs during streaming.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param error The error that occurred.\n */\n onSseError?: (error: unknown) => void;\n /**\n * Callback invoked when an event is streamed from the server.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param event Event streamed from the server.\n * @returns Nothing (void).\n */\n onSseEvent?: (event: StreamEvent<TData>) => void;\n serializedBody?: RequestInit['body'];\n /**\n * Default retry delay in milliseconds.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 3000\n */\n sseDefaultRetryDelay?: number;\n /**\n * Maximum number of retry attempts before giving up.\n */\n sseMaxRetryAttempts?: number;\n /**\n * Maximum retry delay in milliseconds.\n *\n * Applies only when exponential backoff is used.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 30000\n */\n sseMaxRetryDelay?: number;\n /**\n * Optional sleep function for retry backoff.\n *\n * Defaults to using `setTimeout`.\n */\n sseSleepFn?: (ms: number) => Promise<void>;\n url: string;\n };\n\nexport interface StreamEvent<TData = unknown> {\n data: TData;\n event?: string;\n id?: string;\n retry?: number;\n}\n\nexport type ServerSentEventsResult<TData = unknown, TReturn = void, TNext = unknown> = {\n stream: AsyncGenerator<\n TData extends Record<string, unknown> ? TData[keyof TData] : TData,\n TReturn,\n TNext\n >;\n};\n\nexport function createSseClient<TData = unknown>({\n onRequest,\n onSseError,\n onSseEvent,\n responseTransformer,\n responseValidator,\n sseDefaultRetryDelay,\n sseMaxRetryAttempts,\n sseMaxRetryDelay,\n sseSleepFn,\n url,\n ...options\n}: ServerSentEventsOptions): ServerSentEventsResult<TData> {\n let lastEventId: string | undefined;\n\n const sleep = sseSleepFn ?? ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)));\n\n const createStream = async function* () {\n let retryDelay: number = sseDefaultRetryDelay ?? 3000;\n let attempt = 0;\n const signal = options.signal ?? new AbortController().signal;\n\n while (true) {\n if (signal.aborted) break;\n\n attempt++;\n\n const headers =\n options.headers instanceof Headers\n ? options.headers\n : new Headers(options.headers as Record<string, string> | undefined);\n\n if (lastEventId !== undefined) {\n headers.set('Last-Event-ID', lastEventId);\n }\n\n try {\n const requestInit: RequestInit = {\n redirect: 'follow',\n ...options,\n body: options.serializedBody,\n headers,\n signal,\n };\n let request = new Request(url, requestInit);\n if (onRequest) {\n request = await onRequest(url, requestInit);\n }\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = options.fetch ?? globalThis.fetch;\n const response = await _fetch(request);\n\n if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);\n\n if (!response.body) throw new Error('No body in SSE response');\n\n const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n\n let buffer = '';\n\n const abortHandler = () => {\n try {\n reader.cancel();\n } catch {\n // noop\n }\n };\n\n signal.addEventListener('abort', abortHandler);\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += value;\n buffer = buffer.replace(/\\r\\n?/g, '\\n'); // normalize line endings\n\n const chunks = buffer.split('\\n\\n');\n buffer = chunks.pop() ?? '';\n\n for (const chunk of chunks) {\n const lines = chunk.split('\\n');\n const dataLines: Array<string> = [];\n let eventName: string | undefined;\n\n for (const line of lines) {\n if (line.startsWith('data:')) {\n dataLines.push(line.replace(/^data:\\s*/, ''));\n } else if (line.startsWith('event:')) {\n eventName = line.replace(/^event:\\s*/, '');\n } else if (line.startsWith('id:')) {\n lastEventId = line.replace(/^id:\\s*/, '');\n } else if (line.startsWith('retry:')) {\n const parsed = Number.parseInt(line.replace(/^retry:\\s*/, ''), 10);\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed;\n }\n }\n }\n\n let data: unknown;\n let parsedJson = false;\n\n if (dataLines.length) {\n const rawData = dataLines.join('\\n');\n try {\n data = JSON.parse(rawData);\n parsedJson = true;\n } catch {\n data = rawData;\n }\n }\n\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data);\n }\n\n if (responseTransformer) {\n data = await responseTransformer(data);\n }\n }\n\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay,\n });\n\n if (dataLines.length) {\n yield data as any;\n }\n }\n }\n } finally {\n signal.removeEventListener('abort', abortHandler);\n reader.releaseLock();\n }\n\n break; // exit loop on normal completion\n } catch (error) {\n // connection failed or aborted; retry after delay\n onSseError?.(error);\n\n if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {\n break; // stop after firing error\n }\n\n // exponential backoff: double retry each attempt, cap at 30s\n const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000);\n await sleep(backoff);\n }\n }\n };\n\n const stream = createStream();\n\n return { stream };\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\ninterface SerializeOptions<T> extends SerializePrimitiveOptions, SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean;\n name: string;\n}\n\nexport interface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean;\n style: T;\n}\n\nexport type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\nexport type ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string;\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle): '.' | ';' | ',' | '&' => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle): ',' | '|' | '%20' => {\n switch (style) {\n case 'form':\n return ',';\n case 'pipeDelimited':\n return '|';\n case 'spaceDelimited':\n return '%20';\n default:\n return ',';\n }\n};\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle): '.' | ';' | ',' | '&' => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[];\n}): string => {\n if (!explode) {\n const joinedValues = (\n allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n ).join(separatorArrayNoExplode(style));\n switch (style) {\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n case 'simple':\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === 'label' || style === 'simple') {\n return allowReserved ? v : encodeURIComponent(v as string);\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n });\n })\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n\nexport const serializePrimitiveParam = ({\n allowReserved,\n name,\n value,\n}: SerializePrimitiveParam): string => {\n if (value === undefined || value === null) {\n return '';\n }\n\n if (typeof value === 'object') {\n throw new Error(\n 'Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.',\n );\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nexport const serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date;\n valueOnly?: boolean;\n}): string => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n\n if (style !== 'deepObject' && !explode) {\n let values: string[] = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [...values, key, allowReserved ? (v as string) : encodeURIComponent(v as string)];\n });\n const joinedValues = values.join(',');\n switch (style) {\n case 'form':\n return `${name}=${joinedValues}`;\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === 'deepObject' ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { BodySerializer, QuerySerializer } from './bodySerializer.gen';\nimport {\n type ArraySeparatorStyle,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from './pathSerializer.gen';\n\nexport interface PathSerializer {\n path: Record<string, unknown>;\n url: string;\n}\n\nexport const PATH_PARAM_RE: RegExp = /\\{[^{}]+\\}/g;\n\nexport const defaultPathSerializer = ({ path, url: _url }: PathSerializer): string => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style: ArraySeparatorStyle = 'simple';\n\n if (name.endsWith('*')) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n\n if (name.startsWith('.')) {\n name = name.substring(1);\n style = 'label';\n } else if (name.startsWith(';')) {\n name = name.substring(1);\n style = 'matrix';\n }\n\n const value = path[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n url = url.replace(match, serializeArrayParam({ explode, name, style, value }));\n continue;\n }\n\n if (typeof value === 'object') {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n valueOnly: true,\n }),\n );\n continue;\n }\n\n if (style === 'matrix') {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n );\n continue;\n }\n\n const replaceValue = encodeURIComponent(\n style === 'label' ? `.${value as string}` : (value as string),\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl?: string;\n path?: Record<string, unknown>;\n query?: Record<string, unknown>;\n querySerializer: QuerySerializer;\n url: string;\n}): string => {\n const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n let url = (baseUrl ?? '') + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : '';\n if (search.startsWith('?')) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n\nexport function getValidRequestBody(options: {\n body?: unknown;\n bodySerializer?: BodySerializer | null;\n serializedBody?: unknown;\n}): unknown {\n const hasBody = options.body !== undefined;\n const isSerializedBody = hasBody && options.bodySerializer;\n\n if (isSerializedBody) {\n if ('serializedBody' in options) {\n const hasSerializedBody =\n options.serializedBody !== undefined && options.serializedBody !== '';\n\n return hasSerializedBody ? options.serializedBody : null;\n }\n\n // not all clients implement a serializedBody property (i.e., client-axios)\n return options.body !== '' ? options.body : null;\n }\n\n // plain/text body\n if (hasBody) {\n return options.body;\n }\n\n // no body was provided\n return undefined;\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\nexport type AuthToken = string | undefined;\n\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * A unique identifier for the security scheme.\n *\n * Defined only when there are multiple security schemes whose `Auth`\n * shape would otherwise be identical.\n */\n key?: string;\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n auth: Auth,\n callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n const token = typeof callback === 'function' ? await callback(auth) : callback;\n\n if (!token) {\n return;\n }\n\n if (auth.scheme === 'bearer') {\n return `Bearer ${token}`;\n }\n\n if (auth.scheme === 'basic') {\n return `Basic ${btoa(token)}`;\n }\n\n return token;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { getAuthToken } from '../core/auth.gen';\nimport type { QuerySerializerOptions } from '../core/bodySerializer.gen';\nimport { jsonBodySerializer } from '../core/bodySerializer.gen';\nimport {\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from '../core/pathSerializer.gen';\nimport { getUrl } from '../core/utils.gen';\nimport type { Client, ClientOptions, Config, RequestOptions } from './types.gen';\n\nexport const createQuerySerializer = <T = unknown>({\n parameters = {},\n ...args\n}: QuerySerializerOptions = {}): ((queryParams: T) => string) => {\n const querySerializer = (queryParams: T): string => {\n const search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n const options = parameters[name] || args;\n\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...options.array,\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === 'object') {\n const serializedObject = serializeObjectParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...options.object,\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved: options.allowReserved,\n name,\n value: value as string,\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (contentType: string | null): Exclude<Config['parseAs'], 'auto'> => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return 'stream';\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (cleanContent.startsWith('application/json') || cleanContent.endsWith('+json')) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) => cleanContent.startsWith(type))\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n\n return;\n};\n\nconst checkForExistence = (\n options: Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n },\n name?: string,\n): boolean => {\n if (!name) {\n return false;\n }\n if (\n options.headers.has(name) ||\n options.query?.[name] ||\n options.headers.get('Cookie')?.includes(`${name}=`)\n ) {\n return true;\n }\n return false;\n};\n\nexport async function setAuthParams(\n options: Pick<RequestOptions, 'auth' | 'query' | 'security'> & {\n headers: Headers;\n },\n): Promise<void> {\n for (const auth of options.security ?? []) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n\n const token = await getAuthToken(auth, options.auth);\n\n if (!token) {\n continue;\n }\n\n const name = auth.name ?? 'Authorization';\n\n switch (auth.in) {\n case 'query':\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case 'cookie':\n options.headers.append('Cookie', `${name}=${token}`);\n break;\n case 'header':\n default:\n options.headers.set(name, token);\n break;\n }\n }\n}\n\nexport const buildUrl: Client['buildUrl'] = (options) =>\n getUrl({\n baseUrl: options.baseUrl as string,\n path: options.path,\n query: options.query,\n querySerializer:\n typeof options.querySerializer === 'function'\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n });\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nconst headersEntries = (headers: Headers): Array<[string, string]> => {\n const entries: Array<[string, string]> = [];\n headers.forEach((value, key) => {\n entries.push([key, value]);\n });\n return entries;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header) {\n continue;\n }\n\n const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e., their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n /** response may be undefined due to a network error where no response object is produced */\n response: Res | undefined,\n /** request may be undefined, because error may be from building the request object itself */\n request: Req | undefined,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (request: Req, options: Options) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n fns: Array<Interceptor | null> = [];\n\n clear(): void {\n this.fns = [];\n }\n\n eject(id: number | Interceptor): void {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = null;\n }\n }\n\n exists(id: number | Interceptor): boolean {\n const index = this.getInterceptorIndex(id);\n return Boolean(this.fns[index]);\n }\n\n getInterceptorIndex(id: number | Interceptor): number {\n if (typeof id === 'number') {\n return this.fns[id] ? id : -1;\n }\n return this.fns.indexOf(id);\n }\n\n update(id: number | Interceptor, fn: Interceptor): number | Interceptor | false {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = fn;\n return id;\n }\n return false;\n }\n\n use(fn: Interceptor): number {\n this.fns.push(fn);\n return this.fns.length - 1;\n }\n}\n\nexport interface Middleware<Req, Res, Err, Options> {\n error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;\n request: Interceptors<ReqInterceptor<Req, Options>>;\n response: Interceptors<ResInterceptor<Res, Req, Options>>;\n}\n\nexport const createInterceptors = <Req, Res, Err, Options>(): Middleware<\n Req,\n Res,\n Err,\n Options\n> => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { createSseClient } from '../core/serverSentEvents.gen';\nimport type { HttpMethod } from '../core/types.gen';\nimport { getValidRequestBody } from '../core/utils.gen';\nimport type { Client, Config, RequestOptions, ResolvedRequestOptions } from './types.gen';\nimport {\n buildUrl,\n createConfig,\n createInterceptors,\n getParseAs,\n mergeConfigs,\n mergeHeaders,\n setAuthParams,\n} from './utils.gen';\n\ntype ReqInit = Omit<RequestInit, 'body' | 'headers'> & {\n body?: any;\n headers: ReturnType<typeof mergeHeaders>;\n};\n\nexport const createClient = (config: Config = {}): Client => {\n let _config = mergeConfigs(createConfig(), config);\n\n const getConfig = (): Config => ({ ..._config });\n\n const setConfig = (config: Config): Config => {\n _config = mergeConfigs(_config, config);\n return getConfig();\n };\n\n const interceptors = createInterceptors<Request, Response, unknown, ResolvedRequestOptions>();\n\n const beforeRequest = async <\n TData = unknown,\n TResponseStyle extends 'data' | 'fields' = 'fields',\n ThrowOnError extends boolean = boolean,\n Url extends string = string,\n >(\n options: RequestOptions<TData, TResponseStyle, ThrowOnError, Url>,\n ) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: undefined as string | undefined,\n };\n\n if (opts.security) {\n await setAuthParams(opts);\n }\n\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n\n if (opts.body !== undefined && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body) as string | undefined;\n }\n\n // remove Content-Type header if body is empty to avoid sending invalid requests\n if (opts.body === undefined || opts.serializedBody === '') {\n opts.headers.delete('Content-Type');\n }\n\n const resolvedOpts = opts as typeof opts &\n ResolvedRequestOptions<TResponseStyle, ThrowOnError, Url>;\n const url = buildUrl(resolvedOpts);\n\n return { opts: resolvedOpts, url };\n };\n\n const request: Client['request'] = async (options) => {\n const throwOnError = options.throwOnError ?? _config.throwOnError;\n const responseStyle = options.responseStyle ?? _config.responseStyle;\n\n let request: Request | undefined;\n let response: Response | undefined;\n\n try {\n const { opts, url } = await beforeRequest(options);\n const requestInit: ReqInit = {\n redirect: 'follow',\n ...opts,\n body: getValidRequestBody(opts),\n };\n\n request = new Request(url, requestInit);\n\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = opts.fetch!;\n\n response = await _fetch(request);\n\n for (const fn of interceptors.response.fns) {\n if (fn) {\n response = await fn(response, request, opts);\n }\n }\n\n const result = {\n request,\n response,\n };\n\n if (response.ok) {\n const parseAs =\n (opts.parseAs === 'auto'\n ? getParseAs(response.headers.get('Content-Type'))\n : opts.parseAs) ?? 'json';\n\n if (response.status === 204 || response.headers.get('Content-Length') === '0') {\n let emptyData: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'text':\n emptyData = await response[parseAs]();\n break;\n case 'formData':\n emptyData = new FormData();\n break;\n case 'stream':\n emptyData = response.body;\n break;\n case 'json':\n default:\n emptyData = {};\n break;\n }\n return opts.responseStyle === 'data'\n ? emptyData\n : {\n data: emptyData,\n ...result,\n };\n }\n\n let data: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'formData':\n case 'text':\n data = await response[parseAs]();\n break;\n case 'json': {\n // Some servers return 200 with no Content-Length and empty body.\n // response.json() would throw; read as text and parse if non-empty.\n const text = await response.text();\n data = text ? JSON.parse(text) : {};\n break;\n }\n case 'stream':\n return opts.responseStyle === 'data'\n ? response.body\n : {\n data: response.body,\n ...result,\n };\n }\n\n if (parseAs === 'json') {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n\n return opts.responseStyle === 'data'\n ? data\n : {\n data,\n ...result,\n };\n }\n\n const textError = await response.text();\n let jsonError: unknown;\n\n try {\n jsonError = JSON.parse(textError);\n } catch {\n // noop\n }\n\n throw jsonError ?? textError;\n } catch (error) {\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = await fn(finalError, response, request, options as ResolvedRequestOptions);\n }\n }\n\n finalError = finalError || {};\n\n if (throwOnError) {\n throw finalError;\n }\n\n // TODO: we probably want to return error and improve types\n return responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n request,\n response,\n };\n }\n };\n\n const makeMethodFn = (method: Uppercase<HttpMethod>) => (options: RequestOptions) =>\n request({ ...options, method });\n\n const makeSseFn = (method: Uppercase<HttpMethod>) => async (options: RequestOptions) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body as BodyInit | null | undefined,\n method,\n onRequest: async (url, init) => {\n let request = new Request(url, init);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n return request;\n },\n serializedBody: getValidRequestBody(opts) as BodyInit | null | undefined,\n url,\n });\n };\n\n const _buildUrl: Client['buildUrl'] = (options) => buildUrl({ ..._config, ...options });\n\n return {\n buildUrl: _buildUrl,\n connect: makeMethodFn('CONNECT'),\n delete: makeMethodFn('DELETE'),\n get: makeMethodFn('GET'),\n getConfig,\n head: makeMethodFn('HEAD'),\n interceptors,\n options: makeMethodFn('OPTIONS'),\n patch: makeMethodFn('PATCH'),\n post: makeMethodFn('POST'),\n put: makeMethodFn('PUT'),\n request,\n setConfig,\n sse: {\n connect: makeSseFn('CONNECT'),\n delete: makeSseFn('DELETE'),\n get: makeSseFn('GET'),\n head: makeSseFn('HEAD'),\n options: makeSseFn('OPTIONS'),\n patch: makeSseFn('PATCH'),\n post: makeSseFn('POST'),\n put: makeSseFn('PUT'),\n trace: makeSseFn('TRACE'),\n },\n trace: makeMethodFn('TRACE'),\n } as Client;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type Client, type ClientOptions, type Config, createClient, createConfig } from './client';\nimport type { ClientOptions as ClientOptions2 } from './types.gen';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client: Client = createClient(createConfig<ClientOptions2>({ baseUrl: 'https://api.postrun.ai/v1', throwOnError: true }));\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Client, ClientMeta, Options as Options2, RequestResult, TDataShape } from './client';\nimport { client } from './client.gen';\nimport type { ConnectionsConnectData, ConnectionsConnectErrors, ConnectionsConnectResponses, ConnectionsDeleteData, ConnectionsDeleteErrors, ConnectionsDeleteResponses, ConnectionsGetData, ConnectionsGetErrors, ConnectionsGetResponses, ConnectionsListAccountsData, ConnectionsListAccountsErrors, ConnectionsListAccountsResponses, ConnectionsListByProfileData, ConnectionsListByProfileErrors, ConnectionsListByProfileResponses, ConnectionsSelectData, ConnectionsSelectErrors, ConnectionsSelectResponses, GoogleCreateAdData, GoogleCreateAdErrors, GoogleCreateAdGroupCriterionData, GoogleCreateAdGroupCriterionErrors, GoogleCreateAdGroupCriterionResponses, GoogleCreateAdGroupData, GoogleCreateAdGroupErrors, GoogleCreateAdGroupResponses, GoogleCreateAdResponses, GoogleCreateBudgetData, GoogleCreateBudgetErrors, GoogleCreateBudgetResponses, GoogleCreateCampaignCriterionData, GoogleCreateCampaignCriterionErrors, GoogleCreateCampaignCriterionResponses, GoogleCreateCampaignData, GoogleCreateCampaignErrors, GoogleCreateCampaignResponses, GoogleCreateConversionActionData, GoogleCreateConversionActionErrors, GoogleCreateConversionActionResponses, GoogleCreateDisplayAdData, GoogleCreateDisplayAdErrors, GoogleCreateDisplayAdResponses, GoogleCreateKeywordData, GoogleCreateKeywordErrors, GoogleCreateKeywordResponses, GoogleEditAccountData, GoogleEditAccountErrors, GoogleEditAccountResponses, GoogleEditAdGroupData, GoogleEditAdGroupErrors, GoogleEditAdGroupResponses, GoogleEditBudgetData, GoogleEditBudgetErrors, GoogleEditBudgetResponses, GoogleEditCampaignData, GoogleEditCampaignErrors, GoogleEditCampaignResponses, GoogleEnableAdData, GoogleEnableAdErrors, GoogleEnableAdGroupData, GoogleEnableAdGroupErrors, GoogleEnableAdGroupResponses, GoogleEnableAdResponses, GoogleEnableCampaignData, GoogleEnableCampaignErrors, GoogleEnableCampaignResponses, GoogleEnableKeywordData, GoogleEnableKeywordErrors, GoogleEnableKeywordResponses, GoogleGetAccountData, GoogleGetAccountErrors, GoogleGetAccountResponses, GoogleGetAdData, GoogleGetAdErrors, GoogleGetAdGroupData, GoogleGetAdGroupErrors, GoogleGetAdGroupResponses, GoogleGetAdResponses, GoogleGetAdTreeData, GoogleGetAdTreeErrors, GoogleGetAdTreeResponses, GoogleGetCampaignData, GoogleGetCampaignErrors, GoogleGetCampaignResponses, GoogleGetConversionActionData, GoogleGetConversionActionErrors, GoogleGetConversionActionResponses, GoogleGetConversionStatusData, GoogleGetConversionStatusErrors, GoogleGetConversionStatusResponses, GoogleGetInsightsData, GoogleGetInsightsErrors, GoogleGetInsightsResponses, GoogleGetKeywordData, GoogleGetKeywordErrors, GoogleGetKeywordResponses, GoogleListAdGroupCriteriaData, GoogleListAdGroupCriteriaErrors, GoogleListAdGroupCriteriaResponses, GoogleListAdGroupsData, GoogleListAdGroupsErrors, GoogleListAdGroupsResponses, GoogleListAdsData, GoogleListAdsErrors, GoogleListAdsResponses, GoogleListAudiencesData, GoogleListAudiencesErrors, GoogleListAudiencesResponses, GoogleListCampaignCriteriaData, GoogleListCampaignCriteriaErrors, GoogleListCampaignCriteriaResponses, GoogleListCampaignsData, GoogleListCampaignsErrors, GoogleListCampaignsResponses, GoogleListConversionActionsData, GoogleListConversionActionsErrors, GoogleListConversionActionsResponses, GoogleListConversionGoalsData, GoogleListConversionGoalsErrors, GoogleListConversionGoalsResponses, GoogleListConversionRequestsData, GoogleListConversionRequestsErrors, GoogleListConversionRequestsResponses, GoogleListKeywordsData, GoogleListKeywordsErrors, GoogleListKeywordsResponses, GooglePauseAdData, GooglePauseAdErrors, GooglePauseAdGroupData, GooglePauseAdGroupErrors, GooglePauseAdGroupResponses, GooglePauseAdResponses, GooglePauseCampaignData, GooglePauseCampaignErrors, GooglePauseCampaignResponses, GooglePauseKeywordData, GooglePauseKeywordErrors, GooglePauseKeywordResponses, GoogleRemoveAdData, GoogleRemoveAdErrors, GoogleRemoveAdGroupCriterionData, GoogleRemoveAdGroupCriterionErrors, GoogleRemoveAdGroupCriterionResponses, GoogleRemoveAdGroupData, GoogleRemoveAdGroupErrors, GoogleRemoveAdGroupResponses, GoogleRemoveAdResponses, GoogleRemoveBudgetData, GoogleRemoveBudgetErrors, GoogleRemoveBudgetResponses, GoogleRemoveCampaignCriterionData, GoogleRemoveCampaignCriterionErrors, GoogleRemoveCampaignCriterionResponses, GoogleRemoveCampaignData, GoogleRemoveCampaignErrors, GoogleRemoveCampaignResponses, GoogleRemoveKeywordData, GoogleRemoveKeywordErrors, GoogleRemoveKeywordResponses, GoogleRunGaqlData, GoogleRunGaqlErrors, GoogleRunGaqlResponses, GoogleSearchGeoTargetsData, GoogleSearchGeoTargetsErrors, GoogleSearchGeoTargetsResponses, GoogleSendConversionsData, GoogleSendConversionsErrors, GoogleSendConversionsResponses, GoogleSetAdGroupBidsData, GoogleSetAdGroupBidsErrors, GoogleSetAdGroupBidsResponses, GoogleSetCampaignGeoSettingsData, GoogleSetCampaignGeoSettingsErrors, GoogleSetCampaignGeoSettingsResponses, GoogleSetCampaignTargetingSettingData, GoogleSetCampaignTargetingSettingErrors, GoogleSetCampaignTargetingSettingResponses, GoogleSetConversionGoalData, GoogleSetConversionGoalErrors, GoogleSetConversionGoalResponses, GoogleSetKeywordBidData, GoogleSetKeywordBidErrors, GoogleSetKeywordBidResponses, GoogleUploadImageAssetData, GoogleUploadImageAssetErrors, GoogleUploadImageAssetResponses, LogsGetData, LogsGetErrors, LogsGetResponses, LogsListData, LogsListErrors, LogsListResponses, MediaAbortData, MediaAbortErrors, MediaAbortResponses, MediaCompleteData, MediaCompleteErrors, MediaCompleteResponses, MediaCreateData, MediaCreateErrors, MediaCreateResponses, MediaDeleteData, MediaDeleteErrors, MediaDeleteResponses, MediaGetData, MediaGetErrors, MediaGetResponses, MediaListData, MediaListErrors, MediaListPartsData, MediaListPartsErrors, MediaListPartsResponses, MediaListResponses, MediaSignPartData, MediaSignPartErrors, MediaSignPartResponses, MediaUpdateData, MediaUpdateErrors, MediaUpdateResponses, MetaAccountData, MetaAccountErrors, MetaAccountResponses, MetaAdData, MetaAdErrors, MetaAdResponses, MetaAdsData, MetaAdsErrors, MetaAdsetData, MetaAdsetErrors, MetaAdsetResponses, MetaAdsetsData, MetaAdsetsErrors, MetaAdsetsResponses, MetaAdsResponses, MetaCampaignData, MetaCampaignErrors, MetaCampaignResponses, MetaCampaignsData, MetaCampaignsErrors, MetaCampaignsResponses, MetaInsightsData, MetaInsightsErrors, MetaInsightsResponses, PostsCreateData, PostsCreateErrors, PostsCreateResponses, PostsDeleteData, PostsDeleteErrors, PostsDeleteResponses, PostsGetData, PostsGetErrors, PostsGetResponses, PostsListData, PostsListErrors, PostsListResponses, PostsUpdateData, PostsUpdateErrors, PostsUpdateResponses, PostsValidateData, PostsValidateErrors, PostsValidateResponses, ProfilesCreateData, ProfilesCreateErrors, ProfilesCreateResponses, ProfilesDeleteData, ProfilesDeleteErrors, ProfilesDeleteResponses, ProfilesGetData, ProfilesGetErrors, ProfilesGetResponses, ProfilesListData, ProfilesListErrors, ProfilesListResponses, ProfilesUpdateData, ProfilesUpdateErrors, ProfilesUpdateResponses, TiktokCreatorInfoData, TiktokCreatorInfoErrors, TiktokCreatorInfoResponses, TokensMintData, TokensMintErrors, TokensMintResponses, WebhooksCreateEndpointData, WebhooksCreateEndpointErrors, WebhooksCreateEndpointResponses, WebhooksCreatePortalData, WebhooksCreatePortalErrors, WebhooksCreatePortalResponses, WebhooksDeleteEndpointData, WebhooksDeleteEndpointErrors, WebhooksDeleteEndpointResponses, WebhooksGetEndpointData, WebhooksGetEndpointErrors, WebhooksGetEndpointResponses, WebhooksListEndpointsData, WebhooksListEndpointsErrors, WebhooksListEndpointsResponses, WebhooksListEventTypesData, WebhooksListEventTypesErrors, WebhooksListEventTypesResponses, WebhooksPingData, WebhooksPingErrors, WebhooksPingResponses, WebhooksUpdateEndpointData, WebhooksUpdateEndpointErrors, WebhooksUpdateEndpointResponses } from './types.gen';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: keyof ClientMeta extends never ? Record<string, unknown> : ClientMeta;\n};\n\n/**\n * List profiles\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the profiles under your account, newest first.\n */\nexport const profilesList = <ThrowOnError extends boolean = true>(options?: Options<ProfilesListData, ThrowOnError>): RequestResult<ProfilesListResponses, ProfilesListErrors, ThrowOnError> => (options?.client ?? client).get<ProfilesListResponses, ProfilesListErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles',\n ...options\n});\n\n/**\n * Create a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:write` with account-wide profile scope (`all`); a profile-scoped token cannot create.\n *\n * Creates a profile — a client/brand workspace under your account, and the unit connections attach to.\n */\nexport const profilesCreate = <ThrowOnError extends boolean = true>(options: Options<ProfilesCreateData, ThrowOnError>): RequestResult<ProfilesCreateResponses, ProfilesCreateErrors, ThrowOnError> => (options.client ?? client).post<ProfilesCreateResponses, ProfilesCreateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:write` scoped to the target profile.\n *\n * Deletes a profile. The profile must have no connections — delete its connections first (and a connection in turn cannot be deleted while a post still publishes through it).\n */\nexport const profilesDelete = <ThrowOnError extends boolean = true>(options: Options<ProfilesDeleteData, ThrowOnError>): RequestResult<ProfilesDeleteResponses, ProfilesDeleteErrors, ThrowOnError> => (options.client ?? client).delete<ProfilesDeleteResponses, ProfilesDeleteErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles/{id}',\n ...options\n});\n\n/**\n * Retrieve a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:read` scoped to the target profile.\n *\n * Retrieves a single profile by id.\n */\nexport const profilesGet = <ThrowOnError extends boolean = true>(options: Options<ProfilesGetData, ThrowOnError>): RequestResult<ProfilesGetResponses, ProfilesGetErrors, ThrowOnError> => (options.client ?? client).get<ProfilesGetResponses, ProfilesGetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles/{id}',\n ...options\n});\n\n/**\n * Update a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:write` scoped to the target profile.\n *\n * Updates a profile. Send only the fields you want to change; provide at least one.\n */\nexport const profilesUpdate = <ThrowOnError extends boolean = true>(options: Options<ProfilesUpdateData, ThrowOnError>): RequestResult<ProfilesUpdateResponses, ProfilesUpdateErrors, ThrowOnError> => (options.client ?? client).patch<ProfilesUpdateResponses, ProfilesUpdateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List a profile's connections\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the target profile.\n *\n * Lists the external accounts connected to a profile, most recent first. Returns 404 if the profile doesn't exist in your account.\n */\nexport const connectionsListByProfile = <ThrowOnError extends boolean = true>(options: Options<ConnectionsListByProfileData, ThrowOnError>): RequestResult<ConnectionsListByProfileResponses, ConnectionsListByProfileErrors, ThrowOnError> => (options.client ?? client).get<ConnectionsListByProfileResponses, ConnectionsListByProfileErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles/{id}/connections',\n ...options\n});\n\n/**\n * Delete a connection\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:write` scoped to the profile that owns the connection.\n *\n * Disconnects a connection. Returns a deletion marker; returns 404 if it does not exist in your account. Disconnect is unconditional — any scheduled posts that target this connection are not blocked; they fail gracefully at publish time with a `connection_removed` error until you reconnect and reschedule.\n */\nexport const connectionsDelete = <ThrowOnError extends boolean = true>(options: Options<ConnectionsDeleteData, ThrowOnError>): RequestResult<ConnectionsDeleteResponses, ConnectionsDeleteErrors, ThrowOnError> => (options.client ?? client).delete<ConnectionsDeleteResponses, ConnectionsDeleteErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/connections/{id}',\n ...options\n});\n\n/**\n * Retrieve a connection\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single connection by id.\n */\nexport const connectionsGet = <ThrowOnError extends boolean = true>(options: Options<ConnectionsGetData, ThrowOnError>): RequestResult<ConnectionsGetResponses, ConnectionsGetErrors, ThrowOnError> => (options.client ?? client).get<ConnectionsGetResponses, ConnectionsGetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/connections/{id}',\n ...options\n});\n\n/**\n * Select a connection account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:write` scoped to the profile that owns the connection.\n *\n * Activates a pending connection by choosing which external account (e.g. which Meta ad account) it uses. The account must be one reachable through the connection’s OAuth grant; its canonical name + currency are resolved server-side from discovery, so the stored display values can’t be spoofed by the caller.\n */\nexport const connectionsSelect = <ThrowOnError extends boolean = true>(options: Options<ConnectionsSelectData, ThrowOnError>): RequestResult<ConnectionsSelectResponses, ConnectionsSelectErrors, ThrowOnError> => (options.client ?? client).patch<ConnectionsSelectResponses, ConnectionsSelectErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/connections/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List a connection’s discoverable accounts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the profile that owns the connection.\n *\n * Lists the external ad accounts reachable through this connection’s OAuth grant — the picker shown after OAuth, while the connection is still pending account selection. Returns 404 if the connection does not exist in your account, and 501 if account discovery is not yet supported for the connection’s platform.\n */\nexport const connectionsListAccounts = <ThrowOnError extends boolean = true>(options: Options<ConnectionsListAccountsData, ThrowOnError>): RequestResult<ConnectionsListAccountsResponses, ConnectionsListAccountsErrors, ThrowOnError> => (options.client ?? client).get<ConnectionsListAccountsResponses, ConnectionsListAccountsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/connections/{id}/accounts',\n ...options\n});\n\n/**\n * Connect a platform account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:write` scoped to the target profile.\n *\n * Starts an OAuth connect flow for a platform on this profile. Returns a short-lived session the client uses to authorize; the connection is created once authorization succeeds.\n */\nexport const connectionsConnect = <ThrowOnError extends boolean = true>(options: Options<ConnectionsConnectData, ThrowOnError>): RequestResult<ConnectionsConnectResponses, ConnectionsConnectErrors, ThrowOnError> => (options.client ?? client).post<ConnectionsConnectResponses, ConnectionsConnectErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles/{id}/connect',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the media assets under your account, newest first. Filter by profile, status, kind, your own external_id, or metadata.\n */\nexport const mediaList = <ThrowOnError extends boolean = true>(options?: Options<MediaListData, ThrowOnError>): RequestResult<MediaListResponses, MediaListErrors, ThrowOnError> => (options?.client ?? client).get<MediaListResponses, MediaListErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media',\n ...options\n});\n\n/**\n * Upload media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the target profile.\n *\n * Creates a media asset. Two ways to supply the bytes: (1) omit `source_url` and upload the bytes with the returned multipart `upload` session — chunk the file at `part_size`, sign each part via `POST /media/{id}/multipart/sign`, PUT the bytes, then `POST /media/{id}/multipart/complete` (the direct-upload path; `upload` is non-null and resumable), or (2) supply a public `https` `source_url` and we fetch the bytes server-side, validate, transform, and store them (the import path; `upload` is null). Either way the asset settles through the same probe/transform flow.\n */\nexport const mediaCreate = <ThrowOnError extends boolean = true>(options: Options<MediaCreateData, ThrowOnError>): RequestResult<MediaCreateResponses, MediaCreateErrors, ThrowOnError> => (options.client ?? client).post<MediaCreateResponses, MediaCreateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Deletes a media asset and its stored renditions.\n */\nexport const mediaDelete = <ThrowOnError extends boolean = true>(options: Options<MediaDeleteData, ThrowOnError>): RequestResult<MediaDeleteResponses, MediaDeleteErrors, ThrowOnError> => (options.client ?? client).delete<MediaDeleteResponses, MediaDeleteErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}',\n ...options\n});\n\n/**\n * Retrieve media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:read` scoped to the profile that owns the media asset.\n *\n * Retrieves a media asset, including its per-platform processing status and renditions.\n */\nexport const mediaGet = <ThrowOnError extends boolean = true>(options: Options<MediaGetData, ThrowOnError>): RequestResult<MediaGetResponses, MediaGetErrors, ThrowOnError> => (options.client ?? client).get<MediaGetResponses, MediaGetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}',\n ...options\n});\n\n/**\n * Update media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Updates a media asset (alt text, metadata, external_id) or adds `targets` to pre-warm more platforms. Send only the fields to change.\n */\nexport const mediaUpdate = <ThrowOnError extends boolean = true>(options: Options<MediaUpdateData, ThrowOnError>): RequestResult<MediaUpdateResponses, MediaUpdateErrors, ThrowOnError> => (options.client ?? client).patch<MediaUpdateResponses, MediaUpdateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Sign an upload part\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Returns a presigned URL to PUT one part of a multipart upload. Chunk the file at the session’s `part_size` and sign each 1-indexed part; read each part PUT’s `ETag` for `complete`.\n */\nexport const mediaSignPart = <ThrowOnError extends boolean = true>(options: Options<MediaSignPartData, ThrowOnError>): RequestResult<MediaSignPartResponses, MediaSignPartErrors, ThrowOnError> => (options.client ?? client).post<MediaSignPartResponses, MediaSignPartErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}/multipart/sign',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List uploaded parts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Lists the parts already uploaded for this asset’s multipart upload (ascending). Skip re-uploading these to resume after a dropped connection.\n */\nexport const mediaListParts = <ThrowOnError extends boolean = true>(options: Options<MediaListPartsData, ThrowOnError>): RequestResult<MediaListPartsResponses, MediaListPartsErrors, ThrowOnError> => (options.client ?? client).get<MediaListPartsResponses, MediaListPartsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}/multipart/parts',\n ...options\n});\n\n/**\n * Complete an upload\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Finishes a multipart upload by assembling the uploaded parts. Send every part as `{ part_number, etag }`. Idempotent: completing an already-finished upload returns the asset.\n */\nexport const mediaComplete = <ThrowOnError extends boolean = true>(options: Options<MediaCompleteData, ThrowOnError>): RequestResult<MediaCompleteResponses, MediaCompleteErrors, ThrowOnError> => (options.client ?? client).post<MediaCompleteResponses, MediaCompleteErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}/multipart/complete',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Abort an upload\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Aborts an in-flight multipart upload and discards its parts. Idempotent: aborting an already-finished or unknown upload still returns the asset.\n */\nexport const mediaAbort = <ThrowOnError extends boolean = true>(options: Options<MediaAbortData, ThrowOnError>): RequestResult<MediaAbortResponses, MediaAbortErrors, ThrowOnError> => (options.client ?? client).post<MediaAbortResponses, MediaAbortErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}/multipart/abort',\n ...options\n});\n\n/**\n * List posts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the posts under your account, newest first. Filter by profile or your own external_id.\n */\nexport const postsList = <ThrowOnError extends boolean = true>(options?: Options<PostsListData, ThrowOnError>): RequestResult<PostsListResponses, PostsListErrors, ThrowOnError> => (options?.client ?? client).get<PostsListResponses, PostsListErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/posts',\n ...options\n});\n\n/**\n * Create a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:write` scoped to the target profile.\n *\n * Composes a post + its per-channel variants. `publish` decides the outcome: `now` publishes immediately, `schedule` publishes at `schedule_at`, `draft` just stores it.\n */\nexport const postsCreate = <ThrowOnError extends boolean = true>(options: Options<PostsCreateData, ThrowOnError>): RequestResult<PostsCreateResponses, PostsCreateErrors, ThrowOnError> => (options.client ?? client).post<PostsCreateResponses, PostsCreateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/posts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:write` scoped to the profile that owns the post.\n *\n * Deletes a post and its variants. Returns a deletion marker; 404 if it does not exist in your account. Already-published posts are not retracted from the platform.\n */\nexport const postsDelete = <ThrowOnError extends boolean = true>(options: Options<PostsDeleteData, ThrowOnError>): RequestResult<PostsDeleteResponses, PostsDeleteErrors, ThrowOnError> => (options.client ?? client).delete<PostsDeleteResponses, PostsDeleteErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/posts/{id}',\n ...options\n});\n\n/**\n * Retrieve a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` scoped to the profile that owns the post.\n *\n * Retrieves a single post by id, including its per-channel variants and their derived status.\n */\nexport const postsGet = <ThrowOnError extends boolean = true>(options: Options<PostsGetData, ThrowOnError>): RequestResult<PostsGetResponses, PostsGetErrors, ThrowOnError> => (options.client ?? client).get<PostsGetResponses, PostsGetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/posts/{id}',\n ...options\n});\n\n/**\n * Update a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:write` scoped to the profile that owns the post.\n *\n * Edits a post and/or transitions its publish state (`draft` / `schedule` / `now`). Valid only while the post is draft or scheduled. Send only the fields to change; providing `variants` replaces the whole set.\n */\nexport const postsUpdate = <ThrowOnError extends boolean = true>(options: Options<PostsUpdateData, ThrowOnError>): RequestResult<PostsUpdateResponses, PostsUpdateErrors, ThrowOnError> => (options.client ?? client).patch<PostsUpdateResponses, PostsUpdateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/posts/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Validate a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` scoped to the target profile.\n *\n * Runs the exact ownership + publish-readiness checks the create path runs under dry_run, with no side effects. Returns a per-issue verdict (`publishable` + `issues[]`) on 200; a reference to a connection/media outside the profile is a typed 422.\n */\nexport const postsValidate = <ThrowOnError extends boolean = true>(options: Options<PostsValidateData, ThrowOnError>): RequestResult<PostsValidateResponses, PostsValidateErrors, ThrowOnError> => (options.client ?? client).post<PostsValidateResponses, PostsValidateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/posts/validate',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve the Meta ad account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves the Meta ad account this connection is linked to — name, currency, status, and spend. Monetary fields are in the account currency’s minor units.\n */\nexport const metaAccount = <ThrowOnError extends boolean = true>(options: Options<MetaAccountData, ThrowOnError>): RequestResult<MetaAccountResponses, MetaAccountErrors, ThrowOnError> => (options.client ?? client).get<MetaAccountResponses, MetaAccountErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/account',\n ...options\n});\n\n/**\n * Retrieve Meta ad insights\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves performance insights for the connection’s Meta ad account, aggregated at the chosen `level` over a date window. Metric values are strings, in the account currency’s units.\n */\nexport const metaInsights = <ThrowOnError extends boolean = true>(options: Options<MetaInsightsData, ThrowOnError>): RequestResult<MetaInsightsResponses, MetaInsightsErrors, ThrowOnError> => (options.client ?? client).get<MetaInsightsResponses, MetaInsightsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/insights',\n ...options\n});\n\n/**\n * List Meta campaigns\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the campaigns under the connection’s Meta ad account, with each campaign’s status, objective, and budgets (budgets in the account currency’s minor units).\n */\nexport const metaCampaigns = <ThrowOnError extends boolean = true>(options: Options<MetaCampaignsData, ThrowOnError>): RequestResult<MetaCampaignsResponses, MetaCampaignsErrors, ThrowOnError> => (options.client ?? client).get<MetaCampaignsResponses, MetaCampaignsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/campaigns',\n ...options\n});\n\n/**\n * Retrieve a Meta campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single campaign under the connection’s Meta ad account by its campaign id — status, objective, and budgets.\n */\nexport const metaCampaign = <ThrowOnError extends boolean = true>(options: Options<MetaCampaignData, ThrowOnError>): RequestResult<MetaCampaignResponses, MetaCampaignErrors, ThrowOnError> => (options.client ?? client).get<MetaCampaignResponses, MetaCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/campaigns/{campaign_id}',\n ...options\n});\n\n/**\n * List Meta ad sets\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the ad sets under the connection’s Meta ad account, with each ad set’s status, parent campaign, budgets, and optimization (budgets in the account currency’s minor units).\n */\nexport const metaAdsets = <ThrowOnError extends boolean = true>(options: Options<MetaAdsetsData, ThrowOnError>): RequestResult<MetaAdsetsResponses, MetaAdsetsErrors, ThrowOnError> => (options.client ?? client).get<MetaAdsetsResponses, MetaAdsetsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/adsets',\n ...options\n});\n\n/**\n * Retrieve a Meta ad set\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single ad set under the connection’s Meta ad account by its ad set id — status, parent campaign, budgets, and optimization.\n */\nexport const metaAdset = <ThrowOnError extends boolean = true>(options: Options<MetaAdsetData, ThrowOnError>): RequestResult<MetaAdsetResponses, MetaAdsetErrors, ThrowOnError> => (options.client ?? client).get<MetaAdsetResponses, MetaAdsetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/adsets/{adset_id}',\n ...options\n});\n\n/**\n * List Meta ads\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the ads under the connection’s Meta ad account, with each ad’s status, parent ad set and campaign ids, and timestamps.\n */\nexport const metaAds = <ThrowOnError extends boolean = true>(options: Options<MetaAdsData, ThrowOnError>): RequestResult<MetaAdsResponses, MetaAdsErrors, ThrowOnError> => (options.client ?? client).get<MetaAdsResponses, MetaAdsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/ads',\n ...options\n});\n\n/**\n * Retrieve a Meta ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single ad under the connection’s Meta ad account by its ad id — status, parent ad set and campaign ids, and timestamps.\n */\nexport const metaAd = <ThrowOnError extends boolean = true>(options: Options<MetaAdData, ThrowOnError>): RequestResult<MetaAdResponses, MetaAdErrors, ThrowOnError> => (options.client ?? client).get<MetaAdResponses, MetaAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/ads/{ad_id}',\n ...options\n});\n\n/**\n * Retrieve the connected Google Ads account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the Google Ads account (the `customer` resource) backing this connection — id, descriptive name, currency, time zone, status, and whether it is a manager (MCC) or test account.\n */\nexport const googleGetAccount = <ThrowOnError extends boolean = true>(options: Options<GoogleGetAccountData, ThrowOnError>): RequestResult<GoogleGetAccountResponses, GoogleGetAccountErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetAccountResponses, GoogleGetAccountErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/account',\n ...options\n});\n\n/**\n * Edit Google Ads account URL settings\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates the account-level (customer) URL tracking settings — tracking_url_template and final_url_suffix. A campaign-level template overrides the account one. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditAccount = <ThrowOnError extends boolean = true>(options: Options<GoogleEditAccountData, ThrowOnError>): RequestResult<GoogleEditAccountResponses, GoogleEditAccountErrors, ThrowOnError> => (options.client ?? client).patch<GoogleEditAccountResponses, GoogleEditAccountErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/url-settings',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Google Ads performance insights\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Performance metrics for the connection’s account, at a chosen level (account / campaign / ad group / ad / keyword), for a date range, with optional breakdowns. Leaf levels (ad / keyword) require an `ad_group_id`; campaign / ad group accept an optional `campaign_id`. Each row carries its `parent_id`, so the tree is assemblable. The flagship cross-checked read; use `/gaql` for anything outside this shape.\n */\nexport const googleGetInsights = <ThrowOnError extends boolean = true>(options: Options<GoogleGetInsightsData, ThrowOnError>): RequestResult<GoogleGetInsightsResponses, GoogleGetInsightsErrors, ThrowOnError> => (options.client ?? client).post<GoogleGetInsightsResponses, GoogleGetInsightsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/insights',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Google Ads campaign tree\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * The campaign → ad_group → ad/keyword tree as flat, native, typed nodes — group them by `parent_id` to assemble the tree. Without `campaign_id`, returns every campaign (all channel types) with a per-type `child_kind`/`expandable` hint. With `campaign_id`, returns that campaign’s whole supported subtree (ad groups + the type’s leaf — keywords for Search, ads for Display/Video/Demand Gen) in one batched fetch at a single window. By default REMOVED nodes are hidden at every level; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED). Each node carries `budget_micros` (campaign nodes only), Google’s authoritative per-level metrics (no client roll-up), `cost_micros`, and `cost` (account currency).\n */\nexport const googleGetAdTree = <ThrowOnError extends boolean = true>(options: Options<GoogleGetAdTreeData, ThrowOnError>): RequestResult<GoogleGetAdTreeResponses, GoogleGetAdTreeErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetAdTreeResponses, GoogleGetAdTreeErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads/tree',\n ...options\n});\n\n/**\n * Run a raw GAQL query\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Runs a raw Google Ads Query Language (GAQL) query against the connection’s account and returns the native rows. Read-only (GAQL only does `SELECT`). The power-user escape hatch beneath the typed reads.\n */\nexport const googleRunGaql = <ThrowOnError extends boolean = true>(options: Options<GoogleRunGaqlData, ThrowOnError>): RequestResult<GoogleRunGaqlResponses, GoogleRunGaqlErrors, ThrowOnError> => (options.client ?? client).post<GoogleRunGaqlResponses, GoogleRunGaqlErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/gaql',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create a Google Ads campaign budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Creates a standalone daily campaign budget (the `campaign_budget` resource) on the connection’s account. Money write — secret-key-only. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name to chain into a campaign.\n */\nexport const googleCreateBudget = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateBudgetData, ThrowOnError>): RequestResult<GoogleCreateBudgetResponses, GoogleCreateBudgetErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateBudgetResponses, GoogleCreateBudgetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/budgets',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Edit a Google Ads campaign budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Updates a budget’s daily amount (in micros) by numeric id. Money write — secret-key-only. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditBudget = <ThrowOnError extends boolean = true>(options: Options<GoogleEditBudgetData, ThrowOnError>): RequestResult<GoogleEditBudgetResponses, GoogleEditBudgetErrors, ThrowOnError> => (options.client ?? client).patch<GoogleEditBudgetResponses, GoogleEditBudgetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/budgets/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads campaign budget\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes a campaign budget by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveBudget = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveBudgetData, ThrowOnError>): RequestResult<GoogleRemoveBudgetResponses, GoogleRemoveBudgetErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveBudgetResponses, GoogleRemoveBudgetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/budgets/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads campaigns\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the campaigns (the `campaign` resource) on the connection’s account — id, name, status, advertising channel type, and bidding strategy type.\n */\nexport const googleListCampaigns = <ThrowOnError extends boolean = true>(options: Options<GoogleListCampaignsData, ThrowOnError>): RequestResult<GoogleListCampaignsResponses, GoogleListCampaignsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListCampaignsResponses, GoogleListCampaignsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns',\n ...options\n});\n\n/**\n * Create a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a Search or Display campaign (the `campaign` resource) on the connection’s account, attached to an existing budget. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateCampaign = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateCampaignData, ThrowOnError>): RequestResult<GoogleCreateCampaignResponses, GoogleCreateCampaignErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateCampaignResponses, GoogleCreateCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single campaign (the `campaign` resource) by its numeric id on the connection’s account — id, name, status, advertising channel type, and bidding strategy type.\n */\nexport const googleGetCampaign = <ThrowOnError extends boolean = true>(options: Options<GoogleGetCampaignData, ThrowOnError>): RequestResult<GoogleGetCampaignResponses, GoogleGetCampaignErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetCampaignResponses, GoogleGetCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{id}',\n ...options\n});\n\n/**\n * Edit a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates a campaign’s non-money fields — its name and URL tracking settings (tracking_url_template, final_url_suffix, url_custom_parameters) — by numeric id. Status has its own pause/enable endpoints; bids are a separate money write. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditCampaign = <ThrowOnError extends boolean = true>(options: Options<GoogleEditCampaignData, ThrowOnError>): RequestResult<GoogleEditCampaignResponses, GoogleEditCampaignErrors, ThrowOnError> => (options.client ?? client).patch<GoogleEditCampaignResponses, GoogleEditCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes a campaign by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveCampaign = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveCampaignData, ThrowOnError>): RequestResult<GoogleRemoveCampaignResponses, GoogleRemoveCampaignErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveCampaignResponses, GoogleRemoveCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Pause a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses a campaign by its numeric id (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseCampaign = <ThrowOnError extends boolean = true>(options: Options<GooglePauseCampaignData, ThrowOnError>): RequestResult<GooglePauseCampaignResponses, GooglePauseCampaignErrors, ThrowOnError> => (options.client ?? client).post<GooglePauseCampaignResponses, GooglePauseCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{id}/pause',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Enable a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) a campaign by its numeric id. Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableCampaign = <ThrowOnError extends boolean = true>(options: Options<GoogleEnableCampaignData, ThrowOnError>): RequestResult<GoogleEnableCampaignResponses, GoogleEnableCampaignErrors, ThrowOnError> => (options.client ?? client).post<GoogleEnableCampaignResponses, GoogleEnableCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{id}/enable',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Search Google Ads geo targets\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Resolves a free-text location name (e.g. \"New York\") to matching geo target constants — each with id, name, canonical name, country code, target type, and status. Use a result’s `resource_name` (e.g. `geoTargetConstants/2840`), NOT the bare `id`, as the `geo_target_constant` of a location criterion.\n */\nexport const googleSearchGeoTargets = <ThrowOnError extends boolean = true>(options: Options<GoogleSearchGeoTargetsData, ThrowOnError>): RequestResult<GoogleSearchGeoTargetsResponses, GoogleSearchGeoTargetsErrors, ThrowOnError> => (options.client ?? client).get<GoogleSearchGeoTargetsResponses, GoogleSearchGeoTargetsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/geo-targets/search',\n ...options\n});\n\n/**\n * List Google Ads campaign targeting criteria\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists a campaign’s targeting criteria. LOCATION and LANGUAGE are fully modelled (geo_target_constant / language_constant, status, negative flag); any other criterion type is returned as { type, criterion_id }.\n */\nexport const googleListCampaignCriteria = <ThrowOnError extends boolean = true>(options: Options<GoogleListCampaignCriteriaData, ThrowOnError>): RequestResult<GoogleListCampaignCriteriaResponses, GoogleListCampaignCriteriaErrors, ThrowOnError> => (options.client ?? client).get<GoogleListCampaignCriteriaResponses, GoogleListCampaignCriteriaErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{campaign_id}/criteria',\n ...options\n});\n\n/**\n * Add a Google Ads campaign targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Adds a geo (location) or language targeting criterion to a campaign. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateCampaignCriterion = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateCampaignCriterionData, ThrowOnError>): RequestResult<GoogleCreateCampaignCriterionResponses, GoogleCreateCampaignCriterionErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateCampaignCriterionResponses, GoogleCreateCampaignCriterionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{campaign_id}/criteria',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads campaign targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes a campaign targeting criterion by its criterion id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveCampaignCriterion = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveCampaignCriterionData, ThrowOnError>): RequestResult<GoogleRemoveCampaignCriterionResponses, GoogleRemoveCampaignCriterionErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveCampaignCriterionResponses, GoogleRemoveCampaignCriterionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{campaign_id}/criteria/{criterion_id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Set a Google Ads campaign’s geo target type\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets a campaign’s geo target type — presence (people in the location) vs presence-or-interest (also people interested in it) — for positive and/or excluded locations. Pass `dry_run: true` to validate without applying.\n */\nexport const googleSetCampaignGeoSettings = <ThrowOnError extends boolean = true>(options: Options<GoogleSetCampaignGeoSettingsData, ThrowOnError>): RequestResult<GoogleSetCampaignGeoSettingsResponses, GoogleSetCampaignGeoSettingsErrors, ThrowOnError> => (options.client ?? client).patch<GoogleSetCampaignGeoSettingsResponses, GoogleSetCampaignGeoSettingsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{campaign_id}/geo-settings',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads ad groups\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the ad groups (Google’s equivalent of an ad set) in the Google Ads account backing this connection — id, name, status, type, and parent campaign. Pass `campaign_id` to return only the ad groups under one campaign. By default REMOVED ad groups are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListAdGroups = <ThrowOnError extends boolean = true>(options: Options<GoogleListAdGroupsData, ThrowOnError>): RequestResult<GoogleListAdGroupsResponses, GoogleListAdGroupsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListAdGroupsResponses, GoogleListAdGroupsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups',\n ...options\n});\n\n/**\n * Create a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates an ad group (the `ad_group` resource) under a campaign on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name to chain into ads and keywords.\n */\nexport const googleCreateAdGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateAdGroupData, ThrowOnError>): RequestResult<GoogleCreateAdGroupResponses, GoogleCreateAdGroupErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateAdGroupResponses, GoogleCreateAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single ad group by its numeric id from the Google Ads account backing this connection — id, name, status, type, and parent campaign.\n */\nexport const googleGetAdGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleGetAdGroupData, ThrowOnError>): RequestResult<GoogleGetAdGroupResponses, GoogleGetAdGroupErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetAdGroupResponses, GoogleGetAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{id}',\n ...options\n});\n\n/**\n * Edit a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates an ad group’s non-money fields (its name) by numeric id. Status has its own pause/enable endpoints; bids are a separate money write. Pass `dry_run: true` to validate without applying.\n */\nexport const googleEditAdGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleEditAdGroupData, ThrowOnError>): RequestResult<GoogleEditAdGroupResponses, GoogleEditAdGroupErrors, ThrowOnError> => (options.client ?? client).patch<GoogleEditAdGroupResponses, GoogleEditAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Set a Google Ads ad group’s bids\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets an ad group’s manual bids (cpc/cpm/target CPA in micros, target ROAS as a ratio) by numeric id. Money write — secret-key-only. Pass `dry_run: true` to validate without applying.\n */\nexport const googleSetAdGroupBids = <ThrowOnError extends boolean = true>(options: Options<GoogleSetAdGroupBidsData, ThrowOnError>): RequestResult<GoogleSetAdGroupBidsResponses, GoogleSetAdGroupBidsErrors, ThrowOnError> => (options.client ?? client).patch<GoogleSetAdGroupBidsResponses, GoogleSetAdGroupBidsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{id}/bids',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes an ad group by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAdGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveAdGroupData, ThrowOnError>): RequestResult<GoogleRemoveAdGroupResponses, GoogleRemoveAdGroupErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveAdGroupResponses, GoogleRemoveAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Pause a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses an ad group by its numeric id (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseAdGroup = <ThrowOnError extends boolean = true>(options: Options<GooglePauseAdGroupData, ThrowOnError>): RequestResult<GooglePauseAdGroupResponses, GooglePauseAdGroupErrors, ThrowOnError> => (options.client ?? client).post<GooglePauseAdGroupResponses, GooglePauseAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{id}/pause',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Enable a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) an ad group by its numeric id. Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableAdGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleEnableAdGroupData, ThrowOnError>): RequestResult<GoogleEnableAdGroupResponses, GoogleEnableAdGroupErrors, ThrowOnError> => (options.client ?? client).post<GoogleEnableAdGroupResponses, GoogleEnableAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{id}/enable',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads ad-group targeting criteria\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists an ad group’s targeting criteria. The four demographics (AGE_RANGE, GENDER, INCOME_RANGE, PARENTAL_STATUS) are fully modelled (with their value, status, and negative flag); any other criterion type (e.g. KEYWORD) is returned as { type, criterion_id }.\n */\nexport const googleListAdGroupCriteria = <ThrowOnError extends boolean = true>(options: Options<GoogleListAdGroupCriteriaData, ThrowOnError>): RequestResult<GoogleListAdGroupCriteriaResponses, GoogleListAdGroupCriteriaErrors, ThrowOnError> => (options.client ?? client).get<GoogleListAdGroupCriteriaResponses, GoogleListAdGroupCriteriaErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{ad_group_id}/criteria',\n ...options\n});\n\n/**\n * Add a Google Ads ad-group targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Adds a demographic (age range, gender, income range, or parental status) or audience (user list, audience, or custom audience) targeting criterion to an ad group. Audience criteria reference the `resource_name` returned by the audiences discovery read (`GET .../audiences`). Set `negative: true` to exclude instead of target. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateAdGroupCriterion = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateAdGroupCriterionData, ThrowOnError>): RequestResult<GoogleCreateAdGroupCriterionResponses, GoogleCreateAdGroupCriterionErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateAdGroupCriterionResponses, GoogleCreateAdGroupCriterionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{ad_group_id}/criteria',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads ad-group targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes an ad-group targeting criterion by its criterion id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAdGroupCriterion = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveAdGroupCriterionData, ThrowOnError>): RequestResult<GoogleRemoveAdGroupCriterionResponses, GoogleRemoveAdGroupCriterionErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveAdGroupCriterionResponses, GoogleRemoveAdGroupCriterionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{ad_group_id}/criteria/{criterion_id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads audiences available to target\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the user lists and audiences available to attach to an ad group, each with the `resource_name` you pass as the user_list / audience of an ad-group audience criterion. Optional `q` filters by name; `kind` narrows to one audience kind.\n */\nexport const googleListAudiences = <ThrowOnError extends boolean = true>(options: Options<GoogleListAudiencesData, ThrowOnError>): RequestResult<GoogleListAudiencesResponses, GoogleListAudiencesErrors, ThrowOnError> => (options.client ?? client).get<GoogleListAudiencesResponses, GoogleListAudiencesErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/audiences',\n ...options\n});\n\n/**\n * Set a Google Ads campaign’s targeting setting\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets a campaign’s targeting setting for one dimension (e.g. AUDIENCE): Observation (`bid_only: true` — does NOT narrow reach) vs Targeting (`bid_only: false` — narrows reach to the targeted criteria). Campaign + dimension scoped: shared by every audience criterion in the campaign. Pass `dry_run: true` to validate without applying. Note: Google rejects setting this on a campaign whose ad group already has a targeting setting (and vice versa).\n */\nexport const googleSetCampaignTargetingSetting = <ThrowOnError extends boolean = true>(options: Options<GoogleSetCampaignTargetingSettingData, ThrowOnError>): RequestResult<GoogleSetCampaignTargetingSettingResponses, GoogleSetCampaignTargetingSettingErrors, ThrowOnError> => (options.client ?? client).patch<GoogleSetCampaignTargetingSettingResponses, GoogleSetCampaignTargetingSettingErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{campaign_id}/targeting-setting',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads ads\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the ads (the `ad_group_ad` resource) on the connection’s account — id, name, creative type, serving status, and the owning ad group. Pass `ad_group_id` to return only the ads under one ad group. By default REMOVED ads are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListAds = <ThrowOnError extends boolean = true>(options: Options<GoogleListAdsData, ThrowOnError>): RequestResult<GoogleListAdsResponses, GoogleListAdsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListAdsResponses, GoogleListAdsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads',\n ...options\n});\n\n/**\n * Create a Google Ads responsive search ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a Responsive Search Ad (the `ad_group_ad` resource, inline text — no image assets) under an ad group on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateAd = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateAdData, ThrowOnError>): RequestResult<GoogleCreateAdResponses, GoogleCreateAdErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateAdResponses, GoogleCreateAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single ad (the `ad_group_ad` resource) by its composite id ({ad_group_id}~{ad_id}) on the connection’s account — id, name, creative type, serving status, and the owning ad group.\n */\nexport const googleGetAd = <ThrowOnError extends boolean = true>(options: Options<GoogleGetAdData, ThrowOnError>): RequestResult<GoogleGetAdResponses, GoogleGetAdErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetAdResponses, GoogleGetAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads/{id}',\n ...options\n});\n\n/**\n * Create a Google Ads responsive display ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a Responsive Display Ad (the `ad_group_ad` resource) under a Display ad group on the connection’s account, assembled from already-uploaded image-asset resource_names (upload them first via POST /v1/google/{connection_id}/assets). Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateDisplayAd = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateDisplayAdData, ThrowOnError>): RequestResult<GoogleCreateDisplayAdResponses, GoogleCreateDisplayAdErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateDisplayAdResponses, GoogleCreateDisplayAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/display-ads',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes an ad (an `ad_group_ad`) by its composite id ({ad_group_id}~{ad_id}) (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAd = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveAdData, ThrowOnError>): RequestResult<GoogleRemoveAdResponses, GoogleRemoveAdErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveAdResponses, GoogleRemoveAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Pause a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses an ad by its composite id ({ad_group_id}~{ad_id}) (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseAd = <ThrowOnError extends boolean = true>(options: Options<GooglePauseAdData, ThrowOnError>): RequestResult<GooglePauseAdResponses, GooglePauseAdErrors, ThrowOnError> => (options.client ?? client).post<GooglePauseAdResponses, GooglePauseAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads/{id}/pause',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Enable a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) an ad by its composite id ({ad_group_id}~{ad_id}). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableAd = <ThrowOnError extends boolean = true>(options: Options<GoogleEnableAdData, ThrowOnError>): RequestResult<GoogleEnableAdResponses, GoogleEnableAdErrors, ThrowOnError> => (options.client ?? client).post<GoogleEnableAdResponses, GoogleEnableAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads/{id}/enable',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads keywords\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the keywords (`ad_group_criterion` of type KEYWORD) in the connection’s account — each with its criterion id, text, match type, status, negative flag, and owning ad group. Pass `ad_group_id` to return only the keywords under one ad group. By default REMOVED keywords are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListKeywords = <ThrowOnError extends boolean = true>(options: Options<GoogleListKeywordsData, ThrowOnError>): RequestResult<GoogleListKeywordsResponses, GoogleListKeywordsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListKeywordsResponses, GoogleListKeywordsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords',\n ...options\n});\n\n/**\n * Create a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a keyword (an `ad_group_criterion` of type KEYWORD) under an ad group on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateKeyword = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateKeywordData, ThrowOnError>): RequestResult<GoogleCreateKeywordResponses, GoogleCreateKeywordErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateKeywordResponses, GoogleCreateKeywordErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns one keyword (`ad_group_criterion` of type KEYWORD) by its composite id ({ad_group_id}~{criterion_id}), from the connection’s account — text, match type, status, negative flag, and owning ad group.\n */\nexport const googleGetKeyword = <ThrowOnError extends boolean = true>(options: Options<GoogleGetKeywordData, ThrowOnError>): RequestResult<GoogleGetKeywordResponses, GoogleGetKeywordErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetKeywordResponses, GoogleGetKeywordErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords/{id}',\n ...options\n});\n\n/**\n * Set a Google Ads keyword’s bid\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets a keyword’s manual CPC bid (in micros) by its composite id ({ad_group_id}~{criterion_id}). Money write — secret-key-only. Pass `dry_run: true` to validate without applying.\n */\nexport const googleSetKeywordBid = <ThrowOnError extends boolean = true>(options: Options<GoogleSetKeywordBidData, ThrowOnError>): RequestResult<GoogleSetKeywordBidResponses, GoogleSetKeywordBidErrors, ThrowOnError> => (options.client ?? client).patch<GoogleSetKeywordBidResponses, GoogleSetKeywordBidErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords/{id}/bid',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes a keyword (an `ad_group_criterion`) by its composite id ({ad_group_id}~{criterion_id}) (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveKeyword = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveKeywordData, ThrowOnError>): RequestResult<GoogleRemoveKeywordResponses, GoogleRemoveKeywordErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveKeywordResponses, GoogleRemoveKeywordErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Pause a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses a keyword (`ad_group_criterion`) by its composite id ({ad_group_id}~{criterion_id}) (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseKeyword = <ThrowOnError extends boolean = true>(options: Options<GooglePauseKeywordData, ThrowOnError>): RequestResult<GooglePauseKeywordResponses, GooglePauseKeywordErrors, ThrowOnError> => (options.client ?? client).post<GooglePauseKeywordResponses, GooglePauseKeywordErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords/{id}/pause',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Enable a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) a keyword (`ad_group_criterion`) by its composite id ({ad_group_id}~{criterion_id}). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableKeyword = <ThrowOnError extends boolean = true>(options: Options<GoogleEnableKeywordData, ThrowOnError>): RequestResult<GoogleEnableKeywordResponses, GoogleEnableKeywordErrors, ThrowOnError> => (options.client ?? client).post<GoogleEnableKeywordResponses, GoogleEnableKeywordErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords/{id}/enable',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads conversion actions\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the conversion actions (the `conversion_action` resource) on the connection’s account — id, name, status, type, category, origin, primary-goal flag, counting type, value settings, and tag snippets.\n */\nexport const googleListConversionActions = <ThrowOnError extends boolean = true>(options: Options<GoogleListConversionActionsData, ThrowOnError>): RequestResult<GoogleListConversionActionsResponses, GoogleListConversionActionsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListConversionActionsResponses, GoogleListConversionActionsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversion-actions',\n ...options\n});\n\n/**\n * Create a Google Ads conversion action\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a conversion action (the `conversion_action` resource) — a website tag (WEBPAGE) or an offline/API-reported action (UPLOAD_CLICKS) — on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateConversionAction = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateConversionActionData, ThrowOnError>): RequestResult<GoogleCreateConversionActionResponses, GoogleCreateConversionActionErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateConversionActionResponses, GoogleCreateConversionActionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversion-actions',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve a Google Ads conversion action\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single conversion action (the `conversion_action` resource) by its numeric id on the connection’s account.\n */\nexport const googleGetConversionAction = <ThrowOnError extends boolean = true>(options: Options<GoogleGetConversionActionData, ThrowOnError>): RequestResult<GoogleGetConversionActionResponses, GoogleGetConversionActionErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetConversionActionResponses, GoogleGetConversionActionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversion-actions/{id}',\n ...options\n});\n\n/**\n * Send Google Ads conversion events\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sends a batch of conversion events (1–2000) for one conversion action on the connection’s account, via the Data Manager API. Plaintext identifiers (email / phone / address) are hashed server-side. Pass `dry_run: true` to validate against Google without sending. Returns a request id; poll the status read with it for per-reason processing results.\n */\nexport const googleSendConversions = <ThrowOnError extends boolean = true>(options: Options<GoogleSendConversionsData, ThrowOnError>): RequestResult<GoogleSendConversionsResponses, GoogleSendConversionsErrors, ThrowOnError> => (options.client ?? client).post<GoogleSendConversionsResponses, GoogleSendConversionsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversions:send',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve Google Ads conversion send status\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the per-destination, count-by-reason processing status for a prior conversion send (by its `request_id`) — the total events submitted, the error breakdown (with typed codes), and informational warnings. `destinations` is EMPTY for the first ~minute after a send (Google registers the request asynchronously) — poll until it populates.\n */\nexport const googleGetConversionStatus = <ThrowOnError extends boolean = true>(options: Options<GoogleGetConversionStatusData, ThrowOnError>): RequestResult<GoogleGetConversionStatusResponses, GoogleGetConversionStatusErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetConversionStatusResponses, GoogleGetConversionStatusErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversions/status',\n ...options\n});\n\n/**\n * List Google Ads conversion sends\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the history of conversion sends made on this connection (newest first) — each with its `request_id`, the conversion action it targeted, and how many events you submitted. Poll the status read with a `request_id` for that send’s per-destination processing result.\n */\nexport const googleListConversionRequests = <ThrowOnError extends boolean = true>(options: Options<GoogleListConversionRequestsData, ThrowOnError>): RequestResult<GoogleListConversionRequestsResponses, GoogleListConversionRequestsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListConversionRequestsResponses, GoogleListConversionRequestsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversions',\n ...options\n});\n\n/**\n * List Google Ads conversion goals\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the conversion goals (the `customer_conversion_goal` resource) on the connection’s account — category, origin, and whether each is biddable. Google auto-creates these per category × origin.\n */\nexport const googleListConversionGoals = <ThrowOnError extends boolean = true>(options: Options<GoogleListConversionGoalsData, ThrowOnError>): RequestResult<GoogleListConversionGoalsResponses, GoogleListConversionGoalsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListConversionGoalsResponses, GoogleListConversionGoalsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversion-goals',\n ...options\n});\n\n/**\n * Set a Google Ads conversion goal’s biddable flag\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets whether a conversion goal (selected by category × origin) is biddable — a primary goal Google optimises toward, or a secondary observation-only goal. Pass `dry_run: true` to preview without applying. Returns the goal and whether it executed.\n */\nexport const googleSetConversionGoal = <ThrowOnError extends boolean = true>(options: Options<GoogleSetConversionGoalData, ThrowOnError>): RequestResult<GoogleSetConversionGoalResponses, GoogleSetConversionGoalErrors, ThrowOnError> => (options.client ?? client).post<GoogleSetConversionGoalResponses, GoogleSetConversionGoalErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversion-goals',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Upload a Google Ads image asset\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Uploads a Postrun image asset (its validated Google Ads rendition) to the connection’s account as an `image` asset, returning the new resource id + resource_name to chain into an ad/asset assembly. Pass `dry_run: true` to validate against Google without creating anything (Google’s native validate_only). The media asset must have a ready Google Ads rendition, else a 409.\n */\nexport const googleUploadImageAsset = <ThrowOnError extends boolean = true>(options: Options<GoogleUploadImageAssetData, ThrowOnError>): RequestResult<GoogleUploadImageAssetResponses, GoogleUploadImageAssetErrors, ThrowOnError> => (options.client ?? client).post<GoogleUploadImageAssetResponses, GoogleUploadImageAssetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/assets/images',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve TikTok creator info\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the profile that owns the connection.\n *\n * Retrieves the TikTok creator's publish options live from TikTok — required by TikTok's Content Posting policy to render the publishing UI: the creator nickname + avatar, the privacy options to offer (with no default), and the Comment/Duet/Stitch flags to disable. Returns 404 if the connection does not exist in your account or is not a TikTok connection, 409 if the TikTok account must be reconnected, and 502 if TikTok’s creator-info call fails.\n */\nexport const tiktokCreatorInfo = <ThrowOnError extends boolean = true>(options: Options<TiktokCreatorInfoData, ThrowOnError>): RequestResult<TiktokCreatorInfoResponses, TiktokCreatorInfoErrors, ThrowOnError> => (options.client ?? client).get<TiktokCreatorInfoResponses, TiktokCreatorInfoErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/connections/{id}/tiktok/creator-info',\n ...options\n});\n\n/**\n * List request logs\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the API activity for your account — one entry per action, newest first. Filter by profile, connection, platform, status, source, action, or time range.\n */\nexport const logsList = <ThrowOnError extends boolean = true>(options?: Options<LogsListData, ThrowOnError>): RequestResult<LogsListResponses, LogsListErrors, ThrowOnError> => (options?.client ?? client).get<LogsListResponses, LogsListErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/logs',\n ...options\n});\n\n/**\n * Retrieve a request log\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Retrieves a single request log entry by id.\n */\nexport const logsGet = <ThrowOnError extends boolean = true>(options: Options<LogsGetData, ThrowOnError>): RequestResult<LogsGetResponses, LogsGetErrors, ThrowOnError> => (options.client ?? client).get<LogsGetResponses, LogsGetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/logs/{id}',\n ...options\n});\n\n/**\n * List webhook endpoints\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the webhook endpoints registered for your account.\n */\nexport const webhooksListEndpoints = <ThrowOnError extends boolean = true>(options?: Options<WebhooksListEndpointsData, ThrowOnError>): RequestResult<WebhooksListEndpointsResponses, WebhooksListEndpointsErrors, ThrowOnError> => (options?.client ?? client).get<WebhooksListEndpointsResponses, WebhooksListEndpointsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/endpoints',\n ...options\n});\n\n/**\n * Create a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Registers a URL to receive the chosen event types. Delivery, retries, and signing are handled for you.\n */\nexport const webhooksCreateEndpoint = <ThrowOnError extends boolean = true>(options: Options<WebhooksCreateEndpointData, ThrowOnError>): RequestResult<WebhooksCreateEndpointResponses, WebhooksCreateEndpointErrors, ThrowOnError> => (options.client ?? client).post<WebhooksCreateEndpointResponses, WebhooksCreateEndpointErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/endpoints',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Deletes a webhook endpoint. Delivery to it stops immediately.\n */\nexport const webhooksDeleteEndpoint = <ThrowOnError extends boolean = true>(options: Options<WebhooksDeleteEndpointData, ThrowOnError>): RequestResult<WebhooksDeleteEndpointResponses, WebhooksDeleteEndpointErrors, ThrowOnError> => (options.client ?? client).delete<WebhooksDeleteEndpointResponses, WebhooksDeleteEndpointErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/endpoints/{id}',\n ...options\n});\n\n/**\n * Retrieve a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Retrieves a single webhook endpoint by id.\n */\nexport const webhooksGetEndpoint = <ThrowOnError extends boolean = true>(options: Options<WebhooksGetEndpointData, ThrowOnError>): RequestResult<WebhooksGetEndpointResponses, WebhooksGetEndpointErrors, ThrowOnError> => (options.client ?? client).get<WebhooksGetEndpointResponses, WebhooksGetEndpointErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/endpoints/{id}',\n ...options\n});\n\n/**\n * Update a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Updates a webhook endpoint. Send only the fields you want to change; provide at least one.\n */\nexport const webhooksUpdateEndpoint = <ThrowOnError extends boolean = true>(options: Options<WebhooksUpdateEndpointData, ThrowOnError>): RequestResult<WebhooksUpdateEndpointResponses, WebhooksUpdateEndpointErrors, ThrowOnError> => (options.client ?? client).patch<WebhooksUpdateEndpointResponses, WebhooksUpdateEndpointErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/endpoints/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create a webhook portal link\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Mints a one-time App Portal URL where you (or your customer) self-serve webhook delivery logs and signing secrets.\n */\nexport const webhooksCreatePortal = <ThrowOnError extends boolean = true>(options?: Options<WebhooksCreatePortalData, ThrowOnError>): RequestResult<WebhooksCreatePortalResponses, WebhooksCreatePortalErrors, ThrowOnError> => (options?.client ?? client).post<WebhooksCreatePortalResponses, WebhooksCreatePortalErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/portal',\n ...options\n});\n\n/**\n * List webhook event types\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the event types you can subscribe an endpoint to (the catalog).\n */\nexport const webhooksListEventTypes = <ThrowOnError extends boolean = true>(options?: Options<WebhooksListEventTypesData, ThrowOnError>): RequestResult<WebhooksListEventTypesResponses, WebhooksListEventTypesErrors, ThrowOnError> => (options?.client ?? client).get<WebhooksListEventTypesResponses, WebhooksListEventTypesErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/event-types',\n ...options\n});\n\n/**\n * Send a test event\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Emits a `webhook.ping` event to your subscribed endpoints so you can verify delivery end to end.\n */\nexport const webhooksPing = <ThrowOnError extends boolean = true>(options: Options<WebhooksPingData, ThrowOnError>): RequestResult<WebhooksPingResponses, WebhooksPingErrors, ThrowOnError> => (options.client ?? client).post<WebhooksPingResponses, WebhooksPingErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/ping',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Mint a scoped frontend token\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Mints a short-lived, profile-scoped token from your secret `pr_` key. Call this from your backend; the returned token is safe to hand to a browser, which then calls the Postrun API directly. The secret key never touches the browser.\n */\nexport const tokensMint = <ThrowOnError extends boolean = true>(options: Options<TokensMintData, ThrowOnError>): RequestResult<TokensMintResponses, TokensMintErrors, ThrowOnError> => (options.client ?? client).post<TokensMintResponses, TokensMintErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tokens',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/react-query';\n\nimport { client } from '../client.gen';\nimport { connectionsConnect, connectionsDelete, connectionsGet, connectionsListAccounts, connectionsListByProfile, connectionsSelect, googleCreateAd, googleCreateAdGroup, googleCreateAdGroupCriterion, googleCreateBudget, googleCreateCampaign, googleCreateCampaignCriterion, googleCreateConversionAction, googleCreateDisplayAd, googleCreateKeyword, googleEditAccount, googleEditAdGroup, googleEditBudget, googleEditCampaign, googleEnableAd, googleEnableAdGroup, googleEnableCampaign, googleEnableKeyword, googleGetAccount, googleGetAd, googleGetAdGroup, googleGetAdTree, googleGetCampaign, googleGetConversionAction, googleGetConversionStatus, googleGetInsights, googleGetKeyword, googleListAdGroupCriteria, googleListAdGroups, googleListAds, googleListAudiences, googleListCampaignCriteria, googleListCampaigns, googleListConversionActions, googleListConversionGoals, googleListConversionRequests, googleListKeywords, googlePauseAd, googlePauseAdGroup, googlePauseCampaign, googlePauseKeyword, googleRemoveAd, googleRemoveAdGroup, googleRemoveAdGroupCriterion, googleRemoveBudget, googleRemoveCampaign, googleRemoveCampaignCriterion, googleRemoveKeyword, googleRunGaql, googleSearchGeoTargets, googleSendConversions, googleSetAdGroupBids, googleSetCampaignGeoSettings, googleSetCampaignTargetingSetting, googleSetConversionGoal, googleSetKeywordBid, googleUploadImageAsset, logsGet, logsList, mediaAbort, mediaComplete, mediaCreate, mediaDelete, mediaGet, mediaList, mediaListParts, mediaSignPart, mediaUpdate, metaAccount, metaAd, metaAds, metaAdset, metaAdsets, metaCampaign, metaCampaigns, metaInsights, type Options, postsCreate, postsDelete, postsGet, postsList, postsUpdate, postsValidate, profilesCreate, profilesDelete, profilesGet, profilesList, profilesUpdate, tiktokCreatorInfo, tokensMint, webhooksCreateEndpoint, webhooksCreatePortal, webhooksDeleteEndpoint, webhooksGetEndpoint, webhooksListEndpoints, webhooksListEventTypes, webhooksPing, webhooksUpdateEndpoint } from '../sdk.gen';\nimport type { ConnectionsConnectData, ConnectionsConnectError, ConnectionsConnectResponse, ConnectionsDeleteData, ConnectionsDeleteError, ConnectionsDeleteResponse, ConnectionsGetData, ConnectionsGetError, ConnectionsGetResponse, ConnectionsListAccountsData, ConnectionsListAccountsError, ConnectionsListAccountsResponse, ConnectionsListByProfileData, ConnectionsListByProfileError, ConnectionsListByProfileResponse, ConnectionsSelectData, ConnectionsSelectError, ConnectionsSelectResponse, GoogleCreateAdData, GoogleCreateAdError, GoogleCreateAdGroupCriterionData, GoogleCreateAdGroupCriterionError, GoogleCreateAdGroupCriterionResponse, GoogleCreateAdGroupData, GoogleCreateAdGroupError, GoogleCreateAdGroupResponse, GoogleCreateAdResponse, GoogleCreateBudgetData, GoogleCreateBudgetError, GoogleCreateBudgetResponse, GoogleCreateCampaignCriterionData, GoogleCreateCampaignCriterionError, GoogleCreateCampaignCriterionResponse, GoogleCreateCampaignData, GoogleCreateCampaignError, GoogleCreateCampaignResponse, GoogleCreateConversionActionData, GoogleCreateConversionActionError, GoogleCreateConversionActionResponse, GoogleCreateDisplayAdData, GoogleCreateDisplayAdError, GoogleCreateDisplayAdResponse, GoogleCreateKeywordData, GoogleCreateKeywordError, GoogleCreateKeywordResponse, GoogleEditAccountData, GoogleEditAccountError, GoogleEditAccountResponse, GoogleEditAdGroupData, GoogleEditAdGroupError, GoogleEditAdGroupResponse, GoogleEditBudgetData, GoogleEditBudgetError, GoogleEditBudgetResponse, GoogleEditCampaignData, GoogleEditCampaignError, GoogleEditCampaignResponse, GoogleEnableAdData, GoogleEnableAdError, GoogleEnableAdGroupData, GoogleEnableAdGroupError, GoogleEnableAdGroupResponse, GoogleEnableAdResponse, GoogleEnableCampaignData, GoogleEnableCampaignError, GoogleEnableCampaignResponse, GoogleEnableKeywordData, GoogleEnableKeywordError, GoogleEnableKeywordResponse, GoogleGetAccountData, GoogleGetAccountError, GoogleGetAccountResponse, GoogleGetAdData, GoogleGetAdError, GoogleGetAdGroupData, GoogleGetAdGroupError, GoogleGetAdGroupResponse, GoogleGetAdResponse, GoogleGetAdTreeData, GoogleGetAdTreeError, GoogleGetAdTreeResponse, GoogleGetCampaignData, GoogleGetCampaignError, GoogleGetCampaignResponse, GoogleGetConversionActionData, GoogleGetConversionActionError, GoogleGetConversionActionResponse, GoogleGetConversionStatusData, GoogleGetConversionStatusError, GoogleGetConversionStatusResponse, GoogleGetInsightsData, GoogleGetInsightsError, GoogleGetInsightsResponse, GoogleGetKeywordData, GoogleGetKeywordError, GoogleGetKeywordResponse, GoogleListAdGroupCriteriaData, GoogleListAdGroupCriteriaError, GoogleListAdGroupCriteriaResponse, GoogleListAdGroupsData, GoogleListAdGroupsError, GoogleListAdGroupsResponse, GoogleListAdsData, GoogleListAdsError, GoogleListAdsResponse, GoogleListAudiencesData, GoogleListAudiencesError, GoogleListAudiencesResponse, GoogleListCampaignCriteriaData, GoogleListCampaignCriteriaError, GoogleListCampaignCriteriaResponse, GoogleListCampaignsData, GoogleListCampaignsError, GoogleListCampaignsResponse, GoogleListConversionActionsData, GoogleListConversionActionsError, GoogleListConversionActionsResponse, GoogleListConversionGoalsData, GoogleListConversionGoalsError, GoogleListConversionGoalsResponse, GoogleListConversionRequestsData, GoogleListConversionRequestsError, GoogleListConversionRequestsResponse, GoogleListKeywordsData, GoogleListKeywordsError, GoogleListKeywordsResponse, GooglePauseAdData, GooglePauseAdError, GooglePauseAdGroupData, GooglePauseAdGroupError, GooglePauseAdGroupResponse, GooglePauseAdResponse, GooglePauseCampaignData, GooglePauseCampaignError, GooglePauseCampaignResponse, GooglePauseKeywordData, GooglePauseKeywordError, GooglePauseKeywordResponse, GoogleRemoveAdData, GoogleRemoveAdError, GoogleRemoveAdGroupCriterionData, GoogleRemoveAdGroupCriterionError, GoogleRemoveAdGroupCriterionResponse, GoogleRemoveAdGroupData, GoogleRemoveAdGroupError, GoogleRemoveAdGroupResponse, GoogleRemoveAdResponse, GoogleRemoveBudgetData, GoogleRemoveBudgetError, GoogleRemoveBudgetResponse, GoogleRemoveCampaignCriterionData, GoogleRemoveCampaignCriterionError, GoogleRemoveCampaignCriterionResponse, GoogleRemoveCampaignData, GoogleRemoveCampaignError, GoogleRemoveCampaignResponse, GoogleRemoveKeywordData, GoogleRemoveKeywordError, GoogleRemoveKeywordResponse, GoogleRunGaqlData, GoogleRunGaqlError, GoogleRunGaqlResponse, GoogleSearchGeoTargetsData, GoogleSearchGeoTargetsError, GoogleSearchGeoTargetsResponse, GoogleSendConversionsData, GoogleSendConversionsError, GoogleSendConversionsResponse, GoogleSetAdGroupBidsData, GoogleSetAdGroupBidsError, GoogleSetAdGroupBidsResponse, GoogleSetCampaignGeoSettingsData, GoogleSetCampaignGeoSettingsError, GoogleSetCampaignGeoSettingsResponse, GoogleSetCampaignTargetingSettingData, GoogleSetCampaignTargetingSettingError, GoogleSetCampaignTargetingSettingResponse, GoogleSetConversionGoalData, GoogleSetConversionGoalError, GoogleSetConversionGoalResponse, GoogleSetKeywordBidData, GoogleSetKeywordBidError, GoogleSetKeywordBidResponse, GoogleUploadImageAssetData, GoogleUploadImageAssetError, GoogleUploadImageAssetResponse, LogsGetData, LogsGetError, LogsGetResponse, LogsListData, LogsListError, LogsListResponse, MediaAbortData, MediaAbortError, MediaAbortResponse, MediaCompleteData, MediaCompleteError, MediaCompleteResponse, MediaCreateData, MediaCreateError, MediaCreateResponse, MediaDeleteData, MediaDeleteError, MediaDeleteResponse, MediaGetData, MediaGetError, MediaGetResponse, MediaListData, MediaListError, MediaListPartsData, MediaListPartsError, MediaListPartsResponse, MediaListResponse, MediaSignPartData, MediaSignPartError, MediaSignPartResponse, MediaUpdateData, MediaUpdateError, MediaUpdateResponse, MetaAccountData, MetaAccountError, MetaAccountResponse, MetaAdData, MetaAdError, MetaAdResponse, MetaAdsData, MetaAdsError, MetaAdsetData, MetaAdsetError, MetaAdsetResponse, MetaAdsetsData, MetaAdsetsError, MetaAdsetsResponse, MetaAdsResponse, MetaCampaignData, MetaCampaignError, MetaCampaignResponse, MetaCampaignsData, MetaCampaignsError, MetaCampaignsResponse, MetaInsightsData, MetaInsightsError, MetaInsightsResponse, PostsCreateData, PostsCreateError, PostsCreateResponse, PostsDeleteData, PostsDeleteError, PostsDeleteResponse, PostsGetData, PostsGetError, PostsGetResponse, PostsListData, PostsListError, PostsListResponse, PostsUpdateData, PostsUpdateError, PostsUpdateResponse, PostsValidateData, PostsValidateError, PostsValidateResponse, ProfilesCreateData, ProfilesCreateError, ProfilesCreateResponse, ProfilesDeleteData, ProfilesDeleteError, ProfilesDeleteResponse, ProfilesGetData, ProfilesGetError, ProfilesGetResponse, ProfilesListData, ProfilesListError, ProfilesListResponse, ProfilesUpdateData, ProfilesUpdateError, ProfilesUpdateResponse, TiktokCreatorInfoData, TiktokCreatorInfoError, TiktokCreatorInfoResponse, TokensMintData, TokensMintError, TokensMintResponse, WebhooksCreateEndpointData, WebhooksCreateEndpointError, WebhooksCreateEndpointResponse, WebhooksCreatePortalData, WebhooksCreatePortalError, WebhooksCreatePortalResponse, WebhooksDeleteEndpointData, WebhooksDeleteEndpointError, WebhooksDeleteEndpointResponse, WebhooksGetEndpointData, WebhooksGetEndpointError, WebhooksGetEndpointResponse, WebhooksListEndpointsData, WebhooksListEndpointsError, WebhooksListEndpointsResponse, WebhooksListEventTypesData, WebhooksListEventTypesError, WebhooksListEventTypesResponse, WebhooksPingData, WebhooksPingError, WebhooksPingResponse, WebhooksUpdateEndpointData, WebhooksUpdateEndpointError, WebhooksUpdateEndpointResponse } from '../types.gen';\n\nexport type QueryKey<TOptions extends Options> = [\n Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & {\n _id: string;\n _infinite?: boolean;\n tags?: ReadonlyArray<string>;\n }\n];\n\nconst createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean, tags?: ReadonlyArray<string>): [\n QueryKey<TOptions>[0]\n] => {\n const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: options?.baseUrl || (options?.client ?? client).getConfig().baseUrl } as QueryKey<TOptions>[0];\n if (infinite) {\n params._infinite = infinite;\n }\n if (tags) {\n params.tags = tags;\n }\n if (options?.body) {\n params.body = options.body;\n }\n if (options?.headers) {\n params.headers = options.headers;\n }\n if (options?.path) {\n params.path = options.path;\n }\n if (options?.query) {\n params.query = options.query;\n }\n return [params];\n};\n\nexport const profilesListQueryKey = (options?: Options<ProfilesListData>) => createQueryKey('profilesList', options);\n\n/**\n * List profiles\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the profiles under your account, newest first.\n */\nexport const profilesListOptions = (options?: Options<ProfilesListData>) => queryOptions<ProfilesListResponse, ProfilesListError, ProfilesListResponse, ReturnType<typeof profilesListQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await profilesList({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: profilesListQueryKey(options)\n});\n\nconst createInfiniteParams = <K extends Pick<QueryKey<Options>[0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey<Options>, page: K) => {\n const params = { ...queryKey[0] };\n if (page.body) {\n params.body = {\n ...queryKey[0].body as any,\n ...page.body as any\n };\n }\n if (page.headers) {\n params.headers = {\n ...queryKey[0].headers,\n ...page.headers\n };\n }\n if (page.path) {\n params.path = {\n ...queryKey[0].path as any,\n ...page.path as any\n };\n }\n if (page.query) {\n params.query = {\n ...queryKey[0].query as any,\n ...page.query as any\n };\n }\n return params as unknown as typeof page;\n};\n\nexport const profilesListInfiniteQueryKey = (options?: Options<ProfilesListData>): QueryKey<Options<ProfilesListData>> => createQueryKey('profilesList', options, true);\n\n/**\n * List profiles\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the profiles under your account, newest first.\n */\nexport const profilesListInfiniteOptions = (options?: Options<ProfilesListData>) => infiniteQueryOptions<ProfilesListResponse, ProfilesListError, InfiniteData<ProfilesListResponse>, QueryKey<Options<ProfilesListData>>, number | Pick<QueryKey<Options<ProfilesListData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<ProfilesListData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await profilesList({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: profilesListInfiniteQueryKey(options)\n});\n\n/**\n * Create a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:write` with account-wide profile scope (`all`); a profile-scoped token cannot create.\n *\n * Creates a profile — a client/brand workspace under your account, and the unit connections attach to.\n */\nexport const profilesCreateMutation = (options?: Partial<Options<ProfilesCreateData>>): UseMutationOptions<ProfilesCreateResponse, ProfilesCreateError, Options<ProfilesCreateData>> => {\n const mutationOptions: UseMutationOptions<ProfilesCreateResponse, ProfilesCreateError, Options<ProfilesCreateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await profilesCreate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Delete a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:write` scoped to the target profile.\n *\n * Deletes a profile. The profile must have no connections — delete its connections first (and a connection in turn cannot be deleted while a post still publishes through it).\n */\nexport const profilesDeleteMutation = (options?: Partial<Options<ProfilesDeleteData>>): UseMutationOptions<ProfilesDeleteResponse, ProfilesDeleteError, Options<ProfilesDeleteData>> => {\n const mutationOptions: UseMutationOptions<ProfilesDeleteResponse, ProfilesDeleteError, Options<ProfilesDeleteData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await profilesDelete({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const profilesGetQueryKey = (options: Options<ProfilesGetData>) => createQueryKey('profilesGet', options);\n\n/**\n * Retrieve a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:read` scoped to the target profile.\n *\n * Retrieves a single profile by id.\n */\nexport const profilesGetOptions = (options: Options<ProfilesGetData>) => queryOptions<ProfilesGetResponse, ProfilesGetError, ProfilesGetResponse, ReturnType<typeof profilesGetQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await profilesGet({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: profilesGetQueryKey(options)\n});\n\n/**\n * Update a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:write` scoped to the target profile.\n *\n * Updates a profile. Send only the fields you want to change; provide at least one.\n */\nexport const profilesUpdateMutation = (options?: Partial<Options<ProfilesUpdateData>>): UseMutationOptions<ProfilesUpdateResponse, ProfilesUpdateError, Options<ProfilesUpdateData>> => {\n const mutationOptions: UseMutationOptions<ProfilesUpdateResponse, ProfilesUpdateError, Options<ProfilesUpdateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await profilesUpdate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const connectionsListByProfileQueryKey = (options: Options<ConnectionsListByProfileData>) => createQueryKey('connectionsListByProfile', options);\n\n/**\n * List a profile's connections\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the target profile.\n *\n * Lists the external accounts connected to a profile, most recent first. Returns 404 if the profile doesn't exist in your account.\n */\nexport const connectionsListByProfileOptions = (options: Options<ConnectionsListByProfileData>) => queryOptions<ConnectionsListByProfileResponse, ConnectionsListByProfileError, ConnectionsListByProfileResponse, ReturnType<typeof connectionsListByProfileQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await connectionsListByProfile({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: connectionsListByProfileQueryKey(options)\n});\n\nexport const connectionsListByProfileInfiniteQueryKey = (options: Options<ConnectionsListByProfileData>): QueryKey<Options<ConnectionsListByProfileData>> => createQueryKey('connectionsListByProfile', options, true);\n\n/**\n * List a profile's connections\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the target profile.\n *\n * Lists the external accounts connected to a profile, most recent first. Returns 404 if the profile doesn't exist in your account.\n */\nexport const connectionsListByProfileInfiniteOptions = (options: Options<ConnectionsListByProfileData>) => infiniteQueryOptions<ConnectionsListByProfileResponse, ConnectionsListByProfileError, InfiniteData<ConnectionsListByProfileResponse>, QueryKey<Options<ConnectionsListByProfileData>>, number | Pick<QueryKey<Options<ConnectionsListByProfileData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<ConnectionsListByProfileData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await connectionsListByProfile({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: connectionsListByProfileInfiniteQueryKey(options)\n});\n\n/**\n * Delete a connection\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:write` scoped to the profile that owns the connection.\n *\n * Disconnects a connection. Returns a deletion marker; returns 404 if it does not exist in your account. Disconnect is unconditional — any scheduled posts that target this connection are not blocked; they fail gracefully at publish time with a `connection_removed` error until you reconnect and reschedule.\n */\nexport const connectionsDeleteMutation = (options?: Partial<Options<ConnectionsDeleteData>>): UseMutationOptions<ConnectionsDeleteResponse, ConnectionsDeleteError, Options<ConnectionsDeleteData>> => {\n const mutationOptions: UseMutationOptions<ConnectionsDeleteResponse, ConnectionsDeleteError, Options<ConnectionsDeleteData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await connectionsDelete({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const connectionsGetQueryKey = (options: Options<ConnectionsGetData>) => createQueryKey('connectionsGet', options);\n\n/**\n * Retrieve a connection\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single connection by id.\n */\nexport const connectionsGetOptions = (options: Options<ConnectionsGetData>) => queryOptions<ConnectionsGetResponse, ConnectionsGetError, ConnectionsGetResponse, ReturnType<typeof connectionsGetQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await connectionsGet({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: connectionsGetQueryKey(options)\n});\n\n/**\n * Select a connection account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:write` scoped to the profile that owns the connection.\n *\n * Activates a pending connection by choosing which external account (e.g. which Meta ad account) it uses. The account must be one reachable through the connection’s OAuth grant; its canonical name + currency are resolved server-side from discovery, so the stored display values can’t be spoofed by the caller.\n */\nexport const connectionsSelectMutation = (options?: Partial<Options<ConnectionsSelectData>>): UseMutationOptions<ConnectionsSelectResponse, ConnectionsSelectError, Options<ConnectionsSelectData>> => {\n const mutationOptions: UseMutationOptions<ConnectionsSelectResponse, ConnectionsSelectError, Options<ConnectionsSelectData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await connectionsSelect({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const connectionsListAccountsQueryKey = (options: Options<ConnectionsListAccountsData>) => createQueryKey('connectionsListAccounts', options);\n\n/**\n * List a connection’s discoverable accounts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the profile that owns the connection.\n *\n * Lists the external ad accounts reachable through this connection’s OAuth grant — the picker shown after OAuth, while the connection is still pending account selection. Returns 404 if the connection does not exist in your account, and 501 if account discovery is not yet supported for the connection’s platform.\n */\nexport const connectionsListAccountsOptions = (options: Options<ConnectionsListAccountsData>) => queryOptions<ConnectionsListAccountsResponse, ConnectionsListAccountsError, ConnectionsListAccountsResponse, ReturnType<typeof connectionsListAccountsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await connectionsListAccounts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: connectionsListAccountsQueryKey(options)\n});\n\n/**\n * Connect a platform account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:write` scoped to the target profile.\n *\n * Starts an OAuth connect flow for a platform on this profile. Returns a short-lived session the client uses to authorize; the connection is created once authorization succeeds.\n */\nexport const connectionsConnectMutation = (options?: Partial<Options<ConnectionsConnectData>>): UseMutationOptions<ConnectionsConnectResponse, ConnectionsConnectError, Options<ConnectionsConnectData>> => {\n const mutationOptions: UseMutationOptions<ConnectionsConnectResponse, ConnectionsConnectError, Options<ConnectionsConnectData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await connectionsConnect({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const mediaListQueryKey = (options?: Options<MediaListData>) => createQueryKey('mediaList', options);\n\n/**\n * List media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the media assets under your account, newest first. Filter by profile, status, kind, your own external_id, or metadata.\n */\nexport const mediaListOptions = (options?: Options<MediaListData>) => queryOptions<MediaListResponse, MediaListError, MediaListResponse, ReturnType<typeof mediaListQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await mediaList({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: mediaListQueryKey(options)\n});\n\nexport const mediaListInfiniteQueryKey = (options?: Options<MediaListData>): QueryKey<Options<MediaListData>> => createQueryKey('mediaList', options, true);\n\n/**\n * List media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the media assets under your account, newest first. Filter by profile, status, kind, your own external_id, or metadata.\n */\nexport const mediaListInfiniteOptions = (options?: Options<MediaListData>) => infiniteQueryOptions<MediaListResponse, MediaListError, InfiniteData<MediaListResponse>, QueryKey<Options<MediaListData>>, number | Pick<QueryKey<Options<MediaListData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<MediaListData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await mediaList({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: mediaListInfiniteQueryKey(options)\n});\n\n/**\n * Upload media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the target profile.\n *\n * Creates a media asset. Two ways to supply the bytes: (1) omit `source_url` and upload the bytes with the returned multipart `upload` session — chunk the file at `part_size`, sign each part via `POST /media/{id}/multipart/sign`, PUT the bytes, then `POST /media/{id}/multipart/complete` (the direct-upload path; `upload` is non-null and resumable), or (2) supply a public `https` `source_url` and we fetch the bytes server-side, validate, transform, and store them (the import path; `upload` is null). Either way the asset settles through the same probe/transform flow.\n */\nexport const mediaCreateMutation = (options?: Partial<Options<MediaCreateData>>): UseMutationOptions<MediaCreateResponse, MediaCreateError, Options<MediaCreateData>> => {\n const mutationOptions: UseMutationOptions<MediaCreateResponse, MediaCreateError, Options<MediaCreateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await mediaCreate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Delete media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Deletes a media asset and its stored renditions.\n */\nexport const mediaDeleteMutation = (options?: Partial<Options<MediaDeleteData>>): UseMutationOptions<MediaDeleteResponse, MediaDeleteError, Options<MediaDeleteData>> => {\n const mutationOptions: UseMutationOptions<MediaDeleteResponse, MediaDeleteError, Options<MediaDeleteData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await mediaDelete({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const mediaGetQueryKey = (options: Options<MediaGetData>) => createQueryKey('mediaGet', options);\n\n/**\n * Retrieve media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:read` scoped to the profile that owns the media asset.\n *\n * Retrieves a media asset, including its per-platform processing status and renditions.\n */\nexport const mediaGetOptions = (options: Options<MediaGetData>) => queryOptions<MediaGetResponse, MediaGetError, MediaGetResponse, ReturnType<typeof mediaGetQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await mediaGet({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: mediaGetQueryKey(options)\n});\n\n/**\n * Update media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Updates a media asset (alt text, metadata, external_id) or adds `targets` to pre-warm more platforms. Send only the fields to change.\n */\nexport const mediaUpdateMutation = (options?: Partial<Options<MediaUpdateData>>): UseMutationOptions<MediaUpdateResponse, MediaUpdateError, Options<MediaUpdateData>> => {\n const mutationOptions: UseMutationOptions<MediaUpdateResponse, MediaUpdateError, Options<MediaUpdateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await mediaUpdate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Sign an upload part\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Returns a presigned URL to PUT one part of a multipart upload. Chunk the file at the session’s `part_size` and sign each 1-indexed part; read each part PUT’s `ETag` for `complete`.\n */\nexport const mediaSignPartMutation = (options?: Partial<Options<MediaSignPartData>>): UseMutationOptions<MediaSignPartResponse, MediaSignPartError, Options<MediaSignPartData>> => {\n const mutationOptions: UseMutationOptions<MediaSignPartResponse, MediaSignPartError, Options<MediaSignPartData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await mediaSignPart({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const mediaListPartsQueryKey = (options: Options<MediaListPartsData>) => createQueryKey('mediaListParts', options);\n\n/**\n * List uploaded parts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Lists the parts already uploaded for this asset’s multipart upload (ascending). Skip re-uploading these to resume after a dropped connection.\n */\nexport const mediaListPartsOptions = (options: Options<MediaListPartsData>) => queryOptions<MediaListPartsResponse, MediaListPartsError, MediaListPartsResponse, ReturnType<typeof mediaListPartsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await mediaListParts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: mediaListPartsQueryKey(options)\n});\n\n/**\n * Complete an upload\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Finishes a multipart upload by assembling the uploaded parts. Send every part as `{ part_number, etag }`. Idempotent: completing an already-finished upload returns the asset.\n */\nexport const mediaCompleteMutation = (options?: Partial<Options<MediaCompleteData>>): UseMutationOptions<MediaCompleteResponse, MediaCompleteError, Options<MediaCompleteData>> => {\n const mutationOptions: UseMutationOptions<MediaCompleteResponse, MediaCompleteError, Options<MediaCompleteData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await mediaComplete({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Abort an upload\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Aborts an in-flight multipart upload and discards its parts. Idempotent: aborting an already-finished or unknown upload still returns the asset.\n */\nexport const mediaAbortMutation = (options?: Partial<Options<MediaAbortData>>): UseMutationOptions<MediaAbortResponse, MediaAbortError, Options<MediaAbortData>> => {\n const mutationOptions: UseMutationOptions<MediaAbortResponse, MediaAbortError, Options<MediaAbortData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await mediaAbort({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const postsListQueryKey = (options?: Options<PostsListData>) => createQueryKey('postsList', options);\n\n/**\n * List posts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the posts under your account, newest first. Filter by profile or your own external_id.\n */\nexport const postsListOptions = (options?: Options<PostsListData>) => queryOptions<PostsListResponse, PostsListError, PostsListResponse, ReturnType<typeof postsListQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await postsList({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: postsListQueryKey(options)\n});\n\nexport const postsListInfiniteQueryKey = (options?: Options<PostsListData>): QueryKey<Options<PostsListData>> => createQueryKey('postsList', options, true);\n\n/**\n * List posts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the posts under your account, newest first. Filter by profile or your own external_id.\n */\nexport const postsListInfiniteOptions = (options?: Options<PostsListData>) => infiniteQueryOptions<PostsListResponse, PostsListError, InfiniteData<PostsListResponse>, QueryKey<Options<PostsListData>>, number | Pick<QueryKey<Options<PostsListData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<PostsListData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await postsList({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: postsListInfiniteQueryKey(options)\n});\n\n/**\n * Create a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:write` scoped to the target profile.\n *\n * Composes a post + its per-channel variants. `publish` decides the outcome: `now` publishes immediately, `schedule` publishes at `schedule_at`, `draft` just stores it.\n */\nexport const postsCreateMutation = (options?: Partial<Options<PostsCreateData>>): UseMutationOptions<PostsCreateResponse, PostsCreateError, Options<PostsCreateData>> => {\n const mutationOptions: UseMutationOptions<PostsCreateResponse, PostsCreateError, Options<PostsCreateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await postsCreate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Delete a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:write` scoped to the profile that owns the post.\n *\n * Deletes a post and its variants. Returns a deletion marker; 404 if it does not exist in your account. Already-published posts are not retracted from the platform.\n */\nexport const postsDeleteMutation = (options?: Partial<Options<PostsDeleteData>>): UseMutationOptions<PostsDeleteResponse, PostsDeleteError, Options<PostsDeleteData>> => {\n const mutationOptions: UseMutationOptions<PostsDeleteResponse, PostsDeleteError, Options<PostsDeleteData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await postsDelete({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const postsGetQueryKey = (options: Options<PostsGetData>) => createQueryKey('postsGet', options);\n\n/**\n * Retrieve a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` scoped to the profile that owns the post.\n *\n * Retrieves a single post by id, including its per-channel variants and their derived status.\n */\nexport const postsGetOptions = (options: Options<PostsGetData>) => queryOptions<PostsGetResponse, PostsGetError, PostsGetResponse, ReturnType<typeof postsGetQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await postsGet({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: postsGetQueryKey(options)\n});\n\n/**\n * Update a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:write` scoped to the profile that owns the post.\n *\n * Edits a post and/or transitions its publish state (`draft` / `schedule` / `now`). Valid only while the post is draft or scheduled. Send only the fields to change; providing `variants` replaces the whole set.\n */\nexport const postsUpdateMutation = (options?: Partial<Options<PostsUpdateData>>): UseMutationOptions<PostsUpdateResponse, PostsUpdateError, Options<PostsUpdateData>> => {\n const mutationOptions: UseMutationOptions<PostsUpdateResponse, PostsUpdateError, Options<PostsUpdateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await postsUpdate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Validate a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` scoped to the target profile.\n *\n * Runs the exact ownership + publish-readiness checks the create path runs under dry_run, with no side effects. Returns a per-issue verdict (`publishable` + `issues[]`) on 200; a reference to a connection/media outside the profile is a typed 422.\n */\nexport const postsValidateMutation = (options?: Partial<Options<PostsValidateData>>): UseMutationOptions<PostsValidateResponse, PostsValidateError, Options<PostsValidateData>> => {\n const mutationOptions: UseMutationOptions<PostsValidateResponse, PostsValidateError, Options<PostsValidateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await postsValidate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const metaAccountQueryKey = (options: Options<MetaAccountData>) => createQueryKey('metaAccount', options);\n\n/**\n * Retrieve the Meta ad account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves the Meta ad account this connection is linked to — name, currency, status, and spend. Monetary fields are in the account currency’s minor units.\n */\nexport const metaAccountOptions = (options: Options<MetaAccountData>) => queryOptions<MetaAccountResponse, MetaAccountError, MetaAccountResponse, ReturnType<typeof metaAccountQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaAccount({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaAccountQueryKey(options)\n});\n\nexport const metaInsightsQueryKey = (options: Options<MetaInsightsData>) => createQueryKey('metaInsights', options);\n\n/**\n * Retrieve Meta ad insights\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves performance insights for the connection’s Meta ad account, aggregated at the chosen `level` over a date window. Metric values are strings, in the account currency’s units.\n */\nexport const metaInsightsOptions = (options: Options<MetaInsightsData>) => queryOptions<MetaInsightsResponse, MetaInsightsError, MetaInsightsResponse, ReturnType<typeof metaInsightsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaInsights({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaInsightsQueryKey(options)\n});\n\nexport const metaCampaignsQueryKey = (options: Options<MetaCampaignsData>) => createQueryKey('metaCampaigns', options);\n\n/**\n * List Meta campaigns\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the campaigns under the connection’s Meta ad account, with each campaign’s status, objective, and budgets (budgets in the account currency’s minor units).\n */\nexport const metaCampaignsOptions = (options: Options<MetaCampaignsData>) => queryOptions<MetaCampaignsResponse, MetaCampaignsError, MetaCampaignsResponse, ReturnType<typeof metaCampaignsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaCampaigns({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaCampaignsQueryKey(options)\n});\n\nexport const metaCampaignQueryKey = (options: Options<MetaCampaignData>) => createQueryKey('metaCampaign', options);\n\n/**\n * Retrieve a Meta campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single campaign under the connection’s Meta ad account by its campaign id — status, objective, and budgets.\n */\nexport const metaCampaignOptions = (options: Options<MetaCampaignData>) => queryOptions<MetaCampaignResponse, MetaCampaignError, MetaCampaignResponse, ReturnType<typeof metaCampaignQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaCampaign({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaCampaignQueryKey(options)\n});\n\nexport const metaAdsetsQueryKey = (options: Options<MetaAdsetsData>) => createQueryKey('metaAdsets', options);\n\n/**\n * List Meta ad sets\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the ad sets under the connection’s Meta ad account, with each ad set’s status, parent campaign, budgets, and optimization (budgets in the account currency’s minor units).\n */\nexport const metaAdsetsOptions = (options: Options<MetaAdsetsData>) => queryOptions<MetaAdsetsResponse, MetaAdsetsError, MetaAdsetsResponse, ReturnType<typeof metaAdsetsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaAdsets({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaAdsetsQueryKey(options)\n});\n\nexport const metaAdsetQueryKey = (options: Options<MetaAdsetData>) => createQueryKey('metaAdset', options);\n\n/**\n * Retrieve a Meta ad set\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single ad set under the connection’s Meta ad account by its ad set id — status, parent campaign, budgets, and optimization.\n */\nexport const metaAdsetOptions = (options: Options<MetaAdsetData>) => queryOptions<MetaAdsetResponse, MetaAdsetError, MetaAdsetResponse, ReturnType<typeof metaAdsetQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaAdset({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaAdsetQueryKey(options)\n});\n\nexport const metaAdsQueryKey = (options: Options<MetaAdsData>) => createQueryKey('metaAds', options);\n\n/**\n * List Meta ads\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the ads under the connection’s Meta ad account, with each ad’s status, parent ad set and campaign ids, and timestamps.\n */\nexport const metaAdsOptions = (options: Options<MetaAdsData>) => queryOptions<MetaAdsResponse, MetaAdsError, MetaAdsResponse, ReturnType<typeof metaAdsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaAds({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaAdsQueryKey(options)\n});\n\nexport const metaAdQueryKey = (options: Options<MetaAdData>) => createQueryKey('metaAd', options);\n\n/**\n * Retrieve a Meta ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single ad under the connection’s Meta ad account by its ad id — status, parent ad set and campaign ids, and timestamps.\n */\nexport const metaAdOptions = (options: Options<MetaAdData>) => queryOptions<MetaAdResponse, MetaAdError, MetaAdResponse, ReturnType<typeof metaAdQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaAd({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaAdQueryKey(options)\n});\n\nexport const googleGetAccountQueryKey = (options: Options<GoogleGetAccountData>) => createQueryKey('googleGetAccount', options);\n\n/**\n * Retrieve the connected Google Ads account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the Google Ads account (the `customer` resource) backing this connection — id, descriptive name, currency, time zone, status, and whether it is a manager (MCC) or test account.\n */\nexport const googleGetAccountOptions = (options: Options<GoogleGetAccountData>) => queryOptions<GoogleGetAccountResponse, GoogleGetAccountError, GoogleGetAccountResponse, ReturnType<typeof googleGetAccountQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetAccount({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetAccountQueryKey(options)\n});\n\n/**\n * Edit Google Ads account URL settings\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates the account-level (customer) URL tracking settings — tracking_url_template and final_url_suffix. A campaign-level template overrides the account one. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditAccountMutation = (options?: Partial<Options<GoogleEditAccountData>>): UseMutationOptions<GoogleEditAccountResponse, GoogleEditAccountError, Options<GoogleEditAccountData>> => {\n const mutationOptions: UseMutationOptions<GoogleEditAccountResponse, GoogleEditAccountError, Options<GoogleEditAccountData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEditAccount({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Google Ads performance insights\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Performance metrics for the connection’s account, at a chosen level (account / campaign / ad group / ad / keyword), for a date range, with optional breakdowns. Leaf levels (ad / keyword) require an `ad_group_id`; campaign / ad group accept an optional `campaign_id`. Each row carries its `parent_id`, so the tree is assemblable. The flagship cross-checked read; use `/gaql` for anything outside this shape.\n */\nexport const googleGetInsightsMutation = (options?: Partial<Options<GoogleGetInsightsData>>): UseMutationOptions<GoogleGetInsightsResponse, GoogleGetInsightsError, Options<GoogleGetInsightsData>> => {\n const mutationOptions: UseMutationOptions<GoogleGetInsightsResponse, GoogleGetInsightsError, Options<GoogleGetInsightsData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleGetInsights({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetAdTreeQueryKey = (options: Options<GoogleGetAdTreeData>) => createQueryKey('googleGetAdTree', options);\n\n/**\n * Google Ads campaign tree\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * The campaign → ad_group → ad/keyword tree as flat, native, typed nodes — group them by `parent_id` to assemble the tree. Without `campaign_id`, returns every campaign (all channel types) with a per-type `child_kind`/`expandable` hint. With `campaign_id`, returns that campaign’s whole supported subtree (ad groups + the type’s leaf — keywords for Search, ads for Display/Video/Demand Gen) in one batched fetch at a single window. By default REMOVED nodes are hidden at every level; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED). Each node carries `budget_micros` (campaign nodes only), Google’s authoritative per-level metrics (no client roll-up), `cost_micros`, and `cost` (account currency).\n */\nexport const googleGetAdTreeOptions = (options: Options<GoogleGetAdTreeData>) => queryOptions<GoogleGetAdTreeResponse, GoogleGetAdTreeError, GoogleGetAdTreeResponse, ReturnType<typeof googleGetAdTreeQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetAdTree({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetAdTreeQueryKey(options)\n});\n\n/**\n * Run a raw GAQL query\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Runs a raw Google Ads Query Language (GAQL) query against the connection’s account and returns the native rows. Read-only (GAQL only does `SELECT`). The power-user escape hatch beneath the typed reads.\n */\nexport const googleRunGaqlMutation = (options?: Partial<Options<GoogleRunGaqlData>>): UseMutationOptions<GoogleRunGaqlResponse, GoogleRunGaqlError, Options<GoogleRunGaqlData>> => {\n const mutationOptions: UseMutationOptions<GoogleRunGaqlResponse, GoogleRunGaqlError, Options<GoogleRunGaqlData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRunGaql({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Create a Google Ads campaign budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Creates a standalone daily campaign budget (the `campaign_budget` resource) on the connection’s account. Money write — secret-key-only. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name to chain into a campaign.\n */\nexport const googleCreateBudgetMutation = (options?: Partial<Options<GoogleCreateBudgetData>>): UseMutationOptions<GoogleCreateBudgetResponse, GoogleCreateBudgetError, Options<GoogleCreateBudgetData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateBudgetResponse, GoogleCreateBudgetError, Options<GoogleCreateBudgetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateBudget({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Edit a Google Ads campaign budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Updates a budget’s daily amount (in micros) by numeric id. Money write — secret-key-only. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditBudgetMutation = (options?: Partial<Options<GoogleEditBudgetData>>): UseMutationOptions<GoogleEditBudgetResponse, GoogleEditBudgetError, Options<GoogleEditBudgetData>> => {\n const mutationOptions: UseMutationOptions<GoogleEditBudgetResponse, GoogleEditBudgetError, Options<GoogleEditBudgetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEditBudget({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads campaign budget\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes a campaign budget by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveBudgetMutation = (options?: Partial<Options<GoogleRemoveBudgetData>>): UseMutationOptions<GoogleRemoveBudgetResponse, GoogleRemoveBudgetError, Options<GoogleRemoveBudgetData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveBudgetResponse, GoogleRemoveBudgetError, Options<GoogleRemoveBudgetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveBudget({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListCampaignsQueryKey = (options: Options<GoogleListCampaignsData>) => createQueryKey('googleListCampaigns', options);\n\n/**\n * List Google Ads campaigns\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the campaigns (the `campaign` resource) on the connection’s account — id, name, status, advertising channel type, and bidding strategy type.\n */\nexport const googleListCampaignsOptions = (options: Options<GoogleListCampaignsData>) => queryOptions<GoogleListCampaignsResponse, GoogleListCampaignsError, GoogleListCampaignsResponse, ReturnType<typeof googleListCampaignsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListCampaigns({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListCampaignsQueryKey(options)\n});\n\n/**\n * Create a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a Search or Display campaign (the `campaign` resource) on the connection’s account, attached to an existing budget. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateCampaignMutation = (options?: Partial<Options<GoogleCreateCampaignData>>): UseMutationOptions<GoogleCreateCampaignResponse, GoogleCreateCampaignError, Options<GoogleCreateCampaignData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateCampaignResponse, GoogleCreateCampaignError, Options<GoogleCreateCampaignData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateCampaign({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetCampaignQueryKey = (options: Options<GoogleGetCampaignData>) => createQueryKey('googleGetCampaign', options);\n\n/**\n * Retrieve a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single campaign (the `campaign` resource) by its numeric id on the connection’s account — id, name, status, advertising channel type, and bidding strategy type.\n */\nexport const googleGetCampaignOptions = (options: Options<GoogleGetCampaignData>) => queryOptions<GoogleGetCampaignResponse, GoogleGetCampaignError, GoogleGetCampaignResponse, ReturnType<typeof googleGetCampaignQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetCampaign({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetCampaignQueryKey(options)\n});\n\n/**\n * Edit a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates a campaign’s non-money fields — its name and URL tracking settings (tracking_url_template, final_url_suffix, url_custom_parameters) — by numeric id. Status has its own pause/enable endpoints; bids are a separate money write. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditCampaignMutation = (options?: Partial<Options<GoogleEditCampaignData>>): UseMutationOptions<GoogleEditCampaignResponse, GoogleEditCampaignError, Options<GoogleEditCampaignData>> => {\n const mutationOptions: UseMutationOptions<GoogleEditCampaignResponse, GoogleEditCampaignError, Options<GoogleEditCampaignData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEditCampaign({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes a campaign by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveCampaignMutation = (options?: Partial<Options<GoogleRemoveCampaignData>>): UseMutationOptions<GoogleRemoveCampaignResponse, GoogleRemoveCampaignError, Options<GoogleRemoveCampaignData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveCampaignResponse, GoogleRemoveCampaignError, Options<GoogleRemoveCampaignData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveCampaign({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Pause a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses a campaign by its numeric id (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseCampaignMutation = (options?: Partial<Options<GooglePauseCampaignData>>): UseMutationOptions<GooglePauseCampaignResponse, GooglePauseCampaignError, Options<GooglePauseCampaignData>> => {\n const mutationOptions: UseMutationOptions<GooglePauseCampaignResponse, GooglePauseCampaignError, Options<GooglePauseCampaignData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googlePauseCampaign({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Enable a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) a campaign by its numeric id. Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableCampaignMutation = (options?: Partial<Options<GoogleEnableCampaignData>>): UseMutationOptions<GoogleEnableCampaignResponse, GoogleEnableCampaignError, Options<GoogleEnableCampaignData>> => {\n const mutationOptions: UseMutationOptions<GoogleEnableCampaignResponse, GoogleEnableCampaignError, Options<GoogleEnableCampaignData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEnableCampaign({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleSearchGeoTargetsQueryKey = (options: Options<GoogleSearchGeoTargetsData>) => createQueryKey('googleSearchGeoTargets', options);\n\n/**\n * Search Google Ads geo targets\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Resolves a free-text location name (e.g. \"New York\") to matching geo target constants — each with id, name, canonical name, country code, target type, and status. Use a result’s `resource_name` (e.g. `geoTargetConstants/2840`), NOT the bare `id`, as the `geo_target_constant` of a location criterion.\n */\nexport const googleSearchGeoTargetsOptions = (options: Options<GoogleSearchGeoTargetsData>) => queryOptions<GoogleSearchGeoTargetsResponse, GoogleSearchGeoTargetsError, GoogleSearchGeoTargetsResponse, ReturnType<typeof googleSearchGeoTargetsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleSearchGeoTargets({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleSearchGeoTargetsQueryKey(options)\n});\n\nexport const googleListCampaignCriteriaQueryKey = (options: Options<GoogleListCampaignCriteriaData>) => createQueryKey('googleListCampaignCriteria', options);\n\n/**\n * List Google Ads campaign targeting criteria\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists a campaign’s targeting criteria. LOCATION and LANGUAGE are fully modelled (geo_target_constant / language_constant, status, negative flag); any other criterion type is returned as { type, criterion_id }.\n */\nexport const googleListCampaignCriteriaOptions = (options: Options<GoogleListCampaignCriteriaData>) => queryOptions<GoogleListCampaignCriteriaResponse, GoogleListCampaignCriteriaError, GoogleListCampaignCriteriaResponse, ReturnType<typeof googleListCampaignCriteriaQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListCampaignCriteria({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListCampaignCriteriaQueryKey(options)\n});\n\n/**\n * Add a Google Ads campaign targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Adds a geo (location) or language targeting criterion to a campaign. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateCampaignCriterionMutation = (options?: Partial<Options<GoogleCreateCampaignCriterionData>>): UseMutationOptions<GoogleCreateCampaignCriterionResponse, GoogleCreateCampaignCriterionError, Options<GoogleCreateCampaignCriterionData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateCampaignCriterionResponse, GoogleCreateCampaignCriterionError, Options<GoogleCreateCampaignCriterionData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateCampaignCriterion({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads campaign targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes a campaign targeting criterion by its criterion id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveCampaignCriterionMutation = (options?: Partial<Options<GoogleRemoveCampaignCriterionData>>): UseMutationOptions<GoogleRemoveCampaignCriterionResponse, GoogleRemoveCampaignCriterionError, Options<GoogleRemoveCampaignCriterionData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveCampaignCriterionResponse, GoogleRemoveCampaignCriterionError, Options<GoogleRemoveCampaignCriterionData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveCampaignCriterion({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Set a Google Ads campaign’s geo target type\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets a campaign’s geo target type — presence (people in the location) vs presence-or-interest (also people interested in it) — for positive and/or excluded locations. Pass `dry_run: true` to validate without applying.\n */\nexport const googleSetCampaignGeoSettingsMutation = (options?: Partial<Options<GoogleSetCampaignGeoSettingsData>>): UseMutationOptions<GoogleSetCampaignGeoSettingsResponse, GoogleSetCampaignGeoSettingsError, Options<GoogleSetCampaignGeoSettingsData>> => {\n const mutationOptions: UseMutationOptions<GoogleSetCampaignGeoSettingsResponse, GoogleSetCampaignGeoSettingsError, Options<GoogleSetCampaignGeoSettingsData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSetCampaignGeoSettings({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListAdGroupsQueryKey = (options: Options<GoogleListAdGroupsData>) => createQueryKey('googleListAdGroups', options);\n\n/**\n * List Google Ads ad groups\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the ad groups (Google’s equivalent of an ad set) in the Google Ads account backing this connection — id, name, status, type, and parent campaign. Pass `campaign_id` to return only the ad groups under one campaign. By default REMOVED ad groups are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListAdGroupsOptions = (options: Options<GoogleListAdGroupsData>) => queryOptions<GoogleListAdGroupsResponse, GoogleListAdGroupsError, GoogleListAdGroupsResponse, ReturnType<typeof googleListAdGroupsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListAdGroups({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListAdGroupsQueryKey(options)\n});\n\n/**\n * Create a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates an ad group (the `ad_group` resource) under a campaign on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name to chain into ads and keywords.\n */\nexport const googleCreateAdGroupMutation = (options?: Partial<Options<GoogleCreateAdGroupData>>): UseMutationOptions<GoogleCreateAdGroupResponse, GoogleCreateAdGroupError, Options<GoogleCreateAdGroupData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateAdGroupResponse, GoogleCreateAdGroupError, Options<GoogleCreateAdGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateAdGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetAdGroupQueryKey = (options: Options<GoogleGetAdGroupData>) => createQueryKey('googleGetAdGroup', options);\n\n/**\n * Retrieve a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single ad group by its numeric id from the Google Ads account backing this connection — id, name, status, type, and parent campaign.\n */\nexport const googleGetAdGroupOptions = (options: Options<GoogleGetAdGroupData>) => queryOptions<GoogleGetAdGroupResponse, GoogleGetAdGroupError, GoogleGetAdGroupResponse, ReturnType<typeof googleGetAdGroupQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetAdGroup({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetAdGroupQueryKey(options)\n});\n\n/**\n * Edit a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates an ad group’s non-money fields (its name) by numeric id. Status has its own pause/enable endpoints; bids are a separate money write. Pass `dry_run: true` to validate without applying.\n */\nexport const googleEditAdGroupMutation = (options?: Partial<Options<GoogleEditAdGroupData>>): UseMutationOptions<GoogleEditAdGroupResponse, GoogleEditAdGroupError, Options<GoogleEditAdGroupData>> => {\n const mutationOptions: UseMutationOptions<GoogleEditAdGroupResponse, GoogleEditAdGroupError, Options<GoogleEditAdGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEditAdGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Set a Google Ads ad group’s bids\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets an ad group’s manual bids (cpc/cpm/target CPA in micros, target ROAS as a ratio) by numeric id. Money write — secret-key-only. Pass `dry_run: true` to validate without applying.\n */\nexport const googleSetAdGroupBidsMutation = (options?: Partial<Options<GoogleSetAdGroupBidsData>>): UseMutationOptions<GoogleSetAdGroupBidsResponse, GoogleSetAdGroupBidsError, Options<GoogleSetAdGroupBidsData>> => {\n const mutationOptions: UseMutationOptions<GoogleSetAdGroupBidsResponse, GoogleSetAdGroupBidsError, Options<GoogleSetAdGroupBidsData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSetAdGroupBids({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes an ad group by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAdGroupMutation = (options?: Partial<Options<GoogleRemoveAdGroupData>>): UseMutationOptions<GoogleRemoveAdGroupResponse, GoogleRemoveAdGroupError, Options<GoogleRemoveAdGroupData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveAdGroupResponse, GoogleRemoveAdGroupError, Options<GoogleRemoveAdGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveAdGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Pause a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses an ad group by its numeric id (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseAdGroupMutation = (options?: Partial<Options<GooglePauseAdGroupData>>): UseMutationOptions<GooglePauseAdGroupResponse, GooglePauseAdGroupError, Options<GooglePauseAdGroupData>> => {\n const mutationOptions: UseMutationOptions<GooglePauseAdGroupResponse, GooglePauseAdGroupError, Options<GooglePauseAdGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googlePauseAdGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Enable a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) an ad group by its numeric id. Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableAdGroupMutation = (options?: Partial<Options<GoogleEnableAdGroupData>>): UseMutationOptions<GoogleEnableAdGroupResponse, GoogleEnableAdGroupError, Options<GoogleEnableAdGroupData>> => {\n const mutationOptions: UseMutationOptions<GoogleEnableAdGroupResponse, GoogleEnableAdGroupError, Options<GoogleEnableAdGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEnableAdGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListAdGroupCriteriaQueryKey = (options: Options<GoogleListAdGroupCriteriaData>) => createQueryKey('googleListAdGroupCriteria', options);\n\n/**\n * List Google Ads ad-group targeting criteria\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists an ad group’s targeting criteria. The four demographics (AGE_RANGE, GENDER, INCOME_RANGE, PARENTAL_STATUS) are fully modelled (with their value, status, and negative flag); any other criterion type (e.g. KEYWORD) is returned as { type, criterion_id }.\n */\nexport const googleListAdGroupCriteriaOptions = (options: Options<GoogleListAdGroupCriteriaData>) => queryOptions<GoogleListAdGroupCriteriaResponse, GoogleListAdGroupCriteriaError, GoogleListAdGroupCriteriaResponse, ReturnType<typeof googleListAdGroupCriteriaQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListAdGroupCriteria({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListAdGroupCriteriaQueryKey(options)\n});\n\n/**\n * Add a Google Ads ad-group targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Adds a demographic (age range, gender, income range, or parental status) or audience (user list, audience, or custom audience) targeting criterion to an ad group. Audience criteria reference the `resource_name` returned by the audiences discovery read (`GET .../audiences`). Set `negative: true` to exclude instead of target. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateAdGroupCriterionMutation = (options?: Partial<Options<GoogleCreateAdGroupCriterionData>>): UseMutationOptions<GoogleCreateAdGroupCriterionResponse, GoogleCreateAdGroupCriterionError, Options<GoogleCreateAdGroupCriterionData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateAdGroupCriterionResponse, GoogleCreateAdGroupCriterionError, Options<GoogleCreateAdGroupCriterionData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateAdGroupCriterion({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads ad-group targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes an ad-group targeting criterion by its criterion id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAdGroupCriterionMutation = (options?: Partial<Options<GoogleRemoveAdGroupCriterionData>>): UseMutationOptions<GoogleRemoveAdGroupCriterionResponse, GoogleRemoveAdGroupCriterionError, Options<GoogleRemoveAdGroupCriterionData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveAdGroupCriterionResponse, GoogleRemoveAdGroupCriterionError, Options<GoogleRemoveAdGroupCriterionData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveAdGroupCriterion({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListAudiencesQueryKey = (options: Options<GoogleListAudiencesData>) => createQueryKey('googleListAudiences', options);\n\n/**\n * List Google Ads audiences available to target\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the user lists and audiences available to attach to an ad group, each with the `resource_name` you pass as the user_list / audience of an ad-group audience criterion. Optional `q` filters by name; `kind` narrows to one audience kind.\n */\nexport const googleListAudiencesOptions = (options: Options<GoogleListAudiencesData>) => queryOptions<GoogleListAudiencesResponse, GoogleListAudiencesError, GoogleListAudiencesResponse, ReturnType<typeof googleListAudiencesQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListAudiences({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListAudiencesQueryKey(options)\n});\n\n/**\n * Set a Google Ads campaign’s targeting setting\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets a campaign’s targeting setting for one dimension (e.g. AUDIENCE): Observation (`bid_only: true` — does NOT narrow reach) vs Targeting (`bid_only: false` — narrows reach to the targeted criteria). Campaign + dimension scoped: shared by every audience criterion in the campaign. Pass `dry_run: true` to validate without applying. Note: Google rejects setting this on a campaign whose ad group already has a targeting setting (and vice versa).\n */\nexport const googleSetCampaignTargetingSettingMutation = (options?: Partial<Options<GoogleSetCampaignTargetingSettingData>>): UseMutationOptions<GoogleSetCampaignTargetingSettingResponse, GoogleSetCampaignTargetingSettingError, Options<GoogleSetCampaignTargetingSettingData>> => {\n const mutationOptions: UseMutationOptions<GoogleSetCampaignTargetingSettingResponse, GoogleSetCampaignTargetingSettingError, Options<GoogleSetCampaignTargetingSettingData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSetCampaignTargetingSetting({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListAdsQueryKey = (options: Options<GoogleListAdsData>) => createQueryKey('googleListAds', options);\n\n/**\n * List Google Ads ads\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the ads (the `ad_group_ad` resource) on the connection’s account — id, name, creative type, serving status, and the owning ad group. Pass `ad_group_id` to return only the ads under one ad group. By default REMOVED ads are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListAdsOptions = (options: Options<GoogleListAdsData>) => queryOptions<GoogleListAdsResponse, GoogleListAdsError, GoogleListAdsResponse, ReturnType<typeof googleListAdsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListAds({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListAdsQueryKey(options)\n});\n\n/**\n * Create a Google Ads responsive search ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a Responsive Search Ad (the `ad_group_ad` resource, inline text — no image assets) under an ad group on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateAdMutation = (options?: Partial<Options<GoogleCreateAdData>>): UseMutationOptions<GoogleCreateAdResponse, GoogleCreateAdError, Options<GoogleCreateAdData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateAdResponse, GoogleCreateAdError, Options<GoogleCreateAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetAdQueryKey = (options: Options<GoogleGetAdData>) => createQueryKey('googleGetAd', options);\n\n/**\n * Retrieve a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single ad (the `ad_group_ad` resource) by its composite id ({ad_group_id}~{ad_id}) on the connection’s account — id, name, creative type, serving status, and the owning ad group.\n */\nexport const googleGetAdOptions = (options: Options<GoogleGetAdData>) => queryOptions<GoogleGetAdResponse, GoogleGetAdError, GoogleGetAdResponse, ReturnType<typeof googleGetAdQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetAd({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetAdQueryKey(options)\n});\n\n/**\n * Create a Google Ads responsive display ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a Responsive Display Ad (the `ad_group_ad` resource) under a Display ad group on the connection’s account, assembled from already-uploaded image-asset resource_names (upload them first via POST /v1/google/{connection_id}/assets). Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateDisplayAdMutation = (options?: Partial<Options<GoogleCreateDisplayAdData>>): UseMutationOptions<GoogleCreateDisplayAdResponse, GoogleCreateDisplayAdError, Options<GoogleCreateDisplayAdData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateDisplayAdResponse, GoogleCreateDisplayAdError, Options<GoogleCreateDisplayAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateDisplayAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes an ad (an `ad_group_ad`) by its composite id ({ad_group_id}~{ad_id}) (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAdMutation = (options?: Partial<Options<GoogleRemoveAdData>>): UseMutationOptions<GoogleRemoveAdResponse, GoogleRemoveAdError, Options<GoogleRemoveAdData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveAdResponse, GoogleRemoveAdError, Options<GoogleRemoveAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Pause a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses an ad by its composite id ({ad_group_id}~{ad_id}) (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseAdMutation = (options?: Partial<Options<GooglePauseAdData>>): UseMutationOptions<GooglePauseAdResponse, GooglePauseAdError, Options<GooglePauseAdData>> => {\n const mutationOptions: UseMutationOptions<GooglePauseAdResponse, GooglePauseAdError, Options<GooglePauseAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googlePauseAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Enable a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) an ad by its composite id ({ad_group_id}~{ad_id}). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableAdMutation = (options?: Partial<Options<GoogleEnableAdData>>): UseMutationOptions<GoogleEnableAdResponse, GoogleEnableAdError, Options<GoogleEnableAdData>> => {\n const mutationOptions: UseMutationOptions<GoogleEnableAdResponse, GoogleEnableAdError, Options<GoogleEnableAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEnableAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListKeywordsQueryKey = (options: Options<GoogleListKeywordsData>) => createQueryKey('googleListKeywords', options);\n\n/**\n * List Google Ads keywords\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the keywords (`ad_group_criterion` of type KEYWORD) in the connection’s account — each with its criterion id, text, match type, status, negative flag, and owning ad group. Pass `ad_group_id` to return only the keywords under one ad group. By default REMOVED keywords are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListKeywordsOptions = (options: Options<GoogleListKeywordsData>) => queryOptions<GoogleListKeywordsResponse, GoogleListKeywordsError, GoogleListKeywordsResponse, ReturnType<typeof googleListKeywordsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListKeywords({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListKeywordsQueryKey(options)\n});\n\n/**\n * Create a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a keyword (an `ad_group_criterion` of type KEYWORD) under an ad group on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateKeywordMutation = (options?: Partial<Options<GoogleCreateKeywordData>>): UseMutationOptions<GoogleCreateKeywordResponse, GoogleCreateKeywordError, Options<GoogleCreateKeywordData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateKeywordResponse, GoogleCreateKeywordError, Options<GoogleCreateKeywordData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateKeyword({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetKeywordQueryKey = (options: Options<GoogleGetKeywordData>) => createQueryKey('googleGetKeyword', options);\n\n/**\n * Retrieve a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns one keyword (`ad_group_criterion` of type KEYWORD) by its composite id ({ad_group_id}~{criterion_id}), from the connection’s account — text, match type, status, negative flag, and owning ad group.\n */\nexport const googleGetKeywordOptions = (options: Options<GoogleGetKeywordData>) => queryOptions<GoogleGetKeywordResponse, GoogleGetKeywordError, GoogleGetKeywordResponse, ReturnType<typeof googleGetKeywordQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetKeyword({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetKeywordQueryKey(options)\n});\n\n/**\n * Set a Google Ads keyword’s bid\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets a keyword’s manual CPC bid (in micros) by its composite id ({ad_group_id}~{criterion_id}). Money write — secret-key-only. Pass `dry_run: true` to validate without applying.\n */\nexport const googleSetKeywordBidMutation = (options?: Partial<Options<GoogleSetKeywordBidData>>): UseMutationOptions<GoogleSetKeywordBidResponse, GoogleSetKeywordBidError, Options<GoogleSetKeywordBidData>> => {\n const mutationOptions: UseMutationOptions<GoogleSetKeywordBidResponse, GoogleSetKeywordBidError, Options<GoogleSetKeywordBidData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSetKeywordBid({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Removes a keyword (an `ad_group_criterion`) by its composite id ({ad_group_id}~{criterion_id}) (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveKeywordMutation = (options?: Partial<Options<GoogleRemoveKeywordData>>): UseMutationOptions<GoogleRemoveKeywordResponse, GoogleRemoveKeywordError, Options<GoogleRemoveKeywordData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveKeywordResponse, GoogleRemoveKeywordError, Options<GoogleRemoveKeywordData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveKeyword({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Pause a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses a keyword (`ad_group_criterion`) by its composite id ({ad_group_id}~{criterion_id}) (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseKeywordMutation = (options?: Partial<Options<GooglePauseKeywordData>>): UseMutationOptions<GooglePauseKeywordResponse, GooglePauseKeywordError, Options<GooglePauseKeywordData>> => {\n const mutationOptions: UseMutationOptions<GooglePauseKeywordResponse, GooglePauseKeywordError, Options<GooglePauseKeywordData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googlePauseKeyword({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Enable a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) a keyword (`ad_group_criterion`) by its composite id ({ad_group_id}~{criterion_id}). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableKeywordMutation = (options?: Partial<Options<GoogleEnableKeywordData>>): UseMutationOptions<GoogleEnableKeywordResponse, GoogleEnableKeywordError, Options<GoogleEnableKeywordData>> => {\n const mutationOptions: UseMutationOptions<GoogleEnableKeywordResponse, GoogleEnableKeywordError, Options<GoogleEnableKeywordData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEnableKeyword({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListConversionActionsQueryKey = (options: Options<GoogleListConversionActionsData>) => createQueryKey('googleListConversionActions', options);\n\n/**\n * List Google Ads conversion actions\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the conversion actions (the `conversion_action` resource) on the connection’s account — id, name, status, type, category, origin, primary-goal flag, counting type, value settings, and tag snippets.\n */\nexport const googleListConversionActionsOptions = (options: Options<GoogleListConversionActionsData>) => queryOptions<GoogleListConversionActionsResponse, GoogleListConversionActionsError, GoogleListConversionActionsResponse, ReturnType<typeof googleListConversionActionsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListConversionActions({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListConversionActionsQueryKey(options)\n});\n\n/**\n * Create a Google Ads conversion action\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a conversion action (the `conversion_action` resource) — a website tag (WEBPAGE) or an offline/API-reported action (UPLOAD_CLICKS) — on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateConversionActionMutation = (options?: Partial<Options<GoogleCreateConversionActionData>>): UseMutationOptions<GoogleCreateConversionActionResponse, GoogleCreateConversionActionError, Options<GoogleCreateConversionActionData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateConversionActionResponse, GoogleCreateConversionActionError, Options<GoogleCreateConversionActionData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateConversionAction({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetConversionActionQueryKey = (options: Options<GoogleGetConversionActionData>) => createQueryKey('googleGetConversionAction', options);\n\n/**\n * Retrieve a Google Ads conversion action\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single conversion action (the `conversion_action` resource) by its numeric id on the connection’s account.\n */\nexport const googleGetConversionActionOptions = (options: Options<GoogleGetConversionActionData>) => queryOptions<GoogleGetConversionActionResponse, GoogleGetConversionActionError, GoogleGetConversionActionResponse, ReturnType<typeof googleGetConversionActionQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetConversionAction({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetConversionActionQueryKey(options)\n});\n\n/**\n * Send Google Ads conversion events\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sends a batch of conversion events (1–2000) for one conversion action on the connection’s account, via the Data Manager API. Plaintext identifiers (email / phone / address) are hashed server-side. Pass `dry_run: true` to validate against Google without sending. Returns a request id; poll the status read with it for per-reason processing results.\n */\nexport const googleSendConversionsMutation = (options?: Partial<Options<GoogleSendConversionsData>>): UseMutationOptions<GoogleSendConversionsResponse, GoogleSendConversionsError, Options<GoogleSendConversionsData>> => {\n const mutationOptions: UseMutationOptions<GoogleSendConversionsResponse, GoogleSendConversionsError, Options<GoogleSendConversionsData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSendConversions({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetConversionStatusQueryKey = (options: Options<GoogleGetConversionStatusData>) => createQueryKey('googleGetConversionStatus', options);\n\n/**\n * Retrieve Google Ads conversion send status\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the per-destination, count-by-reason processing status for a prior conversion send (by its `request_id`) — the total events submitted, the error breakdown (with typed codes), and informational warnings. `destinations` is EMPTY for the first ~minute after a send (Google registers the request asynchronously) — poll until it populates.\n */\nexport const googleGetConversionStatusOptions = (options: Options<GoogleGetConversionStatusData>) => queryOptions<GoogleGetConversionStatusResponse, GoogleGetConversionStatusError, GoogleGetConversionStatusResponse, ReturnType<typeof googleGetConversionStatusQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetConversionStatus({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetConversionStatusQueryKey(options)\n});\n\nexport const googleListConversionRequestsQueryKey = (options: Options<GoogleListConversionRequestsData>) => createQueryKey('googleListConversionRequests', options);\n\n/**\n * List Google Ads conversion sends\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the history of conversion sends made on this connection (newest first) — each with its `request_id`, the conversion action it targeted, and how many events you submitted. Poll the status read with a `request_id` for that send’s per-destination processing result.\n */\nexport const googleListConversionRequestsOptions = (options: Options<GoogleListConversionRequestsData>) => queryOptions<GoogleListConversionRequestsResponse, GoogleListConversionRequestsError, GoogleListConversionRequestsResponse, ReturnType<typeof googleListConversionRequestsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListConversionRequests({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListConversionRequestsQueryKey(options)\n});\n\nexport const googleListConversionRequestsInfiniteQueryKey = (options: Options<GoogleListConversionRequestsData>): QueryKey<Options<GoogleListConversionRequestsData>> => createQueryKey('googleListConversionRequests', options, true);\n\n/**\n * List Google Ads conversion sends\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the history of conversion sends made on this connection (newest first) — each with its `request_id`, the conversion action it targeted, and how many events you submitted. Poll the status read with a `request_id` for that send’s per-destination processing result.\n */\nexport const googleListConversionRequestsInfiniteOptions = (options: Options<GoogleListConversionRequestsData>) => infiniteQueryOptions<GoogleListConversionRequestsResponse, GoogleListConversionRequestsError, InfiniteData<GoogleListConversionRequestsResponse>, QueryKey<Options<GoogleListConversionRequestsData>>, number | Pick<QueryKey<Options<GoogleListConversionRequestsData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<GoogleListConversionRequestsData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await googleListConversionRequests({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListConversionRequestsInfiniteQueryKey(options)\n});\n\nexport const googleListConversionGoalsQueryKey = (options: Options<GoogleListConversionGoalsData>) => createQueryKey('googleListConversionGoals', options);\n\n/**\n * List Google Ads conversion goals\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the conversion goals (the `customer_conversion_goal` resource) on the connection’s account — category, origin, and whether each is biddable. Google auto-creates these per category × origin.\n */\nexport const googleListConversionGoalsOptions = (options: Options<GoogleListConversionGoalsData>) => queryOptions<GoogleListConversionGoalsResponse, GoogleListConversionGoalsError, GoogleListConversionGoalsResponse, ReturnType<typeof googleListConversionGoalsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListConversionGoals({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListConversionGoalsQueryKey(options)\n});\n\n/**\n * Set a Google Ads conversion goal’s biddable flag\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets whether a conversion goal (selected by category × origin) is biddable — a primary goal Google optimises toward, or a secondary observation-only goal. Pass `dry_run: true` to preview without applying. Returns the goal and whether it executed.\n */\nexport const googleSetConversionGoalMutation = (options?: Partial<Options<GoogleSetConversionGoalData>>): UseMutationOptions<GoogleSetConversionGoalResponse, GoogleSetConversionGoalError, Options<GoogleSetConversionGoalData>> => {\n const mutationOptions: UseMutationOptions<GoogleSetConversionGoalResponse, GoogleSetConversionGoalError, Options<GoogleSetConversionGoalData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSetConversionGoal({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Upload a Google Ads image asset\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Uploads a Postrun image asset (its validated Google Ads rendition) to the connection’s account as an `image` asset, returning the new resource id + resource_name to chain into an ad/asset assembly. Pass `dry_run: true` to validate against Google without creating anything (Google’s native validate_only). The media asset must have a ready Google Ads rendition, else a 409.\n */\nexport const googleUploadImageAssetMutation = (options?: Partial<Options<GoogleUploadImageAssetData>>): UseMutationOptions<GoogleUploadImageAssetResponse, GoogleUploadImageAssetError, Options<GoogleUploadImageAssetData>> => {\n const mutationOptions: UseMutationOptions<GoogleUploadImageAssetResponse, GoogleUploadImageAssetError, Options<GoogleUploadImageAssetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleUploadImageAsset({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const tiktokCreatorInfoQueryKey = (options: Options<TiktokCreatorInfoData>) => createQueryKey('tiktokCreatorInfo', options);\n\n/**\n * Retrieve TikTok creator info\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the profile that owns the connection.\n *\n * Retrieves the TikTok creator's publish options live from TikTok — required by TikTok's Content Posting policy to render the publishing UI: the creator nickname + avatar, the privacy options to offer (with no default), and the Comment/Duet/Stitch flags to disable. Returns 404 if the connection does not exist in your account or is not a TikTok connection, 409 if the TikTok account must be reconnected, and 502 if TikTok’s creator-info call fails.\n */\nexport const tiktokCreatorInfoOptions = (options: Options<TiktokCreatorInfoData>) => queryOptions<TiktokCreatorInfoResponse, TiktokCreatorInfoError, TiktokCreatorInfoResponse, ReturnType<typeof tiktokCreatorInfoQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await tiktokCreatorInfo({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokCreatorInfoQueryKey(options)\n});\n\nexport const logsListQueryKey = (options?: Options<LogsListData>) => createQueryKey('logsList', options);\n\n/**\n * List request logs\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the API activity for your account — one entry per action, newest first. Filter by profile, connection, platform, status, source, action, or time range.\n */\nexport const logsListOptions = (options?: Options<LogsListData>) => queryOptions<LogsListResponse, LogsListError, LogsListResponse, ReturnType<typeof logsListQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await logsList({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: logsListQueryKey(options)\n});\n\nexport const logsListInfiniteQueryKey = (options?: Options<LogsListData>): QueryKey<Options<LogsListData>> => createQueryKey('logsList', options, true);\n\n/**\n * List request logs\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the API activity for your account — one entry per action, newest first. Filter by profile, connection, platform, status, source, action, or time range.\n */\nexport const logsListInfiniteOptions = (options?: Options<LogsListData>) => infiniteQueryOptions<LogsListResponse, LogsListError, InfiniteData<LogsListResponse>, QueryKey<Options<LogsListData>>, number | Pick<QueryKey<Options<LogsListData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<LogsListData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await logsList({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: logsListInfiniteQueryKey(options)\n});\n\nexport const logsGetQueryKey = (options: Options<LogsGetData>) => createQueryKey('logsGet', options);\n\n/**\n * Retrieve a request log\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Retrieves a single request log entry by id.\n */\nexport const logsGetOptions = (options: Options<LogsGetData>) => queryOptions<LogsGetResponse, LogsGetError, LogsGetResponse, ReturnType<typeof logsGetQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await logsGet({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: logsGetQueryKey(options)\n});\n\nexport const webhooksListEndpointsQueryKey = (options?: Options<WebhooksListEndpointsData>) => createQueryKey('webhooksListEndpoints', options);\n\n/**\n * List webhook endpoints\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the webhook endpoints registered for your account.\n */\nexport const webhooksListEndpointsOptions = (options?: Options<WebhooksListEndpointsData>) => queryOptions<WebhooksListEndpointsResponse, WebhooksListEndpointsError, WebhooksListEndpointsResponse, ReturnType<typeof webhooksListEndpointsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await webhooksListEndpoints({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: webhooksListEndpointsQueryKey(options)\n});\n\nexport const webhooksListEndpointsInfiniteQueryKey = (options?: Options<WebhooksListEndpointsData>): QueryKey<Options<WebhooksListEndpointsData>> => createQueryKey('webhooksListEndpoints', options, true);\n\n/**\n * List webhook endpoints\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the webhook endpoints registered for your account.\n */\nexport const webhooksListEndpointsInfiniteOptions = (options?: Options<WebhooksListEndpointsData>) => infiniteQueryOptions<WebhooksListEndpointsResponse, WebhooksListEndpointsError, InfiniteData<WebhooksListEndpointsResponse>, QueryKey<Options<WebhooksListEndpointsData>>, number | Pick<QueryKey<Options<WebhooksListEndpointsData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<WebhooksListEndpointsData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await webhooksListEndpoints({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: webhooksListEndpointsInfiniteQueryKey(options)\n});\n\n/**\n * Create a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Registers a URL to receive the chosen event types. Delivery, retries, and signing are handled for you.\n */\nexport const webhooksCreateEndpointMutation = (options?: Partial<Options<WebhooksCreateEndpointData>>): UseMutationOptions<WebhooksCreateEndpointResponse, WebhooksCreateEndpointError, Options<WebhooksCreateEndpointData>> => {\n const mutationOptions: UseMutationOptions<WebhooksCreateEndpointResponse, WebhooksCreateEndpointError, Options<WebhooksCreateEndpointData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await webhooksCreateEndpoint({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Delete a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Deletes a webhook endpoint. Delivery to it stops immediately.\n */\nexport const webhooksDeleteEndpointMutation = (options?: Partial<Options<WebhooksDeleteEndpointData>>): UseMutationOptions<WebhooksDeleteEndpointResponse, WebhooksDeleteEndpointError, Options<WebhooksDeleteEndpointData>> => {\n const mutationOptions: UseMutationOptions<WebhooksDeleteEndpointResponse, WebhooksDeleteEndpointError, Options<WebhooksDeleteEndpointData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await webhooksDeleteEndpoint({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const webhooksGetEndpointQueryKey = (options: Options<WebhooksGetEndpointData>) => createQueryKey('webhooksGetEndpoint', options);\n\n/**\n * Retrieve a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Retrieves a single webhook endpoint by id.\n */\nexport const webhooksGetEndpointOptions = (options: Options<WebhooksGetEndpointData>) => queryOptions<WebhooksGetEndpointResponse, WebhooksGetEndpointError, WebhooksGetEndpointResponse, ReturnType<typeof webhooksGetEndpointQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await webhooksGetEndpoint({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: webhooksGetEndpointQueryKey(options)\n});\n\n/**\n * Update a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Updates a webhook endpoint. Send only the fields you want to change; provide at least one.\n */\nexport const webhooksUpdateEndpointMutation = (options?: Partial<Options<WebhooksUpdateEndpointData>>): UseMutationOptions<WebhooksUpdateEndpointResponse, WebhooksUpdateEndpointError, Options<WebhooksUpdateEndpointData>> => {\n const mutationOptions: UseMutationOptions<WebhooksUpdateEndpointResponse, WebhooksUpdateEndpointError, Options<WebhooksUpdateEndpointData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await webhooksUpdateEndpoint({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Create a webhook portal link\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Mints a one-time App Portal URL where you (or your customer) self-serve webhook delivery logs and signing secrets.\n */\nexport const webhooksCreatePortalMutation = (options?: Partial<Options<WebhooksCreatePortalData>>): UseMutationOptions<WebhooksCreatePortalResponse, WebhooksCreatePortalError, Options<WebhooksCreatePortalData>> => {\n const mutationOptions: UseMutationOptions<WebhooksCreatePortalResponse, WebhooksCreatePortalError, Options<WebhooksCreatePortalData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await webhooksCreatePortal({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const webhooksListEventTypesQueryKey = (options?: Options<WebhooksListEventTypesData>) => createQueryKey('webhooksListEventTypes', options);\n\n/**\n * List webhook event types\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the event types you can subscribe an endpoint to (the catalog).\n */\nexport const webhooksListEventTypesOptions = (options?: Options<WebhooksListEventTypesData>) => queryOptions<WebhooksListEventTypesResponse, WebhooksListEventTypesError, WebhooksListEventTypesResponse, ReturnType<typeof webhooksListEventTypesQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await webhooksListEventTypes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: webhooksListEventTypesQueryKey(options)\n});\n\n/**\n * Send a test event\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Emits a `webhook.ping` event to your subscribed endpoints so you can verify delivery end to end.\n */\nexport const webhooksPingMutation = (options?: Partial<Options<WebhooksPingData>>): UseMutationOptions<WebhooksPingResponse, WebhooksPingError, Options<WebhooksPingData>> => {\n const mutationOptions: UseMutationOptions<WebhooksPingResponse, WebhooksPingError, Options<WebhooksPingData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await webhooksPing({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Mint a scoped frontend token\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Mints a short-lived, profile-scoped token from your secret `pr_` key. Call this from your backend; the returned token is safe to hand to a browser, which then calls the Postrun API directly. The secret key never touches the browser.\n */\nexport const tokensMintMutation = (options?: Partial<Options<TokensMintData>>): UseMutationOptions<TokensMintResponse, TokensMintError, Options<TokensMintData>> => {\n const mutationOptions: UseMutationOptions<TokensMintResponse, TokensMintError, Options<TokensMintData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tokensMint({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n"]}
1
+ {"version":3,"sources":["../src/client/core/bodySerializer.gen.ts","../src/client/core/serverSentEvents.gen.ts","../src/client/core/pathSerializer.gen.ts","../src/client/core/utils.gen.ts","../src/client/core/auth.gen.ts","../src/client/client/utils.gen.ts","../src/client/client/client.gen.ts","../src/client/client.gen.ts","../src/client/sdk.gen.ts","../src/client/@tanstack/react-query.gen.ts"],"names":["joinedValues","config","request","url"],"mappings":"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","file":"query.js","sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { ArrayStyle, ObjectStyle, SerializerOptions } from './pathSerializer.gen';\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: unknown) => unknown;\n\ntype QuerySerializerOptionsObject = {\n allowReserved?: boolean;\n array?: Partial<SerializerOptions<ArrayStyle>>;\n object?: Partial<SerializerOptions<ObjectStyle>>;\n};\n\nexport type QuerySerializerOptions = QuerySerializerOptionsObject & {\n /**\n * Per-parameter serialization overrides. When provided, these settings\n * override the global array/object settings for specific parameter names.\n */\n parameters?: Record<string, QuerySerializerOptionsObject>;\n};\n\nconst serializeFormDataPair = (data: FormData, key: string, value: unknown): void => {\n if (typeof value === 'string' || value instanceof Blob) {\n data.append(key, value);\n } else if (value instanceof Date) {\n data.append(key, value.toISOString());\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nconst serializeUrlSearchParamsPair = (data: URLSearchParams, key: string, value: unknown): void => {\n if (typeof value === 'string') {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const formDataBodySerializer = {\n bodySerializer: (body: unknown): FormData => {\n const data = new FormData();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n } else {\n serializeFormDataPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nexport const jsonBodySerializer = {\n bodySerializer: (body: unknown): string =>\n JSON.stringify(body, (_key, value) => (typeof value === 'bigint' ? value.toString() : value)),\n};\n\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: (body: unknown): string => {\n const data = new URLSearchParams();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n } else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n\n return data.toString();\n },\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Config } from './types.gen';\n\nexport type ServerSentEventsOptions<TData = unknown> = Omit<RequestInit, 'method'> &\n Pick<Config, 'method' | 'responseTransformer' | 'responseValidator'> & {\n /**\n * Fetch API implementation. You can use this option to provide a custom\n * fetch instance.\n *\n * @default globalThis.fetch\n */\n fetch?: typeof fetch;\n /**\n * Implementing clients can call request interceptors inside this hook.\n */\n onRequest?: (url: string, init: RequestInit) => Promise<Request>;\n /**\n * Callback invoked when a network or parsing error occurs during streaming.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param error The error that occurred.\n */\n onSseError?: (error: unknown) => void;\n /**\n * Callback invoked when an event is streamed from the server.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param event Event streamed from the server.\n * @returns Nothing (void).\n */\n onSseEvent?: (event: StreamEvent<TData>) => void;\n serializedBody?: RequestInit['body'];\n /**\n * Default retry delay in milliseconds.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 3000\n */\n sseDefaultRetryDelay?: number;\n /**\n * Maximum number of retry attempts before giving up.\n */\n sseMaxRetryAttempts?: number;\n /**\n * Maximum retry delay in milliseconds.\n *\n * Applies only when exponential backoff is used.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 30000\n */\n sseMaxRetryDelay?: number;\n /**\n * Optional sleep function for retry backoff.\n *\n * Defaults to using `setTimeout`.\n */\n sseSleepFn?: (ms: number) => Promise<void>;\n url: string;\n };\n\nexport interface StreamEvent<TData = unknown> {\n data: TData;\n event?: string;\n id?: string;\n retry?: number;\n}\n\nexport type ServerSentEventsResult<TData = unknown, TReturn = void, TNext = unknown> = {\n stream: AsyncGenerator<\n TData extends Record<string, unknown> ? TData[keyof TData] : TData,\n TReturn,\n TNext\n >;\n};\n\nexport function createSseClient<TData = unknown>({\n onRequest,\n onSseError,\n onSseEvent,\n responseTransformer,\n responseValidator,\n sseDefaultRetryDelay,\n sseMaxRetryAttempts,\n sseMaxRetryDelay,\n sseSleepFn,\n url,\n ...options\n}: ServerSentEventsOptions): ServerSentEventsResult<TData> {\n let lastEventId: string | undefined;\n\n const sleep = sseSleepFn ?? ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)));\n\n const createStream = async function* () {\n let retryDelay: number = sseDefaultRetryDelay ?? 3000;\n let attempt = 0;\n const signal = options.signal ?? new AbortController().signal;\n\n while (true) {\n if (signal.aborted) break;\n\n attempt++;\n\n const headers =\n options.headers instanceof Headers\n ? options.headers\n : new Headers(options.headers as Record<string, string> | undefined);\n\n if (lastEventId !== undefined) {\n headers.set('Last-Event-ID', lastEventId);\n }\n\n try {\n const requestInit: RequestInit = {\n redirect: 'follow',\n ...options,\n body: options.serializedBody,\n headers,\n signal,\n };\n let request = new Request(url, requestInit);\n if (onRequest) {\n request = await onRequest(url, requestInit);\n }\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = options.fetch ?? globalThis.fetch;\n const response = await _fetch(request);\n\n if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);\n\n if (!response.body) throw new Error('No body in SSE response');\n\n const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n\n let buffer = '';\n\n const abortHandler = () => {\n try {\n reader.cancel();\n } catch {\n // noop\n }\n };\n\n signal.addEventListener('abort', abortHandler);\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += value;\n buffer = buffer.replace(/\\r\\n?/g, '\\n'); // normalize line endings\n\n const chunks = buffer.split('\\n\\n');\n buffer = chunks.pop() ?? '';\n\n for (const chunk of chunks) {\n const lines = chunk.split('\\n');\n const dataLines: Array<string> = [];\n let eventName: string | undefined;\n\n for (const line of lines) {\n if (line.startsWith('data:')) {\n dataLines.push(line.replace(/^data:\\s*/, ''));\n } else if (line.startsWith('event:')) {\n eventName = line.replace(/^event:\\s*/, '');\n } else if (line.startsWith('id:')) {\n lastEventId = line.replace(/^id:\\s*/, '');\n } else if (line.startsWith('retry:')) {\n const parsed = Number.parseInt(line.replace(/^retry:\\s*/, ''), 10);\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed;\n }\n }\n }\n\n let data: unknown;\n let parsedJson = false;\n\n if (dataLines.length) {\n const rawData = dataLines.join('\\n');\n try {\n data = JSON.parse(rawData);\n parsedJson = true;\n } catch {\n data = rawData;\n }\n }\n\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data);\n }\n\n if (responseTransformer) {\n data = await responseTransformer(data);\n }\n }\n\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay,\n });\n\n if (dataLines.length) {\n yield data as any;\n }\n }\n }\n } finally {\n signal.removeEventListener('abort', abortHandler);\n reader.releaseLock();\n }\n\n break; // exit loop on normal completion\n } catch (error) {\n // connection failed or aborted; retry after delay\n onSseError?.(error);\n\n if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {\n break; // stop after firing error\n }\n\n // exponential backoff: double retry each attempt, cap at 30s\n const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000);\n await sleep(backoff);\n }\n }\n };\n\n const stream = createStream();\n\n return { stream };\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\ninterface SerializeOptions<T> extends SerializePrimitiveOptions, SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean;\n name: string;\n}\n\nexport interface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean;\n style: T;\n}\n\nexport type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\nexport type ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string;\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle): '.' | ';' | ',' | '&' => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle): ',' | '|' | '%20' => {\n switch (style) {\n case 'form':\n return ',';\n case 'pipeDelimited':\n return '|';\n case 'spaceDelimited':\n return '%20';\n default:\n return ',';\n }\n};\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle): '.' | ';' | ',' | '&' => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[];\n}): string => {\n if (!explode) {\n const joinedValues = (\n allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n ).join(separatorArrayNoExplode(style));\n switch (style) {\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n case 'simple':\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === 'label' || style === 'simple') {\n return allowReserved ? v : encodeURIComponent(v as string);\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n });\n })\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n\nexport const serializePrimitiveParam = ({\n allowReserved,\n name,\n value,\n}: SerializePrimitiveParam): string => {\n if (value === undefined || value === null) {\n return '';\n }\n\n if (typeof value === 'object') {\n throw new Error(\n 'Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.',\n );\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nexport const serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date;\n valueOnly?: boolean;\n}): string => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n\n if (style !== 'deepObject' && !explode) {\n let values: string[] = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [...values, key, allowReserved ? (v as string) : encodeURIComponent(v as string)];\n });\n const joinedValues = values.join(',');\n switch (style) {\n case 'form':\n return `${name}=${joinedValues}`;\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === 'deepObject' ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { BodySerializer, QuerySerializer } from './bodySerializer.gen';\nimport {\n type ArraySeparatorStyle,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from './pathSerializer.gen';\n\nexport interface PathSerializer {\n path: Record<string, unknown>;\n url: string;\n}\n\nexport const PATH_PARAM_RE: RegExp = /\\{[^{}]+\\}/g;\n\nexport const defaultPathSerializer = ({ path, url: _url }: PathSerializer): string => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style: ArraySeparatorStyle = 'simple';\n\n if (name.endsWith('*')) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n\n if (name.startsWith('.')) {\n name = name.substring(1);\n style = 'label';\n } else if (name.startsWith(';')) {\n name = name.substring(1);\n style = 'matrix';\n }\n\n const value = path[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n url = url.replace(match, serializeArrayParam({ explode, name, style, value }));\n continue;\n }\n\n if (typeof value === 'object') {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n valueOnly: true,\n }),\n );\n continue;\n }\n\n if (style === 'matrix') {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n );\n continue;\n }\n\n const replaceValue = encodeURIComponent(\n style === 'label' ? `.${value as string}` : (value as string),\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl?: string;\n path?: Record<string, unknown>;\n query?: Record<string, unknown>;\n querySerializer: QuerySerializer;\n url: string;\n}): string => {\n const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n let url = (baseUrl ?? '') + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : '';\n if (search.startsWith('?')) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n\nexport function getValidRequestBody(options: {\n body?: unknown;\n bodySerializer?: BodySerializer | null;\n serializedBody?: unknown;\n}): unknown {\n const hasBody = options.body !== undefined;\n const isSerializedBody = hasBody && options.bodySerializer;\n\n if (isSerializedBody) {\n if ('serializedBody' in options) {\n const hasSerializedBody =\n options.serializedBody !== undefined && options.serializedBody !== '';\n\n return hasSerializedBody ? options.serializedBody : null;\n }\n\n // not all clients implement a serializedBody property (i.e., client-axios)\n return options.body !== '' ? options.body : null;\n }\n\n // plain/text body\n if (hasBody) {\n return options.body;\n }\n\n // no body was provided\n return undefined;\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\nexport type AuthToken = string | undefined;\n\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * A unique identifier for the security scheme.\n *\n * Defined only when there are multiple security schemes whose `Auth`\n * shape would otherwise be identical.\n */\n key?: string;\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n auth: Auth,\n callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n const token = typeof callback === 'function' ? await callback(auth) : callback;\n\n if (!token) {\n return;\n }\n\n if (auth.scheme === 'bearer') {\n return `Bearer ${token}`;\n }\n\n if (auth.scheme === 'basic') {\n return `Basic ${btoa(token)}`;\n }\n\n return token;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { getAuthToken } from '../core/auth.gen';\nimport type { QuerySerializerOptions } from '../core/bodySerializer.gen';\nimport { jsonBodySerializer } from '../core/bodySerializer.gen';\nimport {\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from '../core/pathSerializer.gen';\nimport { getUrl } from '../core/utils.gen';\nimport type { Client, ClientOptions, Config, RequestOptions } from './types.gen';\n\nexport const createQuerySerializer = <T = unknown>({\n parameters = {},\n ...args\n}: QuerySerializerOptions = {}): ((queryParams: T) => string) => {\n const querySerializer = (queryParams: T): string => {\n const search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n const options = parameters[name] || args;\n\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...options.array,\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === 'object') {\n const serializedObject = serializeObjectParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...options.object,\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved: options.allowReserved,\n name,\n value: value as string,\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (contentType: string | null): Exclude<Config['parseAs'], 'auto'> => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return 'stream';\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (cleanContent.startsWith('application/json') || cleanContent.endsWith('+json')) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) => cleanContent.startsWith(type))\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n\n return;\n};\n\nconst checkForExistence = (\n options: Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n },\n name?: string,\n): boolean => {\n if (!name) {\n return false;\n }\n if (\n options.headers.has(name) ||\n options.query?.[name] ||\n options.headers.get('Cookie')?.includes(`${name}=`)\n ) {\n return true;\n }\n return false;\n};\n\nexport async function setAuthParams(\n options: Pick<RequestOptions, 'auth' | 'query' | 'security'> & {\n headers: Headers;\n },\n): Promise<void> {\n for (const auth of options.security ?? []) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n\n const token = await getAuthToken(auth, options.auth);\n\n if (!token) {\n continue;\n }\n\n const name = auth.name ?? 'Authorization';\n\n switch (auth.in) {\n case 'query':\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case 'cookie':\n options.headers.append('Cookie', `${name}=${token}`);\n break;\n case 'header':\n default:\n options.headers.set(name, token);\n break;\n }\n }\n}\n\nexport const buildUrl: Client['buildUrl'] = (options) =>\n getUrl({\n baseUrl: options.baseUrl as string,\n path: options.path,\n query: options.query,\n querySerializer:\n typeof options.querySerializer === 'function'\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n });\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nconst headersEntries = (headers: Headers): Array<[string, string]> => {\n const entries: Array<[string, string]> = [];\n headers.forEach((value, key) => {\n entries.push([key, value]);\n });\n return entries;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header) {\n continue;\n }\n\n const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e., their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n /** response may be undefined due to a network error where no response object is produced */\n response: Res | undefined,\n /** request may be undefined, because error may be from building the request object itself */\n request: Req | undefined,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (request: Req, options: Options) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n fns: Array<Interceptor | null> = [];\n\n clear(): void {\n this.fns = [];\n }\n\n eject(id: number | Interceptor): void {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = null;\n }\n }\n\n exists(id: number | Interceptor): boolean {\n const index = this.getInterceptorIndex(id);\n return Boolean(this.fns[index]);\n }\n\n getInterceptorIndex(id: number | Interceptor): number {\n if (typeof id === 'number') {\n return this.fns[id] ? id : -1;\n }\n return this.fns.indexOf(id);\n }\n\n update(id: number | Interceptor, fn: Interceptor): number | Interceptor | false {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = fn;\n return id;\n }\n return false;\n }\n\n use(fn: Interceptor): number {\n this.fns.push(fn);\n return this.fns.length - 1;\n }\n}\n\nexport interface Middleware<Req, Res, Err, Options> {\n error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;\n request: Interceptors<ReqInterceptor<Req, Options>>;\n response: Interceptors<ResInterceptor<Res, Req, Options>>;\n}\n\nexport const createInterceptors = <Req, Res, Err, Options>(): Middleware<\n Req,\n Res,\n Err,\n Options\n> => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { createSseClient } from '../core/serverSentEvents.gen';\nimport type { HttpMethod } from '../core/types.gen';\nimport { getValidRequestBody } from '../core/utils.gen';\nimport type { Client, Config, RequestOptions, ResolvedRequestOptions } from './types.gen';\nimport {\n buildUrl,\n createConfig,\n createInterceptors,\n getParseAs,\n mergeConfigs,\n mergeHeaders,\n setAuthParams,\n} from './utils.gen';\n\ntype ReqInit = Omit<RequestInit, 'body' | 'headers'> & {\n body?: any;\n headers: ReturnType<typeof mergeHeaders>;\n};\n\nexport const createClient = (config: Config = {}): Client => {\n let _config = mergeConfigs(createConfig(), config);\n\n const getConfig = (): Config => ({ ..._config });\n\n const setConfig = (config: Config): Config => {\n _config = mergeConfigs(_config, config);\n return getConfig();\n };\n\n const interceptors = createInterceptors<Request, Response, unknown, ResolvedRequestOptions>();\n\n const beforeRequest = async <\n TData = unknown,\n TResponseStyle extends 'data' | 'fields' = 'fields',\n ThrowOnError extends boolean = boolean,\n Url extends string = string,\n >(\n options: RequestOptions<TData, TResponseStyle, ThrowOnError, Url>,\n ) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: undefined as string | undefined,\n };\n\n if (opts.security) {\n await setAuthParams(opts);\n }\n\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n\n if (opts.body !== undefined && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body) as string | undefined;\n }\n\n // remove Content-Type header if body is empty to avoid sending invalid requests\n if (opts.body === undefined || opts.serializedBody === '') {\n opts.headers.delete('Content-Type');\n }\n\n const resolvedOpts = opts as typeof opts &\n ResolvedRequestOptions<TResponseStyle, ThrowOnError, Url>;\n const url = buildUrl(resolvedOpts);\n\n return { opts: resolvedOpts, url };\n };\n\n const request: Client['request'] = async (options) => {\n const throwOnError = options.throwOnError ?? _config.throwOnError;\n const responseStyle = options.responseStyle ?? _config.responseStyle;\n\n let request: Request | undefined;\n let response: Response | undefined;\n\n try {\n const { opts, url } = await beforeRequest(options);\n const requestInit: ReqInit = {\n redirect: 'follow',\n ...opts,\n body: getValidRequestBody(opts),\n };\n\n request = new Request(url, requestInit);\n\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = opts.fetch!;\n\n response = await _fetch(request);\n\n for (const fn of interceptors.response.fns) {\n if (fn) {\n response = await fn(response, request, opts);\n }\n }\n\n const result = {\n request,\n response,\n };\n\n if (response.ok) {\n const parseAs =\n (opts.parseAs === 'auto'\n ? getParseAs(response.headers.get('Content-Type'))\n : opts.parseAs) ?? 'json';\n\n if (response.status === 204 || response.headers.get('Content-Length') === '0') {\n let emptyData: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'text':\n emptyData = await response[parseAs]();\n break;\n case 'formData':\n emptyData = new FormData();\n break;\n case 'stream':\n emptyData = response.body;\n break;\n case 'json':\n default:\n emptyData = {};\n break;\n }\n return opts.responseStyle === 'data'\n ? emptyData\n : {\n data: emptyData,\n ...result,\n };\n }\n\n let data: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'formData':\n case 'text':\n data = await response[parseAs]();\n break;\n case 'json': {\n // Some servers return 200 with no Content-Length and empty body.\n // response.json() would throw; read as text and parse if non-empty.\n const text = await response.text();\n data = text ? JSON.parse(text) : {};\n break;\n }\n case 'stream':\n return opts.responseStyle === 'data'\n ? response.body\n : {\n data: response.body,\n ...result,\n };\n }\n\n if (parseAs === 'json') {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n\n return opts.responseStyle === 'data'\n ? data\n : {\n data,\n ...result,\n };\n }\n\n const textError = await response.text();\n let jsonError: unknown;\n\n try {\n jsonError = JSON.parse(textError);\n } catch {\n // noop\n }\n\n throw jsonError ?? textError;\n } catch (error) {\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = await fn(finalError, response, request, options as ResolvedRequestOptions);\n }\n }\n\n finalError = finalError || {};\n\n if (throwOnError) {\n throw finalError;\n }\n\n // TODO: we probably want to return error and improve types\n return responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n request,\n response,\n };\n }\n };\n\n const makeMethodFn = (method: Uppercase<HttpMethod>) => (options: RequestOptions) =>\n request({ ...options, method });\n\n const makeSseFn = (method: Uppercase<HttpMethod>) => async (options: RequestOptions) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body as BodyInit | null | undefined,\n method,\n onRequest: async (url, init) => {\n let request = new Request(url, init);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n return request;\n },\n serializedBody: getValidRequestBody(opts) as BodyInit | null | undefined,\n url,\n });\n };\n\n const _buildUrl: Client['buildUrl'] = (options) => buildUrl({ ..._config, ...options });\n\n return {\n buildUrl: _buildUrl,\n connect: makeMethodFn('CONNECT'),\n delete: makeMethodFn('DELETE'),\n get: makeMethodFn('GET'),\n getConfig,\n head: makeMethodFn('HEAD'),\n interceptors,\n options: makeMethodFn('OPTIONS'),\n patch: makeMethodFn('PATCH'),\n post: makeMethodFn('POST'),\n put: makeMethodFn('PUT'),\n request,\n setConfig,\n sse: {\n connect: makeSseFn('CONNECT'),\n delete: makeSseFn('DELETE'),\n get: makeSseFn('GET'),\n head: makeSseFn('HEAD'),\n options: makeSseFn('OPTIONS'),\n patch: makeSseFn('PATCH'),\n post: makeSseFn('POST'),\n put: makeSseFn('PUT'),\n trace: makeSseFn('TRACE'),\n },\n trace: makeMethodFn('TRACE'),\n } as Client;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type Client, type ClientOptions, type Config, createClient, createConfig } from './client';\nimport type { ClientOptions as ClientOptions2 } from './types.gen';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client: Client = createClient(createConfig<ClientOptions2>({ baseUrl: 'https://api.postrun.ai/v1', throwOnError: true }));\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Client, ClientMeta, Options as Options2, RequestResult, TDataShape } from './client';\nimport { client } from './client.gen';\nimport type { ConnectionsConnectData, ConnectionsConnectErrors, ConnectionsConnectResponses, ConnectionsDeleteData, ConnectionsDeleteErrors, ConnectionsDeleteResponses, ConnectionsGetData, ConnectionsGetErrors, ConnectionsGetResponses, ConnectionsListAccountsData, ConnectionsListAccountsErrors, ConnectionsListAccountsResponses, ConnectionsListByProfileData, ConnectionsListByProfileErrors, ConnectionsListByProfileResponses, ConnectionsSelectData, ConnectionsSelectErrors, ConnectionsSelectResponses, GoogleAttachAssetGroupAssetData, GoogleAttachAssetGroupAssetErrors, GoogleAttachAssetGroupAssetResponses, GoogleCreateAdData, GoogleCreateAdErrors, GoogleCreateAdGroupCriterionData, GoogleCreateAdGroupCriterionErrors, GoogleCreateAdGroupCriterionResponses, GoogleCreateAdGroupData, GoogleCreateAdGroupErrors, GoogleCreateAdGroupResponses, GoogleCreateAdResponses, GoogleCreateAssetGroupData, GoogleCreateAssetGroupErrors, GoogleCreateAssetGroupResponses, GoogleCreateAssetGroupSignalData, GoogleCreateAssetGroupSignalErrors, GoogleCreateAssetGroupSignalResponses, GoogleCreateBudgetData, GoogleCreateBudgetErrors, GoogleCreateBudgetResponses, GoogleCreateCampaignCriterionData, GoogleCreateCampaignCriterionErrors, GoogleCreateCampaignCriterionResponses, GoogleCreateCampaignData, GoogleCreateCampaignErrors, GoogleCreateCampaignResponses, GoogleCreateConversionActionData, GoogleCreateConversionActionErrors, GoogleCreateConversionActionResponses, GoogleCreateDisplayAdData, GoogleCreateDisplayAdErrors, GoogleCreateDisplayAdResponses, GoogleCreateKeywordData, GoogleCreateKeywordErrors, GoogleCreateKeywordResponses, GoogleCreatePerformanceMaxData, GoogleCreatePerformanceMaxErrors, GoogleCreatePerformanceMaxResponses, GoogleEditAccountData, GoogleEditAccountErrors, GoogleEditAccountResponses, GoogleEditAdData, GoogleEditAdErrors, GoogleEditAdGroupData, GoogleEditAdGroupErrors, GoogleEditAdGroupResponses, GoogleEditAdResponses, GoogleEditAssetGroupData, GoogleEditAssetGroupErrors, GoogleEditAssetGroupResponses, GoogleEditBudgetData, GoogleEditBudgetErrors, GoogleEditBudgetResponses, GoogleEditCampaignData, GoogleEditCampaignErrors, GoogleEditCampaignResponses, GoogleEditDisplayAdData, GoogleEditDisplayAdErrors, GoogleEditDisplayAdResponses, GoogleEnableAdData, GoogleEnableAdErrors, GoogleEnableAdGroupData, GoogleEnableAdGroupErrors, GoogleEnableAdGroupResponses, GoogleEnableAdResponses, GoogleEnableAssetGroupData, GoogleEnableAssetGroupErrors, GoogleEnableAssetGroupResponses, GoogleEnableCampaignData, GoogleEnableCampaignErrors, GoogleEnableCampaignResponses, GoogleEnableKeywordData, GoogleEnableKeywordErrors, GoogleEnableKeywordResponses, GoogleGetAccountData, GoogleGetAccountErrors, GoogleGetAccountResponses, GoogleGetAdData, GoogleGetAdErrors, GoogleGetAdGroupData, GoogleGetAdGroupErrors, GoogleGetAdGroupResponses, GoogleGetAdResponses, GoogleGetAdTreeData, GoogleGetAdTreeErrors, GoogleGetAdTreeResponses, GoogleGetAssetGroupData, GoogleGetAssetGroupErrors, GoogleGetAssetGroupResponses, GoogleGetCampaignData, GoogleGetCampaignErrors, GoogleGetCampaignResponses, GoogleGetConversionActionData, GoogleGetConversionActionErrors, GoogleGetConversionActionResponses, GoogleGetConversionStatusData, GoogleGetConversionStatusErrors, GoogleGetConversionStatusResponses, GoogleGetInsightsData, GoogleGetInsightsErrors, GoogleGetInsightsResponses, GoogleGetKeywordData, GoogleGetKeywordErrors, GoogleGetKeywordResponses, GoogleListAdGroupCriteriaData, GoogleListAdGroupCriteriaErrors, GoogleListAdGroupCriteriaResponses, GoogleListAdGroupsData, GoogleListAdGroupsErrors, GoogleListAdGroupsResponses, GoogleListAdsData, GoogleListAdsErrors, GoogleListAdsResponses, GoogleListAssetGroupAssetsData, GoogleListAssetGroupAssetsErrors, GoogleListAssetGroupAssetsResponses, GoogleListAssetGroupsData, GoogleListAssetGroupsErrors, GoogleListAssetGroupSignalsData, GoogleListAssetGroupSignalsErrors, GoogleListAssetGroupSignalsResponses, GoogleListAssetGroupsResponses, GoogleListAudiencesData, GoogleListAudiencesErrors, GoogleListAudiencesResponses, GoogleListCampaignCriteriaData, GoogleListCampaignCriteriaErrors, GoogleListCampaignCriteriaResponses, GoogleListCampaignsData, GoogleListCampaignsErrors, GoogleListCampaignsResponses, GoogleListConversionActionsData, GoogleListConversionActionsErrors, GoogleListConversionActionsResponses, GoogleListConversionGoalsData, GoogleListConversionGoalsErrors, GoogleListConversionGoalsResponses, GoogleListConversionRequestsData, GoogleListConversionRequestsErrors, GoogleListConversionRequestsResponses, GoogleListKeywordsData, GoogleListKeywordsErrors, GoogleListKeywordsResponses, GooglePauseAdData, GooglePauseAdErrors, GooglePauseAdGroupData, GooglePauseAdGroupErrors, GooglePauseAdGroupResponses, GooglePauseAdResponses, GooglePauseAssetGroupData, GooglePauseAssetGroupErrors, GooglePauseAssetGroupResponses, GooglePauseCampaignData, GooglePauseCampaignErrors, GooglePauseCampaignResponses, GooglePauseKeywordData, GooglePauseKeywordErrors, GooglePauseKeywordResponses, GoogleRemoveAdData, GoogleRemoveAdErrors, GoogleRemoveAdGroupCriterionData, GoogleRemoveAdGroupCriterionErrors, GoogleRemoveAdGroupCriterionResponses, GoogleRemoveAdGroupData, GoogleRemoveAdGroupErrors, GoogleRemoveAdGroupResponses, GoogleRemoveAdResponses, GoogleRemoveAssetGroupAssetData, GoogleRemoveAssetGroupAssetErrors, GoogleRemoveAssetGroupAssetResponses, GoogleRemoveAssetGroupData, GoogleRemoveAssetGroupErrors, GoogleRemoveAssetGroupResponses, GoogleRemoveAssetGroupSignalData, GoogleRemoveAssetGroupSignalErrors, GoogleRemoveAssetGroupSignalResponses, GoogleRemoveBudgetData, GoogleRemoveBudgetErrors, GoogleRemoveBudgetResponses, GoogleRemoveCampaignCriterionData, GoogleRemoveCampaignCriterionErrors, GoogleRemoveCampaignCriterionResponses, GoogleRemoveCampaignData, GoogleRemoveCampaignErrors, GoogleRemoveCampaignResponses, GoogleRemoveConversionActionData, GoogleRemoveConversionActionErrors, GoogleRemoveConversionActionResponses, GoogleRemoveKeywordData, GoogleRemoveKeywordErrors, GoogleRemoveKeywordResponses, GoogleRunGaqlData, GoogleRunGaqlErrors, GoogleRunGaqlResponses, GoogleSearchGeoTargetsData, GoogleSearchGeoTargetsErrors, GoogleSearchGeoTargetsResponses, GoogleSendConversionsData, GoogleSendConversionsErrors, GoogleSendConversionsResponses, GoogleSetAdGroupBidsData, GoogleSetAdGroupBidsErrors, GoogleSetAdGroupBidsResponses, GoogleSetCampaignBiddingData, GoogleSetCampaignBiddingErrors, GoogleSetCampaignBiddingResponses, GoogleSetCampaignGeoSettingsData, GoogleSetCampaignGeoSettingsErrors, GoogleSetCampaignGeoSettingsResponses, GoogleSetCampaignTargetingSettingData, GoogleSetCampaignTargetingSettingErrors, GoogleSetCampaignTargetingSettingResponses, GoogleSetConversionGoalData, GoogleSetConversionGoalErrors, GoogleSetConversionGoalResponses, GoogleSetKeywordBidData, GoogleSetKeywordBidErrors, GoogleSetKeywordBidResponses, GoogleUpdateConversionActionData, GoogleUpdateConversionActionErrors, GoogleUpdateConversionActionResponses, GoogleUploadImageAssetData, GoogleUploadImageAssetErrors, GoogleUploadImageAssetResponses, GoogleUploadYoutubeVideoAssetData, GoogleUploadYoutubeVideoAssetErrors, GoogleUploadYoutubeVideoAssetResponses, LogsGetData, LogsGetErrors, LogsGetResponses, LogsListData, LogsListErrors, LogsListResponses, MediaAbortData, MediaAbortErrors, MediaAbortResponses, MediaCompleteData, MediaCompleteErrors, MediaCompleteResponses, MediaCreateData, MediaCreateErrors, MediaCreateResponses, MediaDeleteData, MediaDeleteErrors, MediaDeleteResponses, MediaGetData, MediaGetErrors, MediaGetResponses, MediaListData, MediaListErrors, MediaListPartsData, MediaListPartsErrors, MediaListPartsResponses, MediaListResponses, MediaSignPartData, MediaSignPartErrors, MediaSignPartResponses, MediaUpdateData, MediaUpdateErrors, MediaUpdateResponses, MetaAccountData, MetaAccountErrors, MetaAccountResponses, MetaAdData, MetaAdErrors, MetaAdResponses, MetaAdsData, MetaAdsErrors, MetaAdsetData, MetaAdsetErrors, MetaAdsetResponses, MetaAdsetsData, MetaAdsetsErrors, MetaAdsetsResponses, MetaAdsResponses, MetaCampaignData, MetaCampaignErrors, MetaCampaignResponses, MetaCampaignsData, MetaCampaignsErrors, MetaCampaignsResponses, MetaInsightsData, MetaInsightsErrors, MetaInsightsResponses, PostsCreateData, PostsCreateErrors, PostsCreateResponses, PostsDeleteData, PostsDeleteErrors, PostsDeleteResponses, PostsGetData, PostsGetErrors, PostsGetResponses, PostsListData, PostsListErrors, PostsListResponses, PostsUpdateData, PostsUpdateErrors, PostsUpdateResponses, PostsValidateData, PostsValidateErrors, PostsValidateResponses, ProfilesCreateData, ProfilesCreateErrors, ProfilesCreateResponses, ProfilesDeleteData, ProfilesDeleteErrors, ProfilesDeleteResponses, ProfilesGetData, ProfilesGetErrors, ProfilesGetResponses, ProfilesListData, ProfilesListErrors, ProfilesListResponses, ProfilesUpdateData, ProfilesUpdateErrors, ProfilesUpdateResponses, TiktokAdsCreateAdData, TiktokAdsCreateAdErrors, TiktokAdsCreateAdGroupData, TiktokAdsCreateAdGroupErrors, TiktokAdsCreateAdGroupResponses, TiktokAdsCreateAdResponses, TiktokAdsCreateCampaignData, TiktokAdsCreateCampaignErrors, TiktokAdsCreateCampaignResponses, TiktokAdsCreateIdentityData, TiktokAdsCreateIdentityErrors, TiktokAdsCreateIdentityResponses, TiktokAdsGetAdTreeData, TiktokAdsGetAdTreeErrors, TiktokAdsGetAdTreeResponses, TiktokAdsGetInsightsData, TiktokAdsGetInsightsErrors, TiktokAdsGetInsightsResponses, TiktokAdsListAdGroupsData, TiktokAdsListAdGroupsErrors, TiktokAdsListAdGroupsResponses, TiktokAdsListAdsData, TiktokAdsListAdsErrors, TiktokAdsListAdsResponses, TiktokAdsListAdvertisersData, TiktokAdsListAdvertisersErrors, TiktokAdsListAdvertisersResponses, TiktokAdsListBusinessCentersData, TiktokAdsListBusinessCentersErrors, TiktokAdsListBusinessCentersResponses, TiktokAdsListCampaignsData, TiktokAdsListCampaignsErrors, TiktokAdsListCampaignsResponses, TiktokAdsListIdentitiesData, TiktokAdsListIdentitiesErrors, TiktokAdsListIdentitiesResponses, TiktokAdsRemoveAdData, TiktokAdsRemoveAdErrors, TiktokAdsRemoveAdGroupData, TiktokAdsRemoveAdGroupErrors, TiktokAdsRemoveAdGroupResponses, TiktokAdsRemoveAdResponses, TiktokAdsRemoveCampaignData, TiktokAdsRemoveCampaignErrors, TiktokAdsRemoveCampaignResponses, TiktokAdsUpdateAdGroupBudgetData, TiktokAdsUpdateAdGroupBudgetErrors, TiktokAdsUpdateAdGroupBudgetResponses, TiktokAdsUpdateAdGroupStatusData, TiktokAdsUpdateAdGroupStatusErrors, TiktokAdsUpdateAdGroupStatusResponses, TiktokAdsUpdateAdStatusData, TiktokAdsUpdateAdStatusErrors, TiktokAdsUpdateAdStatusResponses, TiktokAdsUpdateCampaignBudgetData, TiktokAdsUpdateCampaignBudgetErrors, TiktokAdsUpdateCampaignBudgetResponses, TiktokAdsUpdateCampaignStatusData, TiktokAdsUpdateCampaignStatusErrors, TiktokAdsUpdateCampaignStatusResponses, TiktokCreatorInfoData, TiktokCreatorInfoErrors, TiktokCreatorInfoResponses, TokensMintData, TokensMintErrors, TokensMintResponses, WebhooksCreateEndpointData, WebhooksCreateEndpointErrors, WebhooksCreateEndpointResponses, WebhooksCreatePortalData, WebhooksCreatePortalErrors, WebhooksCreatePortalResponses, WebhooksDeleteEndpointData, WebhooksDeleteEndpointErrors, WebhooksDeleteEndpointResponses, WebhooksGetEndpointData, WebhooksGetEndpointErrors, WebhooksGetEndpointResponses, WebhooksListEndpointsData, WebhooksListEndpointsErrors, WebhooksListEndpointsResponses, WebhooksListEventTypesData, WebhooksListEventTypesErrors, WebhooksListEventTypesResponses, WebhooksPingData, WebhooksPingErrors, WebhooksPingResponses, WebhooksUpdateEndpointData, WebhooksUpdateEndpointErrors, WebhooksUpdateEndpointResponses } from './types.gen';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: keyof ClientMeta extends never ? Record<string, unknown> : ClientMeta;\n};\n\n/**\n * List profiles\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the profiles under your account, newest first.\n */\nexport const profilesList = <ThrowOnError extends boolean = true>(options?: Options<ProfilesListData, ThrowOnError>): RequestResult<ProfilesListResponses, ProfilesListErrors, ThrowOnError> => (options?.client ?? client).get<ProfilesListResponses, ProfilesListErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles',\n ...options\n});\n\n/**\n * Create a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:write` with account-wide profile scope (`all`); a profile-scoped token cannot create.\n *\n * Creates a profile — a client/brand workspace under your account, and the unit connections attach to.\n */\nexport const profilesCreate = <ThrowOnError extends boolean = true>(options: Options<ProfilesCreateData, ThrowOnError>): RequestResult<ProfilesCreateResponses, ProfilesCreateErrors, ThrowOnError> => (options.client ?? client).post<ProfilesCreateResponses, ProfilesCreateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:delete` scoped to the target profile.\n *\n * Deletes a profile. The profile must have no connections — delete its connections first (and a connection in turn cannot be deleted while a post still publishes through it).\n */\nexport const profilesDelete = <ThrowOnError extends boolean = true>(options: Options<ProfilesDeleteData, ThrowOnError>): RequestResult<ProfilesDeleteResponses, ProfilesDeleteErrors, ThrowOnError> => (options.client ?? client).delete<ProfilesDeleteResponses, ProfilesDeleteErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles/{id}',\n ...options\n});\n\n/**\n * Retrieve a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:read` scoped to the target profile.\n *\n * Retrieves a single profile by id.\n */\nexport const profilesGet = <ThrowOnError extends boolean = true>(options: Options<ProfilesGetData, ThrowOnError>): RequestResult<ProfilesGetResponses, ProfilesGetErrors, ThrowOnError> => (options.client ?? client).get<ProfilesGetResponses, ProfilesGetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles/{id}',\n ...options\n});\n\n/**\n * Update a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:write` scoped to the target profile.\n *\n * Updates a profile. Send only the fields you want to change; provide at least one.\n */\nexport const profilesUpdate = <ThrowOnError extends boolean = true>(options: Options<ProfilesUpdateData, ThrowOnError>): RequestResult<ProfilesUpdateResponses, ProfilesUpdateErrors, ThrowOnError> => (options.client ?? client).patch<ProfilesUpdateResponses, ProfilesUpdateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List a profile's connections\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the target profile.\n *\n * Lists the external accounts connected to a profile, most recent first. Returns 404 if the profile doesn't exist in your account.\n */\nexport const connectionsListByProfile = <ThrowOnError extends boolean = true>(options: Options<ConnectionsListByProfileData, ThrowOnError>): RequestResult<ConnectionsListByProfileResponses, ConnectionsListByProfileErrors, ThrowOnError> => (options.client ?? client).get<ConnectionsListByProfileResponses, ConnectionsListByProfileErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles/{id}/connections',\n ...options\n});\n\n/**\n * Delete a connection\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:delete` scoped to the profile that owns the connection.\n *\n * Disconnects a connection. Returns a deletion marker; returns 404 if it does not exist in your account. Disconnect is unconditional — any scheduled posts that target this connection are not blocked; they fail gracefully at publish time with a `connection_removed` error until you reconnect and reschedule.\n */\nexport const connectionsDelete = <ThrowOnError extends boolean = true>(options: Options<ConnectionsDeleteData, ThrowOnError>): RequestResult<ConnectionsDeleteResponses, ConnectionsDeleteErrors, ThrowOnError> => (options.client ?? client).delete<ConnectionsDeleteResponses, ConnectionsDeleteErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/connections/{id}',\n ...options\n});\n\n/**\n * Retrieve a connection\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single connection by id.\n */\nexport const connectionsGet = <ThrowOnError extends boolean = true>(options: Options<ConnectionsGetData, ThrowOnError>): RequestResult<ConnectionsGetResponses, ConnectionsGetErrors, ThrowOnError> => (options.client ?? client).get<ConnectionsGetResponses, ConnectionsGetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/connections/{id}',\n ...options\n});\n\n/**\n * Select a connection account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:write` scoped to the profile that owns the connection.\n *\n * Activates a pending connection by choosing which external account (e.g. which Meta ad account) it uses. The account must be one reachable through the connection’s OAuth grant; its canonical name + currency are resolved server-side from discovery, so the stored display values can’t be spoofed by the caller.\n */\nexport const connectionsSelect = <ThrowOnError extends boolean = true>(options: Options<ConnectionsSelectData, ThrowOnError>): RequestResult<ConnectionsSelectResponses, ConnectionsSelectErrors, ThrowOnError> => (options.client ?? client).patch<ConnectionsSelectResponses, ConnectionsSelectErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/connections/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List a connection’s discoverable accounts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the profile that owns the connection.\n *\n * Lists the external ad accounts reachable through this connection’s OAuth grant — the picker shown after OAuth, while the connection is still pending account selection. Returns 404 if the connection does not exist in your account, and 501 if account discovery is not yet supported for the connection’s platform.\n */\nexport const connectionsListAccounts = <ThrowOnError extends boolean = true>(options: Options<ConnectionsListAccountsData, ThrowOnError>): RequestResult<ConnectionsListAccountsResponses, ConnectionsListAccountsErrors, ThrowOnError> => (options.client ?? client).get<ConnectionsListAccountsResponses, ConnectionsListAccountsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/connections/{id}/accounts',\n ...options\n});\n\n/**\n * Connect a platform account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:write` scoped to the target profile.\n *\n * Starts an OAuth connect flow for a platform on this profile. Returns a short-lived session the client uses to authorize; the connection is created once authorization succeeds.\n */\nexport const connectionsConnect = <ThrowOnError extends boolean = true>(options: Options<ConnectionsConnectData, ThrowOnError>): RequestResult<ConnectionsConnectResponses, ConnectionsConnectErrors, ThrowOnError> => (options.client ?? client).post<ConnectionsConnectResponses, ConnectionsConnectErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/profiles/{id}/connect',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the media assets under your account, newest first. Filter by profile, status, kind, your own external_id, or metadata.\n */\nexport const mediaList = <ThrowOnError extends boolean = true>(options?: Options<MediaListData, ThrowOnError>): RequestResult<MediaListResponses, MediaListErrors, ThrowOnError> => (options?.client ?? client).get<MediaListResponses, MediaListErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media',\n ...options\n});\n\n/**\n * Upload media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the target profile.\n *\n * Creates a media asset. Two ways to supply the bytes: (1) omit `source_url` and upload the bytes with the returned multipart `upload` session — chunk the file at `part_size`, sign each part via `POST /media/{id}/multipart/sign`, PUT the bytes, then `POST /media/{id}/multipart/complete` (the direct-upload path; `upload` is non-null and resumable), or (2) supply a public `https` `source_url` and we fetch the bytes server-side, validate, transform, and store them (the import path; `upload` is null). Either way the asset settles through the same probe/transform flow.\n */\nexport const mediaCreate = <ThrowOnError extends boolean = true>(options: Options<MediaCreateData, ThrowOnError>): RequestResult<MediaCreateResponses, MediaCreateErrors, ThrowOnError> => (options.client ?? client).post<MediaCreateResponses, MediaCreateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:delete` scoped to the profile that owns the media asset.\n *\n * Deletes a media asset and its stored renditions.\n */\nexport const mediaDelete = <ThrowOnError extends boolean = true>(options: Options<MediaDeleteData, ThrowOnError>): RequestResult<MediaDeleteResponses, MediaDeleteErrors, ThrowOnError> => (options.client ?? client).delete<MediaDeleteResponses, MediaDeleteErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}',\n ...options\n});\n\n/**\n * Retrieve media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:read` scoped to the profile that owns the media asset.\n *\n * Retrieves a media asset, including its per-platform processing status and renditions.\n */\nexport const mediaGet = <ThrowOnError extends boolean = true>(options: Options<MediaGetData, ThrowOnError>): RequestResult<MediaGetResponses, MediaGetErrors, ThrowOnError> => (options.client ?? client).get<MediaGetResponses, MediaGetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}',\n ...options\n});\n\n/**\n * Update media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Updates a media asset (alt text, metadata, external_id) or adds `targets` to pre-warm more platforms. Send only the fields to change.\n */\nexport const mediaUpdate = <ThrowOnError extends boolean = true>(options: Options<MediaUpdateData, ThrowOnError>): RequestResult<MediaUpdateResponses, MediaUpdateErrors, ThrowOnError> => (options.client ?? client).patch<MediaUpdateResponses, MediaUpdateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Sign an upload part\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Returns a presigned URL to PUT one part of a multipart upload. Chunk the file at the session’s `part_size` and sign each 1-indexed part; read each part PUT’s `ETag` for `complete`.\n */\nexport const mediaSignPart = <ThrowOnError extends boolean = true>(options: Options<MediaSignPartData, ThrowOnError>): RequestResult<MediaSignPartResponses, MediaSignPartErrors, ThrowOnError> => (options.client ?? client).post<MediaSignPartResponses, MediaSignPartErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}/multipart/sign',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List uploaded parts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Lists the parts already uploaded for this asset’s multipart upload (ascending). Skip re-uploading these to resume after a dropped connection.\n */\nexport const mediaListParts = <ThrowOnError extends boolean = true>(options: Options<MediaListPartsData, ThrowOnError>): RequestResult<MediaListPartsResponses, MediaListPartsErrors, ThrowOnError> => (options.client ?? client).get<MediaListPartsResponses, MediaListPartsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}/multipart/parts',\n ...options\n});\n\n/**\n * Complete an upload\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Finishes a multipart upload by assembling the uploaded parts. Send every part as `{ part_number, etag }`. Idempotent: completing an already-finished upload returns the asset.\n */\nexport const mediaComplete = <ThrowOnError extends boolean = true>(options: Options<MediaCompleteData, ThrowOnError>): RequestResult<MediaCompleteResponses, MediaCompleteErrors, ThrowOnError> => (options.client ?? client).post<MediaCompleteResponses, MediaCompleteErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}/multipart/complete',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Abort an upload\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Aborts an in-flight multipart upload and discards its parts. Idempotent: aborting an already-finished or unknown upload still returns the asset.\n */\nexport const mediaAbort = <ThrowOnError extends boolean = true>(options: Options<MediaAbortData, ThrowOnError>): RequestResult<MediaAbortResponses, MediaAbortErrors, ThrowOnError> => (options.client ?? client).post<MediaAbortResponses, MediaAbortErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/media/{id}/multipart/abort',\n ...options\n});\n\n/**\n * List posts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the posts under your account, newest first. Filter by profile or your own external_id.\n */\nexport const postsList = <ThrowOnError extends boolean = true>(options?: Options<PostsListData, ThrowOnError>): RequestResult<PostsListResponses, PostsListErrors, ThrowOnError> => (options?.client ?? client).get<PostsListResponses, PostsListErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/posts',\n ...options\n});\n\n/**\n * Create a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:write` scoped to the target profile.\n *\n * Composes a post + its per-channel variants. `publish` decides the outcome: `now` publishes immediately, `schedule` publishes at `schedule_at`, `draft` just stores it.\n */\nexport const postsCreate = <ThrowOnError extends boolean = true>(options: Options<PostsCreateData, ThrowOnError>): RequestResult<PostsCreateResponses, PostsCreateErrors, ThrowOnError> => (options.client ?? client).post<PostsCreateResponses, PostsCreateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/posts',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:delete` scoped to the profile that owns the post.\n *\n * Deletes a post and its variants. Returns a deletion marker; 404 if it does not exist in your account. Already-published posts are not retracted from the platform.\n */\nexport const postsDelete = <ThrowOnError extends boolean = true>(options: Options<PostsDeleteData, ThrowOnError>): RequestResult<PostsDeleteResponses, PostsDeleteErrors, ThrowOnError> => (options.client ?? client).delete<PostsDeleteResponses, PostsDeleteErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/posts/{id}',\n ...options\n});\n\n/**\n * Retrieve a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` scoped to the profile that owns the post.\n *\n * Retrieves a single post by id, including its per-channel variants and their derived status.\n */\nexport const postsGet = <ThrowOnError extends boolean = true>(options: Options<PostsGetData, ThrowOnError>): RequestResult<PostsGetResponses, PostsGetErrors, ThrowOnError> => (options.client ?? client).get<PostsGetResponses, PostsGetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/posts/{id}',\n ...options\n});\n\n/**\n * Update a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:write` scoped to the profile that owns the post.\n *\n * Edits a post and/or transitions its publish state (`draft` / `schedule` / `now`). Valid only while the post is draft or scheduled. Send only the fields to change; providing `variants` replaces the whole set.\n */\nexport const postsUpdate = <ThrowOnError extends boolean = true>(options: Options<PostsUpdateData, ThrowOnError>): RequestResult<PostsUpdateResponses, PostsUpdateErrors, ThrowOnError> => (options.client ?? client).patch<PostsUpdateResponses, PostsUpdateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/posts/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Validate a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` scoped to the target profile.\n *\n * Runs the exact ownership + publish-readiness checks the create path runs under dry_run, with no side effects. Returns a per-issue verdict (`publishable` + `issues[]`) on 200; a reference to a connection/media outside the profile is a typed 422.\n */\nexport const postsValidate = <ThrowOnError extends boolean = true>(options: Options<PostsValidateData, ThrowOnError>): RequestResult<PostsValidateResponses, PostsValidateErrors, ThrowOnError> => (options.client ?? client).post<PostsValidateResponses, PostsValidateErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/posts/validate',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve the Meta ad account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves the Meta ad account this connection is linked to — name, currency, status, and spend. Monetary fields are in the account currency’s minor units.\n */\nexport const metaAccount = <ThrowOnError extends boolean = true>(options: Options<MetaAccountData, ThrowOnError>): RequestResult<MetaAccountResponses, MetaAccountErrors, ThrowOnError> => (options.client ?? client).get<MetaAccountResponses, MetaAccountErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/account',\n ...options\n});\n\n/**\n * Retrieve Meta ad insights\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves performance insights for the connection’s Meta ad account, aggregated at the chosen `level` over a date window. Metric values are strings, in the account currency’s units.\n */\nexport const metaInsights = <ThrowOnError extends boolean = true>(options: Options<MetaInsightsData, ThrowOnError>): RequestResult<MetaInsightsResponses, MetaInsightsErrors, ThrowOnError> => (options.client ?? client).get<MetaInsightsResponses, MetaInsightsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/insights',\n ...options\n});\n\n/**\n * List Meta campaigns\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the campaigns under the connection’s Meta ad account, with each campaign’s status, objective, and budgets (budgets in the account currency’s minor units).\n */\nexport const metaCampaigns = <ThrowOnError extends boolean = true>(options: Options<MetaCampaignsData, ThrowOnError>): RequestResult<MetaCampaignsResponses, MetaCampaignsErrors, ThrowOnError> => (options.client ?? client).get<MetaCampaignsResponses, MetaCampaignsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/campaigns',\n ...options\n});\n\n/**\n * Retrieve a Meta campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single campaign under the connection’s Meta ad account by its campaign id — status, objective, and budgets.\n */\nexport const metaCampaign = <ThrowOnError extends boolean = true>(options: Options<MetaCampaignData, ThrowOnError>): RequestResult<MetaCampaignResponses, MetaCampaignErrors, ThrowOnError> => (options.client ?? client).get<MetaCampaignResponses, MetaCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/campaigns/{campaign_id}',\n ...options\n});\n\n/**\n * List Meta ad sets\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the ad sets under the connection’s Meta ad account, with each ad set’s status, parent campaign, budgets, and optimization (budgets in the account currency’s minor units).\n */\nexport const metaAdsets = <ThrowOnError extends boolean = true>(options: Options<MetaAdsetsData, ThrowOnError>): RequestResult<MetaAdsetsResponses, MetaAdsetsErrors, ThrowOnError> => (options.client ?? client).get<MetaAdsetsResponses, MetaAdsetsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/adsets',\n ...options\n});\n\n/**\n * Retrieve a Meta ad set\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single ad set under the connection’s Meta ad account by its ad set id — status, parent campaign, budgets, and optimization.\n */\nexport const metaAdset = <ThrowOnError extends boolean = true>(options: Options<MetaAdsetData, ThrowOnError>): RequestResult<MetaAdsetResponses, MetaAdsetErrors, ThrowOnError> => (options.client ?? client).get<MetaAdsetResponses, MetaAdsetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/adsets/{adset_id}',\n ...options\n});\n\n/**\n * List Meta ads\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the ads under the connection’s Meta ad account, with each ad’s status, parent ad set and campaign ids, and timestamps.\n */\nexport const metaAds = <ThrowOnError extends boolean = true>(options: Options<MetaAdsData, ThrowOnError>): RequestResult<MetaAdsResponses, MetaAdsErrors, ThrowOnError> => (options.client ?? client).get<MetaAdsResponses, MetaAdsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/ads',\n ...options\n});\n\n/**\n * Retrieve a Meta ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single ad under the connection’s Meta ad account by its ad id — status, parent ad set and campaign ids, and timestamps.\n */\nexport const metaAd = <ThrowOnError extends boolean = true>(options: Options<MetaAdData, ThrowOnError>): RequestResult<MetaAdResponses, MetaAdErrors, ThrowOnError> => (options.client ?? client).get<MetaAdResponses, MetaAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/meta/{connection_id}/ads/{ad_id}',\n ...options\n});\n\n/**\n * Retrieve the connected Google Ads account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the Google Ads account (the `customer` resource) backing this connection — id, descriptive name, currency, time zone, status, and whether it is a manager (MCC) or test account.\n */\nexport const googleGetAccount = <ThrowOnError extends boolean = true>(options: Options<GoogleGetAccountData, ThrowOnError>): RequestResult<GoogleGetAccountResponses, GoogleGetAccountErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetAccountResponses, GoogleGetAccountErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/account',\n ...options\n});\n\n/**\n * Edit Google Ads account URL settings\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates the account-level (customer) URL tracking settings — tracking_url_template and final_url_suffix. A campaign-level template overrides the account one. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditAccount = <ThrowOnError extends boolean = true>(options: Options<GoogleEditAccountData, ThrowOnError>): RequestResult<GoogleEditAccountResponses, GoogleEditAccountErrors, ThrowOnError> => (options.client ?? client).patch<GoogleEditAccountResponses, GoogleEditAccountErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/url-settings',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Google Ads performance insights\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Performance metrics for the connection’s account, at a chosen level (account / campaign / ad group / ad / keyword), for a date range, with optional breakdowns. Leaf levels (ad / keyword) require an `ad_group_id`; campaign / ad group accept an optional `campaign_id`. Each row carries its `parent_id`, so the tree is assemblable. The flagship cross-checked read; use `/gaql` for anything outside this shape.\n */\nexport const googleGetInsights = <ThrowOnError extends boolean = true>(options: Options<GoogleGetInsightsData, ThrowOnError>): RequestResult<GoogleGetInsightsResponses, GoogleGetInsightsErrors, ThrowOnError> => (options.client ?? client).post<GoogleGetInsightsResponses, GoogleGetInsightsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/insights',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Google Ads campaign tree\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * The campaign tree as flat, native, typed nodes — group them by `parent_id` to assemble the tree. Without `campaign_id`, returns every campaign (all channel types) with a per-type `child_kind`/`expandable` hint. With `campaign_id`, returns that campaign’s whole supported subtree in one batched fetch at a single window: ad groups + the type’s leaf (keywords for Search, ads for Display/Video/Demand Gen), or — for Performance Max — asset groups + their `asset_group_asset` leaves (each leaf carrying `field_type`, `primary_status`, and real per-asset metrics). By default REMOVED nodes are hidden at every level; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED). Each node carries `budget_micros` (campaign nodes only), Google’s authoritative per-level metrics (no client roll-up), `cost_micros`, and `cost` (account currency).\n */\nexport const googleGetAdTree = <ThrowOnError extends boolean = true>(options: Options<GoogleGetAdTreeData, ThrowOnError>): RequestResult<GoogleGetAdTreeResponses, GoogleGetAdTreeErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetAdTreeResponses, GoogleGetAdTreeErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads/tree',\n ...options\n});\n\n/**\n * Run a raw GAQL query\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Runs a raw Google Ads Query Language (GAQL) query against the connection’s account and returns the native rows. Read-only (GAQL only does `SELECT`). The power-user escape hatch beneath the typed reads.\n */\nexport const googleRunGaql = <ThrowOnError extends boolean = true>(options: Options<GoogleRunGaqlData, ThrowOnError>): RequestResult<GoogleRunGaqlResponses, GoogleRunGaqlErrors, ThrowOnError> => (options.client ?? client).post<GoogleRunGaqlResponses, GoogleRunGaqlErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/gaql',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create a Google Ads campaign budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Creates a standalone daily campaign budget (the `campaign_budget` resource) on the connection’s account. Money write — secret-key-only. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name to chain into a campaign.\n */\nexport const googleCreateBudget = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateBudgetData, ThrowOnError>): RequestResult<GoogleCreateBudgetResponses, GoogleCreateBudgetErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateBudgetResponses, GoogleCreateBudgetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/budgets',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Edit a Google Ads campaign budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Updates a budget’s daily amount (in micros) by numeric id. Money write — secret-key-only. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditBudget = <ThrowOnError extends boolean = true>(options: Options<GoogleEditBudgetData, ThrowOnError>): RequestResult<GoogleEditBudgetResponses, GoogleEditBudgetErrors, ThrowOnError> => (options.client ?? client).patch<GoogleEditBudgetResponses, GoogleEditBudgetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/budgets/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads campaign budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Removes a campaign budget by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveBudget = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveBudgetData, ThrowOnError>): RequestResult<GoogleRemoveBudgetResponses, GoogleRemoveBudgetErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveBudgetResponses, GoogleRemoveBudgetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/budgets/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads campaigns\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the campaigns (the `campaign` resource) on the connection’s account — id, name, status, advertising channel type, and bidding strategy type.\n */\nexport const googleListCampaigns = <ThrowOnError extends boolean = true>(options: Options<GoogleListCampaignsData, ThrowOnError>): RequestResult<GoogleListCampaignsResponses, GoogleListCampaignsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListCampaignsResponses, GoogleListCampaignsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns',\n ...options\n});\n\n/**\n * Create a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a Search or Display campaign (the `campaign` resource) on the connection’s account, attached to an existing budget. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateCampaign = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateCampaignData, ThrowOnError>): RequestResult<GoogleCreateCampaignResponses, GoogleCreateCampaignErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateCampaignResponses, GoogleCreateCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single campaign (the `campaign` resource) by its numeric id on the connection’s account — id, name, status, advertising channel type, and bidding strategy type.\n */\nexport const googleGetCampaign = <ThrowOnError extends boolean = true>(options: Options<GoogleGetCampaignData, ThrowOnError>): RequestResult<GoogleGetCampaignResponses, GoogleGetCampaignErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetCampaignResponses, GoogleGetCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{id}',\n ...options\n});\n\n/**\n * Edit a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates a campaign’s non-money fields — its name and URL tracking settings (tracking_url_template, final_url_suffix, url_custom_parameters) — by numeric id. Status has its own pause/enable endpoints; bids are a separate money write. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditCampaign = <ThrowOnError extends boolean = true>(options: Options<GoogleEditCampaignData, ThrowOnError>): RequestResult<GoogleEditCampaignResponses, GoogleEditCampaignErrors, ThrowOnError> => (options.client ?? client).patch<GoogleEditCampaignResponses, GoogleEditCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Set a Google Ads campaign’s bidding strategy\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets a campaign’s bidding strategy by numeric id. Supports the target-bearing strategies: target_cpa (needs target_cpa_micros), target_roas (needs target_roas), and maximize_conversion_value (needs target_roas). The bare/no-target strategies are selectable at campaign create, not here. Money write — secret-key-only. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleSetCampaignBidding = <ThrowOnError extends boolean = true>(options: Options<GoogleSetCampaignBiddingData, ThrowOnError>): RequestResult<GoogleSetCampaignBiddingResponses, GoogleSetCampaignBiddingErrors, ThrowOnError> => (options.client ?? client).patch<GoogleSetCampaignBiddingResponses, GoogleSetCampaignBiddingErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{id}/bidding',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes a campaign by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveCampaign = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveCampaignData, ThrowOnError>): RequestResult<GoogleRemoveCampaignResponses, GoogleRemoveCampaignErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveCampaignResponses, GoogleRemoveCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Pause a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses a campaign by its numeric id (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseCampaign = <ThrowOnError extends boolean = true>(options: Options<GooglePauseCampaignData, ThrowOnError>): RequestResult<GooglePauseCampaignResponses, GooglePauseCampaignErrors, ThrowOnError> => (options.client ?? client).post<GooglePauseCampaignResponses, GooglePauseCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{id}/pause',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Enable a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) a campaign by its numeric id. Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableCampaign = <ThrowOnError extends boolean = true>(options: Options<GoogleEnableCampaignData, ThrowOnError>): RequestResult<GoogleEnableCampaignResponses, GoogleEnableCampaignErrors, ThrowOnError> => (options.client ?? client).post<GoogleEnableCampaignResponses, GoogleEnableCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{id}/enable',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Search Google Ads geo targets\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Resolves a free-text location name (e.g. \"New York\") to matching geo target constants — each with id, name, canonical name, country code, target type, and status. Use a result’s `resource_name` (e.g. `geoTargetConstants/2840`), NOT the bare `id`, as the `geo_target_constant` of a location criterion.\n */\nexport const googleSearchGeoTargets = <ThrowOnError extends boolean = true>(options: Options<GoogleSearchGeoTargetsData, ThrowOnError>): RequestResult<GoogleSearchGeoTargetsResponses, GoogleSearchGeoTargetsErrors, ThrowOnError> => (options.client ?? client).get<GoogleSearchGeoTargetsResponses, GoogleSearchGeoTargetsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/geo-targets/search',\n ...options\n});\n\n/**\n * List Google Ads campaign targeting criteria\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists a campaign’s targeting criteria. LOCATION and LANGUAGE are fully modelled (geo_target_constant / language_constant, status, negative flag); any other criterion type is returned as { type, criterion_id }.\n */\nexport const googleListCampaignCriteria = <ThrowOnError extends boolean = true>(options: Options<GoogleListCampaignCriteriaData, ThrowOnError>): RequestResult<GoogleListCampaignCriteriaResponses, GoogleListCampaignCriteriaErrors, ThrowOnError> => (options.client ?? client).get<GoogleListCampaignCriteriaResponses, GoogleListCampaignCriteriaErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{campaign_id}/criteria',\n ...options\n});\n\n/**\n * Add a Google Ads campaign targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Adds a geo (location) or language targeting criterion to a campaign. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateCampaignCriterion = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateCampaignCriterionData, ThrowOnError>): RequestResult<GoogleCreateCampaignCriterionResponses, GoogleCreateCampaignCriterionErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateCampaignCriterionResponses, GoogleCreateCampaignCriterionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{campaign_id}/criteria',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads campaign targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes a campaign targeting criterion by its criterion id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveCampaignCriterion = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveCampaignCriterionData, ThrowOnError>): RequestResult<GoogleRemoveCampaignCriterionResponses, GoogleRemoveCampaignCriterionErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveCampaignCriterionResponses, GoogleRemoveCampaignCriterionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{campaign_id}/criteria/{criterion_id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Set a Google Ads campaign’s geo target type\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets a campaign’s geo target type — presence (people in the location) vs presence-or-interest (also people interested in it) — for positive and/or excluded locations. Pass `dry_run: true` to validate without applying.\n */\nexport const googleSetCampaignGeoSettings = <ThrowOnError extends boolean = true>(options: Options<GoogleSetCampaignGeoSettingsData, ThrowOnError>): RequestResult<GoogleSetCampaignGeoSettingsResponses, GoogleSetCampaignGeoSettingsErrors, ThrowOnError> => (options.client ?? client).patch<GoogleSetCampaignGeoSettingsResponses, GoogleSetCampaignGeoSettingsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{campaign_id}/geo-settings',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads ad groups\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the ad groups (Google’s equivalent of an ad set) in the Google Ads account backing this connection — id, name, status, type, and parent campaign. Pass `campaign_id` to return only the ad groups under one campaign. By default REMOVED ad groups are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListAdGroups = <ThrowOnError extends boolean = true>(options: Options<GoogleListAdGroupsData, ThrowOnError>): RequestResult<GoogleListAdGroupsResponses, GoogleListAdGroupsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListAdGroupsResponses, GoogleListAdGroupsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups',\n ...options\n});\n\n/**\n * Create a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates an ad group (the `ad_group` resource) under a campaign on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name to chain into ads and keywords.\n */\nexport const googleCreateAdGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateAdGroupData, ThrowOnError>): RequestResult<GoogleCreateAdGroupResponses, GoogleCreateAdGroupErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateAdGroupResponses, GoogleCreateAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single ad group by its numeric id from the Google Ads account backing this connection — id, name, status, type, and parent campaign.\n */\nexport const googleGetAdGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleGetAdGroupData, ThrowOnError>): RequestResult<GoogleGetAdGroupResponses, GoogleGetAdGroupErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetAdGroupResponses, GoogleGetAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{id}',\n ...options\n});\n\n/**\n * Edit a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates an ad group’s non-money fields (its name) by numeric id. Status has its own pause/enable endpoints; bids are a separate money write. Pass `dry_run: true` to validate without applying.\n */\nexport const googleEditAdGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleEditAdGroupData, ThrowOnError>): RequestResult<GoogleEditAdGroupResponses, GoogleEditAdGroupErrors, ThrowOnError> => (options.client ?? client).patch<GoogleEditAdGroupResponses, GoogleEditAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Set a Google Ads ad group’s bids\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets an ad group’s manual bids (cpc/cpm/target CPA in micros, target ROAS as a ratio) by numeric id. Money write — secret-key-only. Pass `dry_run: true` to validate without applying.\n */\nexport const googleSetAdGroupBids = <ThrowOnError extends boolean = true>(options: Options<GoogleSetAdGroupBidsData, ThrowOnError>): RequestResult<GoogleSetAdGroupBidsResponses, GoogleSetAdGroupBidsErrors, ThrowOnError> => (options.client ?? client).patch<GoogleSetAdGroupBidsResponses, GoogleSetAdGroupBidsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{id}/bids',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes an ad group by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAdGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveAdGroupData, ThrowOnError>): RequestResult<GoogleRemoveAdGroupResponses, GoogleRemoveAdGroupErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveAdGroupResponses, GoogleRemoveAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Pause a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses an ad group by its numeric id (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseAdGroup = <ThrowOnError extends boolean = true>(options: Options<GooglePauseAdGroupData, ThrowOnError>): RequestResult<GooglePauseAdGroupResponses, GooglePauseAdGroupErrors, ThrowOnError> => (options.client ?? client).post<GooglePauseAdGroupResponses, GooglePauseAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{id}/pause',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Enable a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) an ad group by its numeric id. Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableAdGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleEnableAdGroupData, ThrowOnError>): RequestResult<GoogleEnableAdGroupResponses, GoogleEnableAdGroupErrors, ThrowOnError> => (options.client ?? client).post<GoogleEnableAdGroupResponses, GoogleEnableAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{id}/enable',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads ad-group targeting criteria\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists an ad group’s targeting criteria. The four demographics (AGE_RANGE, GENDER, INCOME_RANGE, PARENTAL_STATUS) are fully modelled (with their value, status, and negative flag); any other criterion type (e.g. KEYWORD) is returned as { type, criterion_id }.\n */\nexport const googleListAdGroupCriteria = <ThrowOnError extends boolean = true>(options: Options<GoogleListAdGroupCriteriaData, ThrowOnError>): RequestResult<GoogleListAdGroupCriteriaResponses, GoogleListAdGroupCriteriaErrors, ThrowOnError> => (options.client ?? client).get<GoogleListAdGroupCriteriaResponses, GoogleListAdGroupCriteriaErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{ad_group_id}/criteria',\n ...options\n});\n\n/**\n * Add a Google Ads ad-group targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Adds a demographic (age range, gender, income range, or parental status) or audience (user list, audience, or custom audience) targeting criterion to an ad group. Audience criteria reference the `resource_name` returned by the audiences discovery read (`GET .../audiences`). Set `negative: true` to exclude instead of target. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateAdGroupCriterion = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateAdGroupCriterionData, ThrowOnError>): RequestResult<GoogleCreateAdGroupCriterionResponses, GoogleCreateAdGroupCriterionErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateAdGroupCriterionResponses, GoogleCreateAdGroupCriterionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{ad_group_id}/criteria',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads ad-group targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes an ad-group targeting criterion by its criterion id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAdGroupCriterion = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveAdGroupCriterionData, ThrowOnError>): RequestResult<GoogleRemoveAdGroupCriterionResponses, GoogleRemoveAdGroupCriterionErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveAdGroupCriterionResponses, GoogleRemoveAdGroupCriterionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ad-groups/{ad_group_id}/criteria/{criterion_id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads audiences available to target\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the user lists and audiences available to attach to an ad group, each with the `resource_name` you pass as the user_list / audience of an ad-group audience criterion. Optional `q` filters by name; `kind` narrows to one audience kind.\n */\nexport const googleListAudiences = <ThrowOnError extends boolean = true>(options: Options<GoogleListAudiencesData, ThrowOnError>): RequestResult<GoogleListAudiencesResponses, GoogleListAudiencesErrors, ThrowOnError> => (options.client ?? client).get<GoogleListAudiencesResponses, GoogleListAudiencesErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/audiences',\n ...options\n});\n\n/**\n * Set a Google Ads campaign’s targeting setting\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets a campaign’s targeting setting for one dimension (e.g. AUDIENCE): Observation (`bid_only: true` — does NOT narrow reach) vs Targeting (`bid_only: false` — narrows reach to the targeted criteria). Campaign + dimension scoped: shared by every audience criterion in the campaign. Pass `dry_run: true` to validate without applying. Note: Google rejects setting this on a campaign whose ad group already has a targeting setting (and vice versa).\n */\nexport const googleSetCampaignTargetingSetting = <ThrowOnError extends boolean = true>(options: Options<GoogleSetCampaignTargetingSettingData, ThrowOnError>): RequestResult<GoogleSetCampaignTargetingSettingResponses, GoogleSetCampaignTargetingSettingErrors, ThrowOnError> => (options.client ?? client).patch<GoogleSetCampaignTargetingSettingResponses, GoogleSetCampaignTargetingSettingErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/campaigns/{campaign_id}/targeting-setting',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads ads\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the ads (the `ad_group_ad` resource) on the connection’s account — id, name, creative type, serving status, and the owning ad group. Pass `ad_group_id` to return only the ads under one ad group. By default REMOVED ads are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListAds = <ThrowOnError extends boolean = true>(options: Options<GoogleListAdsData, ThrowOnError>): RequestResult<GoogleListAdsResponses, GoogleListAdsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListAdsResponses, GoogleListAdsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads',\n ...options\n});\n\n/**\n * Create a Google Ads responsive search ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a Responsive Search Ad (the `ad_group_ad` resource, inline text — no image assets) under an ad group on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateAd = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateAdData, ThrowOnError>): RequestResult<GoogleCreateAdResponses, GoogleCreateAdErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateAdResponses, GoogleCreateAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single ad (the `ad_group_ad` resource) by its composite id ({ad_group_id}~{ad_id}) on the connection’s account — id, name, creative type, serving status, and the owning ad group.\n */\nexport const googleGetAd = <ThrowOnError extends boolean = true>(options: Options<GoogleGetAdData, ThrowOnError>): RequestResult<GoogleGetAdResponses, GoogleGetAdErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetAdResponses, GoogleGetAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads/{id}',\n ...options\n});\n\n/**\n * Edit a Google Ads responsive search ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Edits a Responsive Search Ad’s creative (headlines, descriptions, paths) and URLs in place by its composite id ({ad_group_id}~{ad_id}). Editing an ad’s creative returns it to Google review (status Under review); it stops serving until re-approved — Google’s standard ad-review policy. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditAd = <ThrowOnError extends boolean = true>(options: Options<GoogleEditAdData, ThrowOnError>): RequestResult<GoogleEditAdResponses, GoogleEditAdErrors, ThrowOnError> => (options.client ?? client).patch<GoogleEditAdResponses, GoogleEditAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create a Google Ads responsive display ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a Responsive Display Ad (the `ad_group_ad` resource) under a Display ad group on the connection’s account, assembled from already-uploaded image-asset resource_names (upload them first via POST /v1/google/{connection_id}/assets). Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateDisplayAd = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateDisplayAdData, ThrowOnError>): RequestResult<GoogleCreateDisplayAdResponses, GoogleCreateDisplayAdErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateDisplayAdResponses, GoogleCreateDisplayAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/display-ads',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Edit a Google Ads responsive display ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Edits a Responsive Display Ad’s creative (image assets, headlines, descriptions, brand fields) and URLs in place by its composite id ({ad_group_id}~{ad_id}). Image slots take already-uploaded asset resource_names. Editing an ad’s creative returns it to Google review (status Under review); it stops serving until re-approved — Google’s standard ad-review policy. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditDisplayAd = <ThrowOnError extends boolean = true>(options: Options<GoogleEditDisplayAdData, ThrowOnError>): RequestResult<GoogleEditDisplayAdResponses, GoogleEditDisplayAdErrors, ThrowOnError> => (options.client ?? client).patch<GoogleEditDisplayAdResponses, GoogleEditDisplayAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/display-ads/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes an ad (an `ad_group_ad`) by its composite id ({ad_group_id}~{ad_id}) (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAd = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveAdData, ThrowOnError>): RequestResult<GoogleRemoveAdResponses, GoogleRemoveAdErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveAdResponses, GoogleRemoveAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Pause a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses an ad by its composite id ({ad_group_id}~{ad_id}) (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseAd = <ThrowOnError extends boolean = true>(options: Options<GooglePauseAdData, ThrowOnError>): RequestResult<GooglePauseAdResponses, GooglePauseAdErrors, ThrowOnError> => (options.client ?? client).post<GooglePauseAdResponses, GooglePauseAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads/{id}/pause',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Enable a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) an ad by its composite id ({ad_group_id}~{ad_id}). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableAd = <ThrowOnError extends boolean = true>(options: Options<GoogleEnableAdData, ThrowOnError>): RequestResult<GoogleEnableAdResponses, GoogleEnableAdErrors, ThrowOnError> => (options.client ?? client).post<GoogleEnableAdResponses, GoogleEnableAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/ads/{id}/enable',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads keywords\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the keywords (`ad_group_criterion` of type KEYWORD) in the connection’s account — each with its criterion id, text, match type, status, negative flag, and owning ad group. Pass `ad_group_id` to return only the keywords under one ad group. By default REMOVED keywords are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListKeywords = <ThrowOnError extends boolean = true>(options: Options<GoogleListKeywordsData, ThrowOnError>): RequestResult<GoogleListKeywordsResponses, GoogleListKeywordsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListKeywordsResponses, GoogleListKeywordsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords',\n ...options\n});\n\n/**\n * Create a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a keyword (an `ad_group_criterion` of type KEYWORD) under an ad group on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateKeyword = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateKeywordData, ThrowOnError>): RequestResult<GoogleCreateKeywordResponses, GoogleCreateKeywordErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateKeywordResponses, GoogleCreateKeywordErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns one keyword (`ad_group_criterion` of type KEYWORD) by its composite id ({ad_group_id}~{criterion_id}), from the connection’s account — text, match type, status, negative flag, and owning ad group.\n */\nexport const googleGetKeyword = <ThrowOnError extends boolean = true>(options: Options<GoogleGetKeywordData, ThrowOnError>): RequestResult<GoogleGetKeywordResponses, GoogleGetKeywordErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetKeywordResponses, GoogleGetKeywordErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords/{id}',\n ...options\n});\n\n/**\n * Set a Google Ads keyword’s bid\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets a keyword’s manual CPC bid (in micros) by its composite id ({ad_group_id}~{criterion_id}). Money write — secret-key-only. Pass `dry_run: true` to validate without applying.\n */\nexport const googleSetKeywordBid = <ThrowOnError extends boolean = true>(options: Options<GoogleSetKeywordBidData, ThrowOnError>): RequestResult<GoogleSetKeywordBidResponses, GoogleSetKeywordBidErrors, ThrowOnError> => (options.client ?? client).patch<GoogleSetKeywordBidResponses, GoogleSetKeywordBidErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords/{id}/bid',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes a keyword (an `ad_group_criterion`) by its composite id ({ad_group_id}~{criterion_id}) (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveKeyword = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveKeywordData, ThrowOnError>): RequestResult<GoogleRemoveKeywordResponses, GoogleRemoveKeywordErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveKeywordResponses, GoogleRemoveKeywordErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Pause a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses a keyword (`ad_group_criterion`) by its composite id ({ad_group_id}~{criterion_id}) (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseKeyword = <ThrowOnError extends boolean = true>(options: Options<GooglePauseKeywordData, ThrowOnError>): RequestResult<GooglePauseKeywordResponses, GooglePauseKeywordErrors, ThrowOnError> => (options.client ?? client).post<GooglePauseKeywordResponses, GooglePauseKeywordErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords/{id}/pause',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Enable a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) a keyword (`ad_group_criterion`) by its composite id ({ad_group_id}~{criterion_id}). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableKeyword = <ThrowOnError extends boolean = true>(options: Options<GoogleEnableKeywordData, ThrowOnError>): RequestResult<GoogleEnableKeywordResponses, GoogleEnableKeywordErrors, ThrowOnError> => (options.client ?? client).post<GoogleEnableKeywordResponses, GoogleEnableKeywordErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/keywords/{id}/enable',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads conversion actions\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the conversion actions (the `conversion_action` resource) on the connection’s account — id, name, status, type, category, origin, primary-goal flag, counting type, value settings, and tag snippets.\n */\nexport const googleListConversionActions = <ThrowOnError extends boolean = true>(options: Options<GoogleListConversionActionsData, ThrowOnError>): RequestResult<GoogleListConversionActionsResponses, GoogleListConversionActionsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListConversionActionsResponses, GoogleListConversionActionsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversion-actions',\n ...options\n});\n\n/**\n * Create a Google Ads conversion action\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a conversion action (the `conversion_action` resource) — a website tag (WEBPAGE) or an offline/API-reported action (UPLOAD_CLICKS) — on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateConversionAction = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateConversionActionData, ThrowOnError>): RequestResult<GoogleCreateConversionActionResponses, GoogleCreateConversionActionErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateConversionActionResponses, GoogleCreateConversionActionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversion-actions',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve a Google Ads conversion action\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single conversion action (the `conversion_action` resource) by its numeric id on the connection’s account.\n */\nexport const googleGetConversionAction = <ThrowOnError extends boolean = true>(options: Options<GoogleGetConversionActionData, ThrowOnError>): RequestResult<GoogleGetConversionActionResponses, GoogleGetConversionActionErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetConversionActionResponses, GoogleGetConversionActionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversion-actions/{id}',\n ...options\n});\n\n/**\n * Update a Google Ads conversion action\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates the mutable fields of a conversion action (name, category, status, value settings, counting type, lookback windows, primary-for-goal) by numeric id. Only the supplied fields change. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleUpdateConversionAction = <ThrowOnError extends boolean = true>(options: Options<GoogleUpdateConversionActionData, ThrowOnError>): RequestResult<GoogleUpdateConversionActionResponses, GoogleUpdateConversionActionErrors, ThrowOnError> => (options.client ?? client).patch<GoogleUpdateConversionActionResponses, GoogleUpdateConversionActionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversion-actions/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads conversion action\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes a conversion action by numeric id (Google’s native remove — a soft delete to status REMOVED). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveConversionAction = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveConversionActionData, ThrowOnError>): RequestResult<GoogleRemoveConversionActionResponses, GoogleRemoveConversionActionErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveConversionActionResponses, GoogleRemoveConversionActionErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversion-actions/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Send Google Ads conversion events\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sends a batch of conversion events (1–2000) for one conversion action on the connection’s account, via the Data Manager API. Plaintext identifiers (email / phone / address) are hashed server-side. Pass `dry_run: true` to validate against Google without sending. Returns a request id; poll the status read with it for per-reason processing results.\n */\nexport const googleSendConversions = <ThrowOnError extends boolean = true>(options: Options<GoogleSendConversionsData, ThrowOnError>): RequestResult<GoogleSendConversionsResponses, GoogleSendConversionsErrors, ThrowOnError> => (options.client ?? client).post<GoogleSendConversionsResponses, GoogleSendConversionsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversions:send',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve Google Ads conversion send status\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the per-destination, count-by-reason processing status for a prior conversion send (by its `request_id`) — the total events submitted, the error breakdown (with typed codes), and informational warnings. `destinations` is EMPTY for the first ~minute after a send (Google registers the request asynchronously) — poll until it populates.\n */\nexport const googleGetConversionStatus = <ThrowOnError extends boolean = true>(options: Options<GoogleGetConversionStatusData, ThrowOnError>): RequestResult<GoogleGetConversionStatusResponses, GoogleGetConversionStatusErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetConversionStatusResponses, GoogleGetConversionStatusErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversions/status',\n ...options\n});\n\n/**\n * List Google Ads conversion sends\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the history of conversion sends made on this connection (newest first) — each with its `request_id`, the conversion action it targeted, and how many events you submitted. Poll the status read with a `request_id` for that send’s per-destination processing result.\n */\nexport const googleListConversionRequests = <ThrowOnError extends boolean = true>(options: Options<GoogleListConversionRequestsData, ThrowOnError>): RequestResult<GoogleListConversionRequestsResponses, GoogleListConversionRequestsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListConversionRequestsResponses, GoogleListConversionRequestsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversions',\n ...options\n});\n\n/**\n * List Google Ads conversion goals\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the conversion goals (the `customer_conversion_goal` resource) on the connection’s account — category, origin, and whether each is biddable. Google auto-creates these per category × origin.\n */\nexport const googleListConversionGoals = <ThrowOnError extends boolean = true>(options: Options<GoogleListConversionGoalsData, ThrowOnError>): RequestResult<GoogleListConversionGoalsResponses, GoogleListConversionGoalsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListConversionGoalsResponses, GoogleListConversionGoalsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversion-goals',\n ...options\n});\n\n/**\n * Set a Google Ads conversion goal’s biddable flag\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets whether a conversion goal (selected by category × origin) is biddable — a primary goal Google optimises toward, or a secondary observation-only goal. Pass `dry_run: true` to preview without applying. Returns the goal and whether it executed.\n */\nexport const googleSetConversionGoal = <ThrowOnError extends boolean = true>(options: Options<GoogleSetConversionGoalData, ThrowOnError>): RequestResult<GoogleSetConversionGoalResponses, GoogleSetConversionGoalErrors, ThrowOnError> => (options.client ?? client).post<GoogleSetConversionGoalResponses, GoogleSetConversionGoalErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/conversion-goals',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Upload a Google Ads image asset\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Uploads a Postrun image asset (its validated Google Ads rendition) to the connection’s account as an `image` asset, returning the new resource id + resource_name to chain into an ad/asset assembly. Pass `dry_run: true` to validate against Google without creating anything (Google’s native validate_only). The media asset must have a ready Google Ads rendition, else a 409.\n */\nexport const googleUploadImageAsset = <ThrowOnError extends boolean = true>(options: Options<GoogleUploadImageAssetData, ThrowOnError>): RequestResult<GoogleUploadImageAssetResponses, GoogleUploadImageAssetErrors, ThrowOnError> => (options.client ?? client).post<GoogleUploadImageAssetResponses, GoogleUploadImageAssetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/assets/images',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create a Google Ads YouTube-video asset\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a YouTube-video asset on the connection’s account from a YouTube video URL (watch / youtu.be / shorts / embed), returning the new resource id + resource_name to chain into a Performance Max asset-group attach. Pass `dry_run: true` to validate against Google without creating anything (Google’s native validate_only).\n */\nexport const googleUploadYoutubeVideoAsset = <ThrowOnError extends boolean = true>(options: Options<GoogleUploadYoutubeVideoAssetData, ThrowOnError>): RequestResult<GoogleUploadYoutubeVideoAssetResponses, GoogleUploadYoutubeVideoAssetErrors, ThrowOnError> => (options.client ?? client).post<GoogleUploadYoutubeVideoAssetResponses, GoogleUploadYoutubeVideoAssetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/assets/youtube-video',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List Google Ads Performance Max asset groups\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the Performance Max asset groups in the Google Ads account backing this connection — id, name, status, ad strength, and parent campaign. Pass `campaign_id` to return only the asset groups under one campaign. By default REMOVED asset groups are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListAssetGroups = <ThrowOnError extends boolean = true>(options: Options<GoogleListAssetGroupsData, ThrowOnError>): RequestResult<GoogleListAssetGroupsResponses, GoogleListAssetGroupsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListAssetGroupsResponses, GoogleListAssetGroupsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/asset-groups',\n ...options\n});\n\n/**\n * Retrieve a Google Ads Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single Performance Max asset group by its numeric id from the Google Ads account backing this connection — id, name, status, the output-only ad strength, parent campaign, and URL display paths.\n */\nexport const googleGetAssetGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleGetAssetGroupData, ThrowOnError>): RequestResult<GoogleGetAssetGroupResponses, GoogleGetAssetGroupErrors, ThrowOnError> => (options.client ?? client).get<GoogleGetAssetGroupResponses, GoogleGetAssetGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/asset-groups/{id}',\n ...options\n});\n\n/**\n * Edit a Google Ads Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates an asset group’s non-money fields (name, final URLs, URL display paths) by numeric id. Status has its own pause/enable endpoints. Pass `dry_run: true` to validate without applying.\n */\nexport const googleEditAssetGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleEditAssetGroupData, ThrowOnError>): RequestResult<GoogleEditAssetGroupResponses, GoogleEditAssetGroupErrors, ThrowOnError> => (options.client ?? client).patch<GoogleEditAssetGroupResponses, GoogleEditAssetGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/asset-groups/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Add a Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Adds an asset group + its minimum servable asset set under an existing Performance Max campaign on the connection’s account. Image/video assets are referenced by resource_name (create them first via the assets endpoint); text assets are created inline. Pass `dry_run: true` to validate against Google without creating. Returns the new asset group id + resource_name.\n */\nexport const googleCreateAssetGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateAssetGroupData, ThrowOnError>): RequestResult<GoogleCreateAssetGroupResponses, GoogleCreateAssetGroupErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateAssetGroupResponses, GoogleCreateAssetGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/performance-max/{campaign_id}/asset-groups',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Pause a Google Ads Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses an asset group by its numeric id (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseAssetGroup = <ThrowOnError extends boolean = true>(options: Options<GooglePauseAssetGroupData, ThrowOnError>): RequestResult<GooglePauseAssetGroupResponses, GooglePauseAssetGroupErrors, ThrowOnError> => (options.client ?? client).post<GooglePauseAssetGroupResponses, GooglePauseAssetGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/asset-groups/{id}/pause',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Enable a Google Ads Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) an asset group by its numeric id. Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableAssetGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleEnableAssetGroupData, ThrowOnError>): RequestResult<GoogleEnableAssetGroupResponses, GoogleEnableAssetGroupErrors, ThrowOnError> => (options.client ?? client).post<GoogleEnableAssetGroupResponses, GoogleEnableAssetGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/asset-groups/{id}/enable',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a Google Ads Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes an asset group by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAssetGroup = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveAssetGroupData, ThrowOnError>): RequestResult<GoogleRemoveAssetGroupResponses, GoogleRemoveAssetGroupErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveAssetGroupResponses, GoogleRemoveAssetGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/asset-groups/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List a Performance Max asset group’s asset links\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the asset links (`asset_group_asset`) of a Performance Max asset group — each with its triple-composite id handle, field-type role, linked asset resource_name + type, text (for text assets), and link status. By default REMOVED links are hidden; pass `status` to filter to specific serving states.\n */\nexport const googleListAssetGroupAssets = <ThrowOnError extends boolean = true>(options: Options<GoogleListAssetGroupAssetsData, ThrowOnError>): RequestResult<GoogleListAssetGroupAssetsResponses, GoogleListAssetGroupAssetsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListAssetGroupAssetsResponses, GoogleListAssetGroupAssetsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/asset-groups/{asset_group_id}/assets',\n ...options\n});\n\n/**\n * Attach an asset to a Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Attaches an asset to an asset group as a link with a field-type role. `kind: \"asset\"` links an existing image/video by resource_name (create it first via the assets endpoint); `kind: \"text\"` creates + links a literal text asset. Pass `dry_run: true` to validate against Google without applying. Returns the new link’s triple-composite id + resource_name.\n */\nexport const googleAttachAssetGroupAsset = <ThrowOnError extends boolean = true>(options: Options<GoogleAttachAssetGroupAssetData, ThrowOnError>): RequestResult<GoogleAttachAssetGroupAssetResponses, GoogleAttachAssetGroupAssetErrors, ThrowOnError> => (options.client ?? client).post<GoogleAttachAssetGroupAssetResponses, GoogleAttachAssetGroupAssetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/asset-groups/{asset_group_id}/assets',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove an asset from a Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Unlinks an asset from an asset group (removes the `asset_group_asset`) by its triple-composite id ({asset_group_id}~{asset_id}~{field_type}). Set `dry_run: true` in the body to validate against Google without applying.\n */\nexport const googleRemoveAssetGroupAsset = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveAssetGroupAssetData, ThrowOnError>): RequestResult<GoogleRemoveAssetGroupAssetResponses, GoogleRemoveAssetGroupAssetErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveAssetGroupAssetResponses, GoogleRemoveAssetGroupAssetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/asset-groups/{asset_group_id}/assets/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List a Performance Max asset group’s signals\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the signals (`asset_group_signal`) of a Performance Max asset group — each with its composite id handle, type (audience / search_theme), its value (an audience resource_name or a search-theme text), and the output-only approval status + disapproval reasons.\n */\nexport const googleListAssetGroupSignals = <ThrowOnError extends boolean = true>(options: Options<GoogleListAssetGroupSignalsData, ThrowOnError>): RequestResult<GoogleListAssetGroupSignalsResponses, GoogleListAssetGroupSignalsErrors, ThrowOnError> => (options.client ?? client).get<GoogleListAssetGroupSignalsResponses, GoogleListAssetGroupSignalsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/asset-groups/{asset_group_id}/signals',\n ...options\n});\n\n/**\n * Add a signal to a Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Adds an audience or search-theme signal to an asset group. `type: \"audience\"` references an existing audience by resource_name (discover it via the audiences endpoint); `type: \"search_theme\"` is a free-text theme (≤80 chars). Pass `dry_run: true` to validate against Google without applying. Returns the new signal’s composite id + resource_name.\n */\nexport const googleCreateAssetGroupSignal = <ThrowOnError extends boolean = true>(options: Options<GoogleCreateAssetGroupSignalData, ThrowOnError>): RequestResult<GoogleCreateAssetGroupSignalResponses, GoogleCreateAssetGroupSignalErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreateAssetGroupSignalResponses, GoogleCreateAssetGroupSignalErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/asset-groups/{asset_group_id}/signals',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Remove a signal from a Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes a signal from an asset group (removes the `asset_group_signal`) by its composite id ({asset_group_id}~{criterion_id}). Set `dry_run: true` in the body to validate against Google without applying.\n */\nexport const googleRemoveAssetGroupSignal = <ThrowOnError extends boolean = true>(options: Options<GoogleRemoveAssetGroupSignalData, ThrowOnError>): RequestResult<GoogleRemoveAssetGroupSignalResponses, GoogleRemoveAssetGroupSignalErrors, ThrowOnError> => (options.client ?? client).post<GoogleRemoveAssetGroupSignalResponses, GoogleRemoveAssetGroupSignalErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/asset-groups/{asset_group_id}/signals/{id}/remove',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create a Performance Max campaign\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Atomically creates a Performance Max campaign — budget, campaign, asset group, and the minimum servable asset set — in one operation. Image/video assets are referenced by resource_name (create them first via the assets endpoint); text assets are created inline. Money write (carries budget_micros) — secret-key-only. Pass `dry_run: true` to validate against Google without creating. Returns the new campaign + asset group + budget ids.\n */\nexport const googleCreatePerformanceMax = <ThrowOnError extends boolean = true>(options: Options<GoogleCreatePerformanceMaxData, ThrowOnError>): RequestResult<GoogleCreatePerformanceMaxResponses, GoogleCreatePerformanceMaxErrors, ThrowOnError> => (options.client ?? client).post<GoogleCreatePerformanceMaxResponses, GoogleCreatePerformanceMaxErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/google/{connection_id}/performance-max',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Retrieve TikTok creator info\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the profile that owns the connection.\n *\n * Retrieves the TikTok creator's publish options live from TikTok — required by TikTok's Content Posting policy to render the publishing UI: the creator nickname + avatar, the privacy options to offer (with no default), and the Comment/Duet/Stitch flags to disable. Returns 404 if the connection does not exist in your account or is not a TikTok connection, 409 if the TikTok account must be reconnected, and 502 if TikTok’s creator-info call fails.\n */\nexport const tiktokCreatorInfo = <ThrowOnError extends boolean = true>(options: Options<TiktokCreatorInfoData, ThrowOnError>): RequestResult<TiktokCreatorInfoResponses, TiktokCreatorInfoErrors, ThrowOnError> => (options.client ?? client).get<TiktokCreatorInfoResponses, TiktokCreatorInfoErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/connections/{id}/tiktok/creator-info',\n ...options\n});\n\n/**\n * List authorized TikTok advertisers\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the TikTok advertisers (ad accounts) the connection’s grant authorizes — the source for selecting which advertiser this connection operates, and a confirmation the grant is live.\n */\nexport const tiktokAdsListAdvertisers = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsListAdvertisersData, ThrowOnError>): RequestResult<TiktokAdsListAdvertisersResponses, TiktokAdsListAdvertisersErrors, ThrowOnError> => (options.client ?? client).get<TiktokAdsListAdvertisersResponses, TiktokAdsListAdvertisersErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/advertisers',\n ...options\n});\n\n/**\n * List accessible TikTok Business Centers\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the TikTok Business Centers the connection’s grant can access (the agency picker). A solo advertiser token returns an empty list.\n */\nexport const tiktokAdsListBusinessCenters = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsListBusinessCentersData, ThrowOnError>): RequestResult<TiktokAdsListBusinessCentersResponses, TiktokAdsListBusinessCentersErrors, ThrowOnError> => (options.client ?? client).get<TiktokAdsListBusinessCentersResponses, TiktokAdsListBusinessCentersErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/business-centers',\n ...options\n});\n\n/**\n * List TikTok ad campaigns\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists campaigns under the connection’s selected advertiser. Optional filters narrow by `campaign_ids`, `campaign_name` (fuzzy), `objective_type`, `primary_status`, and `secondary_status`; `limit`/`offset` page the results. Deleted campaigns are excluded unless `primary_status=STATUS_DELETE`.\n */\nexport const tiktokAdsListCampaigns = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsListCampaignsData, ThrowOnError>): RequestResult<TiktokAdsListCampaignsResponses, TiktokAdsListCampaignsErrors, ThrowOnError> => (options.client ?? client).get<TiktokAdsListCampaignsResponses, TiktokAdsListCampaignsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/campaigns',\n ...options\n});\n\n/**\n * Create a TikTok ad campaign\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Creates a campaign under the connection’s selected advertiser. Money write — secret-key-only. Choose an objective (TRAFFIC / REACH / VIDEO_VIEWS / ENGAGEMENT / WEB_CONVERSIONS) and a budget mode: BUDGET_MODE_INFINITE (no budget; budget lives at the ad-group level), or BUDGET_MODE_DAY / BUDGET_MODE_TOTAL with a `budget`. Set `budget_optimize_on: true` for Campaign Budget Optimization (requires BUDGET_MODE_TOTAL + budget). Returns the created campaign.\n */\nexport const tiktokAdsCreateCampaign = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsCreateCampaignData, ThrowOnError>): RequestResult<TiktokAdsCreateCampaignResponses, TiktokAdsCreateCampaignErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsCreateCampaignResponses, TiktokAdsCreateCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/campaigns',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Pause or enable a TikTok ad campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets a campaign’s operation status to ENABLE (resume) or DISABLE (pause). A reversible, non-money write. Returns the campaign and the status now in effect.\n */\nexport const tiktokAdsUpdateCampaignStatus = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsUpdateCampaignStatusData, ThrowOnError>): RequestResult<TiktokAdsUpdateCampaignStatusResponses, TiktokAdsUpdateCampaignStatusErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsUpdateCampaignStatusResponses, TiktokAdsUpdateCampaignStatusErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/campaigns/{campaign_id}/status',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Set a TikTok ad campaign’s budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets a campaign’s budget while preserving its budget mode and every other setting. Money write — secret-key-only. TikTok requires the new budget to be at least 105% of current spend (rejected otherwise). Returns the campaign id and the budget now in effect.\n */\nexport const tiktokAdsUpdateCampaignBudget = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsUpdateCampaignBudgetData, ThrowOnError>): RequestResult<TiktokAdsUpdateCampaignBudgetResponses, TiktokAdsUpdateCampaignBudgetErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsUpdateCampaignBudgetResponses, TiktokAdsUpdateCampaignBudgetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/campaigns/{campaign_id}/budget',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a TikTok ad campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Permanently deletes a campaign. Deletion cannot be undone — a deleted campaign’s status can no longer be changed. Returns the campaign id and its now-deleted status.\n */\nexport const tiktokAdsRemoveCampaign = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsRemoveCampaignData, ThrowOnError>): RequestResult<TiktokAdsRemoveCampaignResponses, TiktokAdsRemoveCampaignErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsRemoveCampaignResponses, TiktokAdsRemoveCampaignErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/campaigns/{campaign_id}/remove',\n ...options\n});\n\n/**\n * List TikTok ad groups\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists ad groups under the connection’s selected advertiser. Optional filters narrow by `campaign_ids` (the parent campaigns), `adgroup_ids`, `adgroup_name` (fuzzy), `objective_type`, `primary_status`, and `secondary_status`; `limit`/`offset` page the results. Deleted ad groups are excluded unless `primary_status=STATUS_ALL` or `STATUS_DELETE`.\n */\nexport const tiktokAdsListAdGroups = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsListAdGroupsData, ThrowOnError>): RequestResult<TiktokAdsListAdGroupsResponses, TiktokAdsListAdGroupsErrors, ThrowOnError> => (options.client ?? client).get<TiktokAdsListAdGroupsResponses, TiktokAdsListAdGroupsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/ad-groups',\n ...options\n});\n\n/**\n * Create a TikTok ad group\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Creates an ad group under `campaign_id` (the parent) on the connection’s selected advertiser. Money write — secret-key-only. Carries the optimization goal + bidding strategy (Maximum Delivery / Cost Cap / Value), budget mode + budget, schedule, placement, and cheap inline targeting (gender / age / language / OS / locations). `billing_event` is derived from the optimization goal. Returns the created ad group.\n */\nexport const tiktokAdsCreateAdGroup = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsCreateAdGroupData, ThrowOnError>): RequestResult<TiktokAdsCreateAdGroupResponses, TiktokAdsCreateAdGroupErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsCreateAdGroupResponses, TiktokAdsCreateAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/ad-groups',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Pause or enable a TikTok ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets an ad group’s operation status to ENABLE (resume) or DISABLE (pause). A reversible, non-money write. Returns the ad group and the status now in effect.\n */\nexport const tiktokAdsUpdateAdGroupStatus = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsUpdateAdGroupStatusData, ThrowOnError>): RequestResult<TiktokAdsUpdateAdGroupStatusResponses, TiktokAdsUpdateAdGroupStatusErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsUpdateAdGroupStatusResponses, TiktokAdsUpdateAdGroupStatusErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/ad-groups/{adgroup_id}/status',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Set a TikTok ad group’s budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets an ad group’s budget. Money write — secret-key-only. Set `budget_kind: lifetime` for a BUDGET_MODE_TOTAL ad group (takes effect immediately) or `scheduled` for a daily / dynamic-daily ad group (takes effect from 00:00 the following day). A lane that does not match the ad group’s actual budget mode is rejected by TikTok. Returns the ad group id, the budget now in effect, and the lane set.\n */\nexport const tiktokAdsUpdateAdGroupBudget = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsUpdateAdGroupBudgetData, ThrowOnError>): RequestResult<TiktokAdsUpdateAdGroupBudgetResponses, TiktokAdsUpdateAdGroupBudgetErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsUpdateAdGroupBudgetResponses, TiktokAdsUpdateAdGroupBudgetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/ad-groups/{adgroup_id}/budget',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a TikTok ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Permanently deletes an ad group. Deletion cannot be undone — a deleted ad group’s status can no longer be changed. Returns the ad group id and its now-deleted status.\n */\nexport const tiktokAdsRemoveAdGroup = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsRemoveAdGroupData, ThrowOnError>): RequestResult<TiktokAdsRemoveAdGroupResponses, TiktokAdsRemoveAdGroupErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsRemoveAdGroupResponses, TiktokAdsRemoveAdGroupErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/ad-groups/{adgroup_id}/remove',\n ...options\n});\n\n/**\n * List TikTok ads\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists ads (the campaign → ad group → ad tree leaf) under the connection’s selected advertiser. Optional filters narrow by `adgroup_ids` (the parent ad groups), `campaign_ids`, `ad_ids`, `ad_name` (fuzzy), `objective_type`, `primary_status`, and `secondary_status`; `limit`/`offset` page the results. Deleted ads are excluded unless `primary_status=STATUS_ALL` or `STATUS_DELETE`.\n */\nexport const tiktokAdsListAds = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsListAdsData, ThrowOnError>): RequestResult<TiktokAdsListAdsResponses, TiktokAdsListAdsErrors, ThrowOnError> => (options.client ?? client).get<TiktokAdsListAdsResponses, TiktokAdsListAdsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/ads',\n ...options\n});\n\n/**\n * Create a TikTok ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a standalone single-video ad under `adgroup_id` (the parent) on the connection’s selected advertiser, posting as a CUSTOMIZED_USER identity. A reversible, non-money write. The creative is referenced by Postrun media ids: `video_media_id` (a ready `tiktok_ads` video, required) and an optional `cover_media_id` (a ready `tiktok_ads` image — omit to auto-derive the cover from the video). Also carries `identity_id`, `ad_text`, and a call-to-action. Returns the created ad.\n */\nexport const tiktokAdsCreateAd = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsCreateAdData, ThrowOnError>): RequestResult<TiktokAdsCreateAdResponses, TiktokAdsCreateAdErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsCreateAdResponses, TiktokAdsCreateAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/ads',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Pause or enable a TikTok ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets an ad’s operation status to ENABLE (resume) or DISABLE (pause). A reversible, non-money write. Returns the ad and the status now in effect.\n */\nexport const tiktokAdsUpdateAdStatus = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsUpdateAdStatusData, ThrowOnError>): RequestResult<TiktokAdsUpdateAdStatusResponses, TiktokAdsUpdateAdStatusErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsUpdateAdStatusResponses, TiktokAdsUpdateAdStatusErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/ads/{ad_id}/status',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a TikTok ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Permanently deletes an ad. Deletion cannot be undone — a deleted ad’s status can no longer be changed. Returns the ad id and its now-deleted status.\n */\nexport const tiktokAdsRemoveAd = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsRemoveAdData, ThrowOnError>): RequestResult<TiktokAdsRemoveAdResponses, TiktokAdsRemoveAdErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsRemoveAdResponses, TiktokAdsRemoveAdErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/ads/{ad_id}/remove',\n ...options\n});\n\n/**\n * TikTok ad performance insights\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Performance metrics for the connection’s advertiser, at a chosen level (advertiser / campaign / ad group / ad), for a date range, with optional time breakdowns and id filters. `dimensions` must include the level’s id dimension; each id filter must be valid at that level. Native TikTok metric names — use the curated set or fall back to the entity reads.\n */\nexport const tiktokAdsGetInsights = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsGetInsightsData, ThrowOnError>): RequestResult<TiktokAdsGetInsightsResponses, TiktokAdsGetInsightsErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsGetInsightsResponses, TiktokAdsGetInsightsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/insights',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * TikTok Ads campaign tree\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * The campaign → ad_group → ad tree as flat, native, typed nodes — group them by `parent_id` to assemble the tree. Without `campaign_id`, returns every campaign with a per-level `child_kind`/`expandable` hint. With `campaign_id`, returns that campaign’s whole subtree (ad groups + ads) in one batched fetch at a single window. Each node carries TikTok’s authoritative per-level metrics (no client roll-up) for the date window — metrics aggregate over the window (no time breakdown). There is no serving status on the tree (the basic report carries none); correlate a node id with the entity reads for status.\n */\nexport const tiktokAdsGetAdTree = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsGetAdTreeData, ThrowOnError>): RequestResult<TiktokAdsGetAdTreeResponses, TiktokAdsGetAdTreeErrors, ThrowOnError> => (options.client ?? client).get<TiktokAdsGetAdTreeResponses, TiktokAdsGetAdTreeErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/ads/tree',\n ...options\n});\n\n/**\n * List TikTok ad identities\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the identities under the connection’s selected advertiser. Optional `identity_type` narrows to one type (e.g. CUSTOMIZED_USER); `page`/`page_size` page the results.\n */\nexport const tiktokAdsListIdentities = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsListIdentitiesData, ThrowOnError>): RequestResult<TiktokAdsListIdentitiesResponses, TiktokAdsListIdentitiesErrors, ThrowOnError> => (options.client ?? client).get<TiktokAdsListIdentitiesResponses, TiktokAdsListIdentitiesErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/identities',\n ...options\n});\n\n/**\n * Create a TikTok CUSTOMIZED_USER identity\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a synthetic CUSTOMIZED_USER identity for in-feed ads: uploads the avatar from `image_url` (must be 1:1) and creates the identity with `display_name`. Returns the created identity (use its `identity_id` when creating ads).\n */\nexport const tiktokAdsCreateIdentity = <ThrowOnError extends boolean = true>(options: Options<TiktokAdsCreateIdentityData, ThrowOnError>): RequestResult<TiktokAdsCreateIdentityResponses, TiktokAdsCreateIdentityErrors, ThrowOnError> => (options.client ?? client).post<TiktokAdsCreateIdentityResponses, TiktokAdsCreateIdentityErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }, {\n key: 'frontendToken',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tiktok/{connection_id}/identities',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * List request logs\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the API activity for your account — one entry per action, newest first. Filter by profile, connection, platform, status, source, action, or time range.\n */\nexport const logsList = <ThrowOnError extends boolean = true>(options?: Options<LogsListData, ThrowOnError>): RequestResult<LogsListResponses, LogsListErrors, ThrowOnError> => (options?.client ?? client).get<LogsListResponses, LogsListErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/logs',\n ...options\n});\n\n/**\n * Retrieve a request log\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Retrieves a single request log entry by id.\n */\nexport const logsGet = <ThrowOnError extends boolean = true>(options: Options<LogsGetData, ThrowOnError>): RequestResult<LogsGetResponses, LogsGetErrors, ThrowOnError> => (options.client ?? client).get<LogsGetResponses, LogsGetErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/logs/{id}',\n ...options\n});\n\n/**\n * List webhook endpoints\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the webhook endpoints registered for your account.\n */\nexport const webhooksListEndpoints = <ThrowOnError extends boolean = true>(options?: Options<WebhooksListEndpointsData, ThrowOnError>): RequestResult<WebhooksListEndpointsResponses, WebhooksListEndpointsErrors, ThrowOnError> => (options?.client ?? client).get<WebhooksListEndpointsResponses, WebhooksListEndpointsErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/endpoints',\n ...options\n});\n\n/**\n * Create a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Registers a URL to receive the chosen event types. Delivery, retries, and signing are handled for you.\n */\nexport const webhooksCreateEndpoint = <ThrowOnError extends boolean = true>(options: Options<WebhooksCreateEndpointData, ThrowOnError>): RequestResult<WebhooksCreateEndpointResponses, WebhooksCreateEndpointErrors, ThrowOnError> => (options.client ?? client).post<WebhooksCreateEndpointResponses, WebhooksCreateEndpointErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/endpoints',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Deletes a webhook endpoint. Delivery to it stops immediately.\n */\nexport const webhooksDeleteEndpoint = <ThrowOnError extends boolean = true>(options: Options<WebhooksDeleteEndpointData, ThrowOnError>): RequestResult<WebhooksDeleteEndpointResponses, WebhooksDeleteEndpointErrors, ThrowOnError> => (options.client ?? client).delete<WebhooksDeleteEndpointResponses, WebhooksDeleteEndpointErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/endpoints/{id}',\n ...options\n});\n\n/**\n * Retrieve a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Retrieves a single webhook endpoint by id.\n */\nexport const webhooksGetEndpoint = <ThrowOnError extends boolean = true>(options: Options<WebhooksGetEndpointData, ThrowOnError>): RequestResult<WebhooksGetEndpointResponses, WebhooksGetEndpointErrors, ThrowOnError> => (options.client ?? client).get<WebhooksGetEndpointResponses, WebhooksGetEndpointErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/endpoints/{id}',\n ...options\n});\n\n/**\n * Update a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Updates a webhook endpoint. Send only the fields you want to change; provide at least one.\n */\nexport const webhooksUpdateEndpoint = <ThrowOnError extends boolean = true>(options: Options<WebhooksUpdateEndpointData, ThrowOnError>): RequestResult<WebhooksUpdateEndpointResponses, WebhooksUpdateEndpointErrors, ThrowOnError> => (options.client ?? client).patch<WebhooksUpdateEndpointResponses, WebhooksUpdateEndpointErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/endpoints/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Create a webhook portal link\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Mints a one-time App Portal URL where you (or your customer) self-serve webhook delivery logs and signing secrets.\n */\nexport const webhooksCreatePortal = <ThrowOnError extends boolean = true>(options?: Options<WebhooksCreatePortalData, ThrowOnError>): RequestResult<WebhooksCreatePortalResponses, WebhooksCreatePortalErrors, ThrowOnError> => (options?.client ?? client).post<WebhooksCreatePortalResponses, WebhooksCreatePortalErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/portal',\n ...options\n});\n\n/**\n * List webhook event types\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the event types you can subscribe an endpoint to (the catalog).\n */\nexport const webhooksListEventTypes = <ThrowOnError extends boolean = true>(options?: Options<WebhooksListEventTypesData, ThrowOnError>): RequestResult<WebhooksListEventTypesResponses, WebhooksListEventTypesErrors, ThrowOnError> => (options?.client ?? client).get<WebhooksListEventTypesResponses, WebhooksListEventTypesErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/event-types',\n ...options\n});\n\n/**\n * Send a test event\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Emits a `webhook.ping` event to your subscribed endpoints so you can verify delivery end to end.\n */\nexport const webhooksPing = <ThrowOnError extends boolean = true>(options: Options<WebhooksPingData, ThrowOnError>): RequestResult<WebhooksPingResponses, WebhooksPingErrors, ThrowOnError> => (options.client ?? client).post<WebhooksPingResponses, WebhooksPingErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/webhooks/ping',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Mint a scoped frontend token\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Mints a short-lived, profile-scoped token from your secret `pr_` key. Call this from your backend; the returned token is safe to hand to a browser, which then calls the Postrun API directly. The secret key never touches the browser.\n */\nexport const tokensMint = <ThrowOnError extends boolean = true>(options: Options<TokensMintData, ThrowOnError>): RequestResult<TokensMintResponses, TokensMintErrors, ThrowOnError> => (options.client ?? client).post<TokensMintResponses, TokensMintErrors, ThrowOnError>({\n security: [{\n key: 'secretKey',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/tokens',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type InfiniteData, infiniteQueryOptions, queryOptions, type UseMutationOptions } from '@tanstack/react-query';\n\nimport { client } from '../client.gen';\nimport { connectionsConnect, connectionsDelete, connectionsGet, connectionsListAccounts, connectionsListByProfile, connectionsSelect, googleAttachAssetGroupAsset, googleCreateAd, googleCreateAdGroup, googleCreateAdGroupCriterion, googleCreateAssetGroup, googleCreateAssetGroupSignal, googleCreateBudget, googleCreateCampaign, googleCreateCampaignCriterion, googleCreateConversionAction, googleCreateDisplayAd, googleCreateKeyword, googleCreatePerformanceMax, googleEditAccount, googleEditAd, googleEditAdGroup, googleEditAssetGroup, googleEditBudget, googleEditCampaign, googleEditDisplayAd, googleEnableAd, googleEnableAdGroup, googleEnableAssetGroup, googleEnableCampaign, googleEnableKeyword, googleGetAccount, googleGetAd, googleGetAdGroup, googleGetAdTree, googleGetAssetGroup, googleGetCampaign, googleGetConversionAction, googleGetConversionStatus, googleGetInsights, googleGetKeyword, googleListAdGroupCriteria, googleListAdGroups, googleListAds, googleListAssetGroupAssets, googleListAssetGroups, googleListAssetGroupSignals, googleListAudiences, googleListCampaignCriteria, googleListCampaigns, googleListConversionActions, googleListConversionGoals, googleListConversionRequests, googleListKeywords, googlePauseAd, googlePauseAdGroup, googlePauseAssetGroup, googlePauseCampaign, googlePauseKeyword, googleRemoveAd, googleRemoveAdGroup, googleRemoveAdGroupCriterion, googleRemoveAssetGroup, googleRemoveAssetGroupAsset, googleRemoveAssetGroupSignal, googleRemoveBudget, googleRemoveCampaign, googleRemoveCampaignCriterion, googleRemoveConversionAction, googleRemoveKeyword, googleRunGaql, googleSearchGeoTargets, googleSendConversions, googleSetAdGroupBids, googleSetCampaignBidding, googleSetCampaignGeoSettings, googleSetCampaignTargetingSetting, googleSetConversionGoal, googleSetKeywordBid, googleUpdateConversionAction, googleUploadImageAsset, googleUploadYoutubeVideoAsset, logsGet, logsList, mediaAbort, mediaComplete, mediaCreate, mediaDelete, mediaGet, mediaList, mediaListParts, mediaSignPart, mediaUpdate, metaAccount, metaAd, metaAds, metaAdset, metaAdsets, metaCampaign, metaCampaigns, metaInsights, type Options, postsCreate, postsDelete, postsGet, postsList, postsUpdate, postsValidate, profilesCreate, profilesDelete, profilesGet, profilesList, profilesUpdate, tiktokAdsCreateAd, tiktokAdsCreateAdGroup, tiktokAdsCreateCampaign, tiktokAdsCreateIdentity, tiktokAdsGetAdTree, tiktokAdsGetInsights, tiktokAdsListAdGroups, tiktokAdsListAds, tiktokAdsListAdvertisers, tiktokAdsListBusinessCenters, tiktokAdsListCampaigns, tiktokAdsListIdentities, tiktokAdsRemoveAd, tiktokAdsRemoveAdGroup, tiktokAdsRemoveCampaign, tiktokAdsUpdateAdGroupBudget, tiktokAdsUpdateAdGroupStatus, tiktokAdsUpdateAdStatus, tiktokAdsUpdateCampaignBudget, tiktokAdsUpdateCampaignStatus, tiktokCreatorInfo, tokensMint, webhooksCreateEndpoint, webhooksCreatePortal, webhooksDeleteEndpoint, webhooksGetEndpoint, webhooksListEndpoints, webhooksListEventTypes, webhooksPing, webhooksUpdateEndpoint } from '../sdk.gen';\nimport type { ConnectionsConnectData, ConnectionsConnectError, ConnectionsConnectResponse, ConnectionsDeleteData, ConnectionsDeleteError, ConnectionsDeleteResponse, ConnectionsGetData, ConnectionsGetError, ConnectionsGetResponse, ConnectionsListAccountsData, ConnectionsListAccountsError, ConnectionsListAccountsResponse, ConnectionsListByProfileData, ConnectionsListByProfileError, ConnectionsListByProfileResponse, ConnectionsSelectData, ConnectionsSelectError, ConnectionsSelectResponse, GoogleAttachAssetGroupAssetData, GoogleAttachAssetGroupAssetError, GoogleAttachAssetGroupAssetResponse, GoogleCreateAdData, GoogleCreateAdError, GoogleCreateAdGroupCriterionData, GoogleCreateAdGroupCriterionError, GoogleCreateAdGroupCriterionResponse, GoogleCreateAdGroupData, GoogleCreateAdGroupError, GoogleCreateAdGroupResponse, GoogleCreateAdResponse, GoogleCreateAssetGroupData, GoogleCreateAssetGroupError, GoogleCreateAssetGroupResponse, GoogleCreateAssetGroupSignalData, GoogleCreateAssetGroupSignalError, GoogleCreateAssetGroupSignalResponse, GoogleCreateBudgetData, GoogleCreateBudgetError, GoogleCreateBudgetResponse, GoogleCreateCampaignCriterionData, GoogleCreateCampaignCriterionError, GoogleCreateCampaignCriterionResponse, GoogleCreateCampaignData, GoogleCreateCampaignError, GoogleCreateCampaignResponse, GoogleCreateConversionActionData, GoogleCreateConversionActionError, GoogleCreateConversionActionResponse, GoogleCreateDisplayAdData, GoogleCreateDisplayAdError, GoogleCreateDisplayAdResponse, GoogleCreateKeywordData, GoogleCreateKeywordError, GoogleCreateKeywordResponse, GoogleCreatePerformanceMaxData, GoogleCreatePerformanceMaxError, GoogleCreatePerformanceMaxResponse, GoogleEditAccountData, GoogleEditAccountError, GoogleEditAccountResponse, GoogleEditAdData, GoogleEditAdError, GoogleEditAdGroupData, GoogleEditAdGroupError, GoogleEditAdGroupResponse, GoogleEditAdResponse, GoogleEditAssetGroupData, GoogleEditAssetGroupError, GoogleEditAssetGroupResponse, GoogleEditBudgetData, GoogleEditBudgetError, GoogleEditBudgetResponse, GoogleEditCampaignData, GoogleEditCampaignError, GoogleEditCampaignResponse, GoogleEditDisplayAdData, GoogleEditDisplayAdError, GoogleEditDisplayAdResponse, GoogleEnableAdData, GoogleEnableAdError, GoogleEnableAdGroupData, GoogleEnableAdGroupError, GoogleEnableAdGroupResponse, GoogleEnableAdResponse, GoogleEnableAssetGroupData, GoogleEnableAssetGroupError, GoogleEnableAssetGroupResponse, GoogleEnableCampaignData, GoogleEnableCampaignError, GoogleEnableCampaignResponse, GoogleEnableKeywordData, GoogleEnableKeywordError, GoogleEnableKeywordResponse, GoogleGetAccountData, GoogleGetAccountError, GoogleGetAccountResponse, GoogleGetAdData, GoogleGetAdError, GoogleGetAdGroupData, GoogleGetAdGroupError, GoogleGetAdGroupResponse, GoogleGetAdResponse, GoogleGetAdTreeData, GoogleGetAdTreeError, GoogleGetAdTreeResponse, GoogleGetAssetGroupData, GoogleGetAssetGroupError, GoogleGetAssetGroupResponse, GoogleGetCampaignData, GoogleGetCampaignError, GoogleGetCampaignResponse, GoogleGetConversionActionData, GoogleGetConversionActionError, GoogleGetConversionActionResponse, GoogleGetConversionStatusData, GoogleGetConversionStatusError, GoogleGetConversionStatusResponse, GoogleGetInsightsData, GoogleGetInsightsError, GoogleGetInsightsResponse, GoogleGetKeywordData, GoogleGetKeywordError, GoogleGetKeywordResponse, GoogleListAdGroupCriteriaData, GoogleListAdGroupCriteriaError, GoogleListAdGroupCriteriaResponse, GoogleListAdGroupsData, GoogleListAdGroupsError, GoogleListAdGroupsResponse, GoogleListAdsData, GoogleListAdsError, GoogleListAdsResponse, GoogleListAssetGroupAssetsData, GoogleListAssetGroupAssetsError, GoogleListAssetGroupAssetsResponse, GoogleListAssetGroupsData, GoogleListAssetGroupsError, GoogleListAssetGroupSignalsData, GoogleListAssetGroupSignalsError, GoogleListAssetGroupSignalsResponse, GoogleListAssetGroupsResponse, GoogleListAudiencesData, GoogleListAudiencesError, GoogleListAudiencesResponse, GoogleListCampaignCriteriaData, GoogleListCampaignCriteriaError, GoogleListCampaignCriteriaResponse, GoogleListCampaignsData, GoogleListCampaignsError, GoogleListCampaignsResponse, GoogleListConversionActionsData, GoogleListConversionActionsError, GoogleListConversionActionsResponse, GoogleListConversionGoalsData, GoogleListConversionGoalsError, GoogleListConversionGoalsResponse, GoogleListConversionRequestsData, GoogleListConversionRequestsError, GoogleListConversionRequestsResponse, GoogleListKeywordsData, GoogleListKeywordsError, GoogleListKeywordsResponse, GooglePauseAdData, GooglePauseAdError, GooglePauseAdGroupData, GooglePauseAdGroupError, GooglePauseAdGroupResponse, GooglePauseAdResponse, GooglePauseAssetGroupData, GooglePauseAssetGroupError, GooglePauseAssetGroupResponse, GooglePauseCampaignData, GooglePauseCampaignError, GooglePauseCampaignResponse, GooglePauseKeywordData, GooglePauseKeywordError, GooglePauseKeywordResponse, GoogleRemoveAdData, GoogleRemoveAdError, GoogleRemoveAdGroupCriterionData, GoogleRemoveAdGroupCriterionError, GoogleRemoveAdGroupCriterionResponse, GoogleRemoveAdGroupData, GoogleRemoveAdGroupError, GoogleRemoveAdGroupResponse, GoogleRemoveAdResponse, GoogleRemoveAssetGroupAssetData, GoogleRemoveAssetGroupAssetError, GoogleRemoveAssetGroupAssetResponse, GoogleRemoveAssetGroupData, GoogleRemoveAssetGroupError, GoogleRemoveAssetGroupResponse, GoogleRemoveAssetGroupSignalData, GoogleRemoveAssetGroupSignalError, GoogleRemoveAssetGroupSignalResponse, GoogleRemoveBudgetData, GoogleRemoveBudgetError, GoogleRemoveBudgetResponse, GoogleRemoveCampaignCriterionData, GoogleRemoveCampaignCriterionError, GoogleRemoveCampaignCriterionResponse, GoogleRemoveCampaignData, GoogleRemoveCampaignError, GoogleRemoveCampaignResponse, GoogleRemoveConversionActionData, GoogleRemoveConversionActionError, GoogleRemoveConversionActionResponse, GoogleRemoveKeywordData, GoogleRemoveKeywordError, GoogleRemoveKeywordResponse, GoogleRunGaqlData, GoogleRunGaqlError, GoogleRunGaqlResponse, GoogleSearchGeoTargetsData, GoogleSearchGeoTargetsError, GoogleSearchGeoTargetsResponse, GoogleSendConversionsData, GoogleSendConversionsError, GoogleSendConversionsResponse, GoogleSetAdGroupBidsData, GoogleSetAdGroupBidsError, GoogleSetAdGroupBidsResponse, GoogleSetCampaignBiddingData, GoogleSetCampaignBiddingError, GoogleSetCampaignBiddingResponse, GoogleSetCampaignGeoSettingsData, GoogleSetCampaignGeoSettingsError, GoogleSetCampaignGeoSettingsResponse, GoogleSetCampaignTargetingSettingData, GoogleSetCampaignTargetingSettingError, GoogleSetCampaignTargetingSettingResponse, GoogleSetConversionGoalData, GoogleSetConversionGoalError, GoogleSetConversionGoalResponse, GoogleSetKeywordBidData, GoogleSetKeywordBidError, GoogleSetKeywordBidResponse, GoogleUpdateConversionActionData, GoogleUpdateConversionActionError, GoogleUpdateConversionActionResponse, GoogleUploadImageAssetData, GoogleUploadImageAssetError, GoogleUploadImageAssetResponse, GoogleUploadYoutubeVideoAssetData, GoogleUploadYoutubeVideoAssetError, GoogleUploadYoutubeVideoAssetResponse, LogsGetData, LogsGetError, LogsGetResponse, LogsListData, LogsListError, LogsListResponse, MediaAbortData, MediaAbortError, MediaAbortResponse, MediaCompleteData, MediaCompleteError, MediaCompleteResponse, MediaCreateData, MediaCreateError, MediaCreateResponse, MediaDeleteData, MediaDeleteError, MediaDeleteResponse, MediaGetData, MediaGetError, MediaGetResponse, MediaListData, MediaListError, MediaListPartsData, MediaListPartsError, MediaListPartsResponse, MediaListResponse, MediaSignPartData, MediaSignPartError, MediaSignPartResponse, MediaUpdateData, MediaUpdateError, MediaUpdateResponse, MetaAccountData, MetaAccountError, MetaAccountResponse, MetaAdData, MetaAdError, MetaAdResponse, MetaAdsData, MetaAdsError, MetaAdsetData, MetaAdsetError, MetaAdsetResponse, MetaAdsetsData, MetaAdsetsError, MetaAdsetsResponse, MetaAdsResponse, MetaCampaignData, MetaCampaignError, MetaCampaignResponse, MetaCampaignsData, MetaCampaignsError, MetaCampaignsResponse, MetaInsightsData, MetaInsightsError, MetaInsightsResponse, PostsCreateData, PostsCreateError, PostsCreateResponse, PostsDeleteData, PostsDeleteError, PostsDeleteResponse, PostsGetData, PostsGetError, PostsGetResponse, PostsListData, PostsListError, PostsListResponse, PostsUpdateData, PostsUpdateError, PostsUpdateResponse, PostsValidateData, PostsValidateError, PostsValidateResponse, ProfilesCreateData, ProfilesCreateError, ProfilesCreateResponse, ProfilesDeleteData, ProfilesDeleteError, ProfilesDeleteResponse, ProfilesGetData, ProfilesGetError, ProfilesGetResponse, ProfilesListData, ProfilesListError, ProfilesListResponse, ProfilesUpdateData, ProfilesUpdateError, ProfilesUpdateResponse, TiktokAdsCreateAdData, TiktokAdsCreateAdError, TiktokAdsCreateAdGroupData, TiktokAdsCreateAdGroupError, TiktokAdsCreateAdGroupResponse, TiktokAdsCreateAdResponse, TiktokAdsCreateCampaignData, TiktokAdsCreateCampaignError, TiktokAdsCreateCampaignResponse, TiktokAdsCreateIdentityData, TiktokAdsCreateIdentityError, TiktokAdsCreateIdentityResponse, TiktokAdsGetAdTreeData, TiktokAdsGetAdTreeError, TiktokAdsGetAdTreeResponse, TiktokAdsGetInsightsData, TiktokAdsGetInsightsError, TiktokAdsGetInsightsResponse, TiktokAdsListAdGroupsData, TiktokAdsListAdGroupsError, TiktokAdsListAdGroupsResponse, TiktokAdsListAdsData, TiktokAdsListAdsError, TiktokAdsListAdsResponse, TiktokAdsListAdvertisersData, TiktokAdsListAdvertisersError, TiktokAdsListAdvertisersResponse, TiktokAdsListBusinessCentersData, TiktokAdsListBusinessCentersError, TiktokAdsListBusinessCentersResponse, TiktokAdsListCampaignsData, TiktokAdsListCampaignsError, TiktokAdsListCampaignsResponse, TiktokAdsListIdentitiesData, TiktokAdsListIdentitiesError, TiktokAdsListIdentitiesResponse, TiktokAdsRemoveAdData, TiktokAdsRemoveAdError, TiktokAdsRemoveAdGroupData, TiktokAdsRemoveAdGroupError, TiktokAdsRemoveAdGroupResponse, TiktokAdsRemoveAdResponse, TiktokAdsRemoveCampaignData, TiktokAdsRemoveCampaignError, TiktokAdsRemoveCampaignResponse, TiktokAdsUpdateAdGroupBudgetData, TiktokAdsUpdateAdGroupBudgetError, TiktokAdsUpdateAdGroupBudgetResponse, TiktokAdsUpdateAdGroupStatusData, TiktokAdsUpdateAdGroupStatusError, TiktokAdsUpdateAdGroupStatusResponse, TiktokAdsUpdateAdStatusData, TiktokAdsUpdateAdStatusError, TiktokAdsUpdateAdStatusResponse, TiktokAdsUpdateCampaignBudgetData, TiktokAdsUpdateCampaignBudgetError, TiktokAdsUpdateCampaignBudgetResponse, TiktokAdsUpdateCampaignStatusData, TiktokAdsUpdateCampaignStatusError, TiktokAdsUpdateCampaignStatusResponse, TiktokCreatorInfoData, TiktokCreatorInfoError, TiktokCreatorInfoResponse, TokensMintData, TokensMintError, TokensMintResponse, WebhooksCreateEndpointData, WebhooksCreateEndpointError, WebhooksCreateEndpointResponse, WebhooksCreatePortalData, WebhooksCreatePortalError, WebhooksCreatePortalResponse, WebhooksDeleteEndpointData, WebhooksDeleteEndpointError, WebhooksDeleteEndpointResponse, WebhooksGetEndpointData, WebhooksGetEndpointError, WebhooksGetEndpointResponse, WebhooksListEndpointsData, WebhooksListEndpointsError, WebhooksListEndpointsResponse, WebhooksListEventTypesData, WebhooksListEventTypesError, WebhooksListEventTypesResponse, WebhooksPingData, WebhooksPingError, WebhooksPingResponse, WebhooksUpdateEndpointData, WebhooksUpdateEndpointError, WebhooksUpdateEndpointResponse } from '../types.gen';\n\nexport type QueryKey<TOptions extends Options> = [\n Pick<TOptions, 'baseUrl' | 'body' | 'headers' | 'path' | 'query'> & {\n _id: string;\n _infinite?: boolean;\n tags?: ReadonlyArray<string>;\n }\n];\n\nconst createQueryKey = <TOptions extends Options>(id: string, options?: TOptions, infinite?: boolean, tags?: ReadonlyArray<string>): [\n QueryKey<TOptions>[0]\n] => {\n const params: QueryKey<TOptions>[0] = { _id: id, baseUrl: options?.baseUrl || (options?.client ?? client).getConfig().baseUrl } as QueryKey<TOptions>[0];\n if (infinite) {\n params._infinite = infinite;\n }\n if (tags) {\n params.tags = tags;\n }\n if (options?.body) {\n params.body = options.body;\n }\n if (options?.headers) {\n params.headers = options.headers;\n }\n if (options?.path) {\n params.path = options.path;\n }\n if (options?.query) {\n params.query = options.query;\n }\n return [params];\n};\n\nexport const profilesListQueryKey = (options?: Options<ProfilesListData>) => createQueryKey('profilesList', options);\n\n/**\n * List profiles\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the profiles under your account, newest first.\n */\nexport const profilesListOptions = (options?: Options<ProfilesListData>) => queryOptions<ProfilesListResponse, ProfilesListError, ProfilesListResponse, ReturnType<typeof profilesListQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await profilesList({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: profilesListQueryKey(options)\n});\n\nconst createInfiniteParams = <K extends Pick<QueryKey<Options>[0], 'body' | 'headers' | 'path' | 'query'>>(queryKey: QueryKey<Options>, page: K) => {\n const params = { ...queryKey[0] };\n if (page.body) {\n params.body = {\n ...queryKey[0].body as any,\n ...page.body as any\n };\n }\n if (page.headers) {\n params.headers = {\n ...queryKey[0].headers,\n ...page.headers\n };\n }\n if (page.path) {\n params.path = {\n ...queryKey[0].path as any,\n ...page.path as any\n };\n }\n if (page.query) {\n params.query = {\n ...queryKey[0].query as any,\n ...page.query as any\n };\n }\n return params as unknown as typeof page;\n};\n\nexport const profilesListInfiniteQueryKey = (options?: Options<ProfilesListData>): QueryKey<Options<ProfilesListData>> => createQueryKey('profilesList', options, true);\n\n/**\n * List profiles\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the profiles under your account, newest first.\n */\nexport const profilesListInfiniteOptions = (options?: Options<ProfilesListData>) => infiniteQueryOptions<ProfilesListResponse, ProfilesListError, InfiniteData<ProfilesListResponse>, QueryKey<Options<ProfilesListData>>, number | Pick<QueryKey<Options<ProfilesListData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<ProfilesListData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await profilesList({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: profilesListInfiniteQueryKey(options)\n});\n\n/**\n * Create a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:write` with account-wide profile scope (`all`); a profile-scoped token cannot create.\n *\n * Creates a profile — a client/brand workspace under your account, and the unit connections attach to.\n */\nexport const profilesCreateMutation = (options?: Partial<Options<ProfilesCreateData>>): UseMutationOptions<ProfilesCreateResponse, ProfilesCreateError, Options<ProfilesCreateData>> => {\n const mutationOptions: UseMutationOptions<ProfilesCreateResponse, ProfilesCreateError, Options<ProfilesCreateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await profilesCreate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Delete a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:delete` scoped to the target profile.\n *\n * Deletes a profile. The profile must have no connections — delete its connections first (and a connection in turn cannot be deleted while a post still publishes through it).\n */\nexport const profilesDeleteMutation = (options?: Partial<Options<ProfilesDeleteData>>): UseMutationOptions<ProfilesDeleteResponse, ProfilesDeleteError, Options<ProfilesDeleteData>> => {\n const mutationOptions: UseMutationOptions<ProfilesDeleteResponse, ProfilesDeleteError, Options<ProfilesDeleteData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await profilesDelete({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const profilesGetQueryKey = (options: Options<ProfilesGetData>) => createQueryKey('profilesGet', options);\n\n/**\n * Retrieve a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:read` scoped to the target profile.\n *\n * Retrieves a single profile by id.\n */\nexport const profilesGetOptions = (options: Options<ProfilesGetData>) => queryOptions<ProfilesGetResponse, ProfilesGetError, ProfilesGetResponse, ReturnType<typeof profilesGetQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await profilesGet({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: profilesGetQueryKey(options)\n});\n\n/**\n * Update a profile\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `profiles:write` scoped to the target profile.\n *\n * Updates a profile. Send only the fields you want to change; provide at least one.\n */\nexport const profilesUpdateMutation = (options?: Partial<Options<ProfilesUpdateData>>): UseMutationOptions<ProfilesUpdateResponse, ProfilesUpdateError, Options<ProfilesUpdateData>> => {\n const mutationOptions: UseMutationOptions<ProfilesUpdateResponse, ProfilesUpdateError, Options<ProfilesUpdateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await profilesUpdate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const connectionsListByProfileQueryKey = (options: Options<ConnectionsListByProfileData>) => createQueryKey('connectionsListByProfile', options);\n\n/**\n * List a profile's connections\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the target profile.\n *\n * Lists the external accounts connected to a profile, most recent first. Returns 404 if the profile doesn't exist in your account.\n */\nexport const connectionsListByProfileOptions = (options: Options<ConnectionsListByProfileData>) => queryOptions<ConnectionsListByProfileResponse, ConnectionsListByProfileError, ConnectionsListByProfileResponse, ReturnType<typeof connectionsListByProfileQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await connectionsListByProfile({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: connectionsListByProfileQueryKey(options)\n});\n\nexport const connectionsListByProfileInfiniteQueryKey = (options: Options<ConnectionsListByProfileData>): QueryKey<Options<ConnectionsListByProfileData>> => createQueryKey('connectionsListByProfile', options, true);\n\n/**\n * List a profile's connections\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the target profile.\n *\n * Lists the external accounts connected to a profile, most recent first. Returns 404 if the profile doesn't exist in your account.\n */\nexport const connectionsListByProfileInfiniteOptions = (options: Options<ConnectionsListByProfileData>) => infiniteQueryOptions<ConnectionsListByProfileResponse, ConnectionsListByProfileError, InfiniteData<ConnectionsListByProfileResponse>, QueryKey<Options<ConnectionsListByProfileData>>, number | Pick<QueryKey<Options<ConnectionsListByProfileData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<ConnectionsListByProfileData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await connectionsListByProfile({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: connectionsListByProfileInfiniteQueryKey(options)\n});\n\n/**\n * Delete a connection\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:delete` scoped to the profile that owns the connection.\n *\n * Disconnects a connection. Returns a deletion marker; returns 404 if it does not exist in your account. Disconnect is unconditional — any scheduled posts that target this connection are not blocked; they fail gracefully at publish time with a `connection_removed` error until you reconnect and reschedule.\n */\nexport const connectionsDeleteMutation = (options?: Partial<Options<ConnectionsDeleteData>>): UseMutationOptions<ConnectionsDeleteResponse, ConnectionsDeleteError, Options<ConnectionsDeleteData>> => {\n const mutationOptions: UseMutationOptions<ConnectionsDeleteResponse, ConnectionsDeleteError, Options<ConnectionsDeleteData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await connectionsDelete({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const connectionsGetQueryKey = (options: Options<ConnectionsGetData>) => createQueryKey('connectionsGet', options);\n\n/**\n * Retrieve a connection\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single connection by id.\n */\nexport const connectionsGetOptions = (options: Options<ConnectionsGetData>) => queryOptions<ConnectionsGetResponse, ConnectionsGetError, ConnectionsGetResponse, ReturnType<typeof connectionsGetQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await connectionsGet({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: connectionsGetQueryKey(options)\n});\n\n/**\n * Select a connection account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:write` scoped to the profile that owns the connection.\n *\n * Activates a pending connection by choosing which external account (e.g. which Meta ad account) it uses. The account must be one reachable through the connection’s OAuth grant; its canonical name + currency are resolved server-side from discovery, so the stored display values can’t be spoofed by the caller.\n */\nexport const connectionsSelectMutation = (options?: Partial<Options<ConnectionsSelectData>>): UseMutationOptions<ConnectionsSelectResponse, ConnectionsSelectError, Options<ConnectionsSelectData>> => {\n const mutationOptions: UseMutationOptions<ConnectionsSelectResponse, ConnectionsSelectError, Options<ConnectionsSelectData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await connectionsSelect({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const connectionsListAccountsQueryKey = (options: Options<ConnectionsListAccountsData>) => createQueryKey('connectionsListAccounts', options);\n\n/**\n * List a connection’s discoverable accounts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the profile that owns the connection.\n *\n * Lists the external ad accounts reachable through this connection’s OAuth grant — the picker shown after OAuth, while the connection is still pending account selection. Returns 404 if the connection does not exist in your account, and 501 if account discovery is not yet supported for the connection’s platform.\n */\nexport const connectionsListAccountsOptions = (options: Options<ConnectionsListAccountsData>) => queryOptions<ConnectionsListAccountsResponse, ConnectionsListAccountsError, ConnectionsListAccountsResponse, ReturnType<typeof connectionsListAccountsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await connectionsListAccounts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: connectionsListAccountsQueryKey(options)\n});\n\n/**\n * Connect a platform account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:write` scoped to the target profile.\n *\n * Starts an OAuth connect flow for a platform on this profile. Returns a short-lived session the client uses to authorize; the connection is created once authorization succeeds.\n */\nexport const connectionsConnectMutation = (options?: Partial<Options<ConnectionsConnectData>>): UseMutationOptions<ConnectionsConnectResponse, ConnectionsConnectError, Options<ConnectionsConnectData>> => {\n const mutationOptions: UseMutationOptions<ConnectionsConnectResponse, ConnectionsConnectError, Options<ConnectionsConnectData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await connectionsConnect({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const mediaListQueryKey = (options?: Options<MediaListData>) => createQueryKey('mediaList', options);\n\n/**\n * List media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the media assets under your account, newest first. Filter by profile, status, kind, your own external_id, or metadata.\n */\nexport const mediaListOptions = (options?: Options<MediaListData>) => queryOptions<MediaListResponse, MediaListError, MediaListResponse, ReturnType<typeof mediaListQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await mediaList({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: mediaListQueryKey(options)\n});\n\nexport const mediaListInfiniteQueryKey = (options?: Options<MediaListData>): QueryKey<Options<MediaListData>> => createQueryKey('mediaList', options, true);\n\n/**\n * List media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the media assets under your account, newest first. Filter by profile, status, kind, your own external_id, or metadata.\n */\nexport const mediaListInfiniteOptions = (options?: Options<MediaListData>) => infiniteQueryOptions<MediaListResponse, MediaListError, InfiniteData<MediaListResponse>, QueryKey<Options<MediaListData>>, number | Pick<QueryKey<Options<MediaListData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<MediaListData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await mediaList({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: mediaListInfiniteQueryKey(options)\n});\n\n/**\n * Upload media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the target profile.\n *\n * Creates a media asset. Two ways to supply the bytes: (1) omit `source_url` and upload the bytes with the returned multipart `upload` session — chunk the file at `part_size`, sign each part via `POST /media/{id}/multipart/sign`, PUT the bytes, then `POST /media/{id}/multipart/complete` (the direct-upload path; `upload` is non-null and resumable), or (2) supply a public `https` `source_url` and we fetch the bytes server-side, validate, transform, and store them (the import path; `upload` is null). Either way the asset settles through the same probe/transform flow.\n */\nexport const mediaCreateMutation = (options?: Partial<Options<MediaCreateData>>): UseMutationOptions<MediaCreateResponse, MediaCreateError, Options<MediaCreateData>> => {\n const mutationOptions: UseMutationOptions<MediaCreateResponse, MediaCreateError, Options<MediaCreateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await mediaCreate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Delete media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:delete` scoped to the profile that owns the media asset.\n *\n * Deletes a media asset and its stored renditions.\n */\nexport const mediaDeleteMutation = (options?: Partial<Options<MediaDeleteData>>): UseMutationOptions<MediaDeleteResponse, MediaDeleteError, Options<MediaDeleteData>> => {\n const mutationOptions: UseMutationOptions<MediaDeleteResponse, MediaDeleteError, Options<MediaDeleteData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await mediaDelete({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const mediaGetQueryKey = (options: Options<MediaGetData>) => createQueryKey('mediaGet', options);\n\n/**\n * Retrieve media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:read` scoped to the profile that owns the media asset.\n *\n * Retrieves a media asset, including its per-platform processing status and renditions.\n */\nexport const mediaGetOptions = (options: Options<MediaGetData>) => queryOptions<MediaGetResponse, MediaGetError, MediaGetResponse, ReturnType<typeof mediaGetQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await mediaGet({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: mediaGetQueryKey(options)\n});\n\n/**\n * Update media\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Updates a media asset (alt text, metadata, external_id) or adds `targets` to pre-warm more platforms. Send only the fields to change.\n */\nexport const mediaUpdateMutation = (options?: Partial<Options<MediaUpdateData>>): UseMutationOptions<MediaUpdateResponse, MediaUpdateError, Options<MediaUpdateData>> => {\n const mutationOptions: UseMutationOptions<MediaUpdateResponse, MediaUpdateError, Options<MediaUpdateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await mediaUpdate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Sign an upload part\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Returns a presigned URL to PUT one part of a multipart upload. Chunk the file at the session’s `part_size` and sign each 1-indexed part; read each part PUT’s `ETag` for `complete`.\n */\nexport const mediaSignPartMutation = (options?: Partial<Options<MediaSignPartData>>): UseMutationOptions<MediaSignPartResponse, MediaSignPartError, Options<MediaSignPartData>> => {\n const mutationOptions: UseMutationOptions<MediaSignPartResponse, MediaSignPartError, Options<MediaSignPartData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await mediaSignPart({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const mediaListPartsQueryKey = (options: Options<MediaListPartsData>) => createQueryKey('mediaListParts', options);\n\n/**\n * List uploaded parts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Lists the parts already uploaded for this asset’s multipart upload (ascending). Skip re-uploading these to resume after a dropped connection.\n */\nexport const mediaListPartsOptions = (options: Options<MediaListPartsData>) => queryOptions<MediaListPartsResponse, MediaListPartsError, MediaListPartsResponse, ReturnType<typeof mediaListPartsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await mediaListParts({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: mediaListPartsQueryKey(options)\n});\n\n/**\n * Complete an upload\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Finishes a multipart upload by assembling the uploaded parts. Send every part as `{ part_number, etag }`. Idempotent: completing an already-finished upload returns the asset.\n */\nexport const mediaCompleteMutation = (options?: Partial<Options<MediaCompleteData>>): UseMutationOptions<MediaCompleteResponse, MediaCompleteError, Options<MediaCompleteData>> => {\n const mutationOptions: UseMutationOptions<MediaCompleteResponse, MediaCompleteError, Options<MediaCompleteData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await mediaComplete({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Abort an upload\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `media:write` scoped to the profile that owns the media asset.\n *\n * Aborts an in-flight multipart upload and discards its parts. Idempotent: aborting an already-finished or unknown upload still returns the asset.\n */\nexport const mediaAbortMutation = (options?: Partial<Options<MediaAbortData>>): UseMutationOptions<MediaAbortResponse, MediaAbortError, Options<MediaAbortData>> => {\n const mutationOptions: UseMutationOptions<MediaAbortResponse, MediaAbortError, Options<MediaAbortData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await mediaAbort({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const postsListQueryKey = (options?: Options<PostsListData>) => createQueryKey('postsList', options);\n\n/**\n * List posts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the posts under your account, newest first. Filter by profile or your own external_id.\n */\nexport const postsListOptions = (options?: Options<PostsListData>) => queryOptions<PostsListResponse, PostsListError, PostsListResponse, ReturnType<typeof postsListQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await postsList({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: postsListQueryKey(options)\n});\n\nexport const postsListInfiniteQueryKey = (options?: Options<PostsListData>): QueryKey<Options<PostsListData>> => createQueryKey('postsList', options, true);\n\n/**\n * List posts\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` (the response is limited to the profiles the token is scoped to).\n *\n * Lists the posts under your account, newest first. Filter by profile or your own external_id.\n */\nexport const postsListInfiniteOptions = (options?: Options<PostsListData>) => infiniteQueryOptions<PostsListResponse, PostsListError, InfiniteData<PostsListResponse>, QueryKey<Options<PostsListData>>, number | Pick<QueryKey<Options<PostsListData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<PostsListData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await postsList({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: postsListInfiniteQueryKey(options)\n});\n\n/**\n * Create a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:write` scoped to the target profile.\n *\n * Composes a post + its per-channel variants. `publish` decides the outcome: `now` publishes immediately, `schedule` publishes at `schedule_at`, `draft` just stores it.\n */\nexport const postsCreateMutation = (options?: Partial<Options<PostsCreateData>>): UseMutationOptions<PostsCreateResponse, PostsCreateError, Options<PostsCreateData>> => {\n const mutationOptions: UseMutationOptions<PostsCreateResponse, PostsCreateError, Options<PostsCreateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await postsCreate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Delete a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:delete` scoped to the profile that owns the post.\n *\n * Deletes a post and its variants. Returns a deletion marker; 404 if it does not exist in your account. Already-published posts are not retracted from the platform.\n */\nexport const postsDeleteMutation = (options?: Partial<Options<PostsDeleteData>>): UseMutationOptions<PostsDeleteResponse, PostsDeleteError, Options<PostsDeleteData>> => {\n const mutationOptions: UseMutationOptions<PostsDeleteResponse, PostsDeleteError, Options<PostsDeleteData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await postsDelete({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const postsGetQueryKey = (options: Options<PostsGetData>) => createQueryKey('postsGet', options);\n\n/**\n * Retrieve a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` scoped to the profile that owns the post.\n *\n * Retrieves a single post by id, including its per-channel variants and their derived status.\n */\nexport const postsGetOptions = (options: Options<PostsGetData>) => queryOptions<PostsGetResponse, PostsGetError, PostsGetResponse, ReturnType<typeof postsGetQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await postsGet({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: postsGetQueryKey(options)\n});\n\n/**\n * Update a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:write` scoped to the profile that owns the post.\n *\n * Edits a post and/or transitions its publish state (`draft` / `schedule` / `now`). Valid only while the post is draft or scheduled. Send only the fields to change; providing `variants` replaces the whole set.\n */\nexport const postsUpdateMutation = (options?: Partial<Options<PostsUpdateData>>): UseMutationOptions<PostsUpdateResponse, PostsUpdateError, Options<PostsUpdateData>> => {\n const mutationOptions: UseMutationOptions<PostsUpdateResponse, PostsUpdateError, Options<PostsUpdateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await postsUpdate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Validate a post\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `posts:read` scoped to the target profile.\n *\n * Runs the exact ownership + publish-readiness checks the create path runs under dry_run, with no side effects. Returns a per-issue verdict (`publishable` + `issues[]`) on 200; a reference to a connection/media outside the profile is a typed 422.\n */\nexport const postsValidateMutation = (options?: Partial<Options<PostsValidateData>>): UseMutationOptions<PostsValidateResponse, PostsValidateError, Options<PostsValidateData>> => {\n const mutationOptions: UseMutationOptions<PostsValidateResponse, PostsValidateError, Options<PostsValidateData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await postsValidate({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const metaAccountQueryKey = (options: Options<MetaAccountData>) => createQueryKey('metaAccount', options);\n\n/**\n * Retrieve the Meta ad account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves the Meta ad account this connection is linked to — name, currency, status, and spend. Monetary fields are in the account currency’s minor units.\n */\nexport const metaAccountOptions = (options: Options<MetaAccountData>) => queryOptions<MetaAccountResponse, MetaAccountError, MetaAccountResponse, ReturnType<typeof metaAccountQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaAccount({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaAccountQueryKey(options)\n});\n\nexport const metaInsightsQueryKey = (options: Options<MetaInsightsData>) => createQueryKey('metaInsights', options);\n\n/**\n * Retrieve Meta ad insights\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves performance insights for the connection’s Meta ad account, aggregated at the chosen `level` over a date window. Metric values are strings, in the account currency’s units.\n */\nexport const metaInsightsOptions = (options: Options<MetaInsightsData>) => queryOptions<MetaInsightsResponse, MetaInsightsError, MetaInsightsResponse, ReturnType<typeof metaInsightsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaInsights({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaInsightsQueryKey(options)\n});\n\nexport const metaCampaignsQueryKey = (options: Options<MetaCampaignsData>) => createQueryKey('metaCampaigns', options);\n\n/**\n * List Meta campaigns\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the campaigns under the connection’s Meta ad account, with each campaign’s status, objective, and budgets (budgets in the account currency’s minor units).\n */\nexport const metaCampaignsOptions = (options: Options<MetaCampaignsData>) => queryOptions<MetaCampaignsResponse, MetaCampaignsError, MetaCampaignsResponse, ReturnType<typeof metaCampaignsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaCampaigns({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaCampaignsQueryKey(options)\n});\n\nexport const metaCampaignQueryKey = (options: Options<MetaCampaignData>) => createQueryKey('metaCampaign', options);\n\n/**\n * Retrieve a Meta campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single campaign under the connection’s Meta ad account by its campaign id — status, objective, and budgets.\n */\nexport const metaCampaignOptions = (options: Options<MetaCampaignData>) => queryOptions<MetaCampaignResponse, MetaCampaignError, MetaCampaignResponse, ReturnType<typeof metaCampaignQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaCampaign({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaCampaignQueryKey(options)\n});\n\nexport const metaAdsetsQueryKey = (options: Options<MetaAdsetsData>) => createQueryKey('metaAdsets', options);\n\n/**\n * List Meta ad sets\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the ad sets under the connection’s Meta ad account, with each ad set’s status, parent campaign, budgets, and optimization (budgets in the account currency’s minor units).\n */\nexport const metaAdsetsOptions = (options: Options<MetaAdsetsData>) => queryOptions<MetaAdsetsResponse, MetaAdsetsError, MetaAdsetsResponse, ReturnType<typeof metaAdsetsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaAdsets({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaAdsetsQueryKey(options)\n});\n\nexport const metaAdsetQueryKey = (options: Options<MetaAdsetData>) => createQueryKey('metaAdset', options);\n\n/**\n * Retrieve a Meta ad set\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single ad set under the connection’s Meta ad account by its ad set id — status, parent campaign, budgets, and optimization.\n */\nexport const metaAdsetOptions = (options: Options<MetaAdsetData>) => queryOptions<MetaAdsetResponse, MetaAdsetError, MetaAdsetResponse, ReturnType<typeof metaAdsetQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaAdset({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaAdsetQueryKey(options)\n});\n\nexport const metaAdsQueryKey = (options: Options<MetaAdsData>) => createQueryKey('metaAds', options);\n\n/**\n * List Meta ads\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the ads under the connection’s Meta ad account, with each ad’s status, parent ad set and campaign ids, and timestamps.\n */\nexport const metaAdsOptions = (options: Options<MetaAdsData>) => queryOptions<MetaAdsResponse, MetaAdsError, MetaAdsResponse, ReturnType<typeof metaAdsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaAds({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaAdsQueryKey(options)\n});\n\nexport const metaAdQueryKey = (options: Options<MetaAdData>) => createQueryKey('metaAd', options);\n\n/**\n * Retrieve a Meta ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Retrieves a single ad under the connection’s Meta ad account by its ad id — status, parent ad set and campaign ids, and timestamps.\n */\nexport const metaAdOptions = (options: Options<MetaAdData>) => queryOptions<MetaAdResponse, MetaAdError, MetaAdResponse, ReturnType<typeof metaAdQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await metaAd({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: metaAdQueryKey(options)\n});\n\nexport const googleGetAccountQueryKey = (options: Options<GoogleGetAccountData>) => createQueryKey('googleGetAccount', options);\n\n/**\n * Retrieve the connected Google Ads account\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the Google Ads account (the `customer` resource) backing this connection — id, descriptive name, currency, time zone, status, and whether it is a manager (MCC) or test account.\n */\nexport const googleGetAccountOptions = (options: Options<GoogleGetAccountData>) => queryOptions<GoogleGetAccountResponse, GoogleGetAccountError, GoogleGetAccountResponse, ReturnType<typeof googleGetAccountQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetAccount({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetAccountQueryKey(options)\n});\n\n/**\n * Edit Google Ads account URL settings\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates the account-level (customer) URL tracking settings — tracking_url_template and final_url_suffix. A campaign-level template overrides the account one. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditAccountMutation = (options?: Partial<Options<GoogleEditAccountData>>): UseMutationOptions<GoogleEditAccountResponse, GoogleEditAccountError, Options<GoogleEditAccountData>> => {\n const mutationOptions: UseMutationOptions<GoogleEditAccountResponse, GoogleEditAccountError, Options<GoogleEditAccountData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEditAccount({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Google Ads performance insights\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Performance metrics for the connection’s account, at a chosen level (account / campaign / ad group / ad / keyword), for a date range, with optional breakdowns. Leaf levels (ad / keyword) require an `ad_group_id`; campaign / ad group accept an optional `campaign_id`. Each row carries its `parent_id`, so the tree is assemblable. The flagship cross-checked read; use `/gaql` for anything outside this shape.\n */\nexport const googleGetInsightsMutation = (options?: Partial<Options<GoogleGetInsightsData>>): UseMutationOptions<GoogleGetInsightsResponse, GoogleGetInsightsError, Options<GoogleGetInsightsData>> => {\n const mutationOptions: UseMutationOptions<GoogleGetInsightsResponse, GoogleGetInsightsError, Options<GoogleGetInsightsData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleGetInsights({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetAdTreeQueryKey = (options: Options<GoogleGetAdTreeData>) => createQueryKey('googleGetAdTree', options);\n\n/**\n * Google Ads campaign tree\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * The campaign tree as flat, native, typed nodes — group them by `parent_id` to assemble the tree. Without `campaign_id`, returns every campaign (all channel types) with a per-type `child_kind`/`expandable` hint. With `campaign_id`, returns that campaign’s whole supported subtree in one batched fetch at a single window: ad groups + the type’s leaf (keywords for Search, ads for Display/Video/Demand Gen), or — for Performance Max — asset groups + their `asset_group_asset` leaves (each leaf carrying `field_type`, `primary_status`, and real per-asset metrics). By default REMOVED nodes are hidden at every level; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED). Each node carries `budget_micros` (campaign nodes only), Google’s authoritative per-level metrics (no client roll-up), `cost_micros`, and `cost` (account currency).\n */\nexport const googleGetAdTreeOptions = (options: Options<GoogleGetAdTreeData>) => queryOptions<GoogleGetAdTreeResponse, GoogleGetAdTreeError, GoogleGetAdTreeResponse, ReturnType<typeof googleGetAdTreeQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetAdTree({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetAdTreeQueryKey(options)\n});\n\n/**\n * Run a raw GAQL query\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Runs a raw Google Ads Query Language (GAQL) query against the connection’s account and returns the native rows. Read-only (GAQL only does `SELECT`). The power-user escape hatch beneath the typed reads.\n */\nexport const googleRunGaqlMutation = (options?: Partial<Options<GoogleRunGaqlData>>): UseMutationOptions<GoogleRunGaqlResponse, GoogleRunGaqlError, Options<GoogleRunGaqlData>> => {\n const mutationOptions: UseMutationOptions<GoogleRunGaqlResponse, GoogleRunGaqlError, Options<GoogleRunGaqlData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRunGaql({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Create a Google Ads campaign budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Creates a standalone daily campaign budget (the `campaign_budget` resource) on the connection’s account. Money write — secret-key-only. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name to chain into a campaign.\n */\nexport const googleCreateBudgetMutation = (options?: Partial<Options<GoogleCreateBudgetData>>): UseMutationOptions<GoogleCreateBudgetResponse, GoogleCreateBudgetError, Options<GoogleCreateBudgetData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateBudgetResponse, GoogleCreateBudgetError, Options<GoogleCreateBudgetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateBudget({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Edit a Google Ads campaign budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Updates a budget’s daily amount (in micros) by numeric id. Money write — secret-key-only. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditBudgetMutation = (options?: Partial<Options<GoogleEditBudgetData>>): UseMutationOptions<GoogleEditBudgetResponse, GoogleEditBudgetError, Options<GoogleEditBudgetData>> => {\n const mutationOptions: UseMutationOptions<GoogleEditBudgetResponse, GoogleEditBudgetError, Options<GoogleEditBudgetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEditBudget({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads campaign budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Removes a campaign budget by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveBudgetMutation = (options?: Partial<Options<GoogleRemoveBudgetData>>): UseMutationOptions<GoogleRemoveBudgetResponse, GoogleRemoveBudgetError, Options<GoogleRemoveBudgetData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveBudgetResponse, GoogleRemoveBudgetError, Options<GoogleRemoveBudgetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveBudget({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListCampaignsQueryKey = (options: Options<GoogleListCampaignsData>) => createQueryKey('googleListCampaigns', options);\n\n/**\n * List Google Ads campaigns\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the campaigns (the `campaign` resource) on the connection’s account — id, name, status, advertising channel type, and bidding strategy type.\n */\nexport const googleListCampaignsOptions = (options: Options<GoogleListCampaignsData>) => queryOptions<GoogleListCampaignsResponse, GoogleListCampaignsError, GoogleListCampaignsResponse, ReturnType<typeof googleListCampaignsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListCampaigns({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListCampaignsQueryKey(options)\n});\n\n/**\n * Create a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a Search or Display campaign (the `campaign` resource) on the connection’s account, attached to an existing budget. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateCampaignMutation = (options?: Partial<Options<GoogleCreateCampaignData>>): UseMutationOptions<GoogleCreateCampaignResponse, GoogleCreateCampaignError, Options<GoogleCreateCampaignData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateCampaignResponse, GoogleCreateCampaignError, Options<GoogleCreateCampaignData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateCampaign({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetCampaignQueryKey = (options: Options<GoogleGetCampaignData>) => createQueryKey('googleGetCampaign', options);\n\n/**\n * Retrieve a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single campaign (the `campaign` resource) by its numeric id on the connection’s account — id, name, status, advertising channel type, and bidding strategy type.\n */\nexport const googleGetCampaignOptions = (options: Options<GoogleGetCampaignData>) => queryOptions<GoogleGetCampaignResponse, GoogleGetCampaignError, GoogleGetCampaignResponse, ReturnType<typeof googleGetCampaignQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetCampaign({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetCampaignQueryKey(options)\n});\n\n/**\n * Edit a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates a campaign’s non-money fields — its name and URL tracking settings (tracking_url_template, final_url_suffix, url_custom_parameters) — by numeric id. Status has its own pause/enable endpoints; bids are a separate money write. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditCampaignMutation = (options?: Partial<Options<GoogleEditCampaignData>>): UseMutationOptions<GoogleEditCampaignResponse, GoogleEditCampaignError, Options<GoogleEditCampaignData>> => {\n const mutationOptions: UseMutationOptions<GoogleEditCampaignResponse, GoogleEditCampaignError, Options<GoogleEditCampaignData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEditCampaign({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Set a Google Ads campaign’s bidding strategy\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets a campaign’s bidding strategy by numeric id. Supports the target-bearing strategies: target_cpa (needs target_cpa_micros), target_roas (needs target_roas), and maximize_conversion_value (needs target_roas). The bare/no-target strategies are selectable at campaign create, not here. Money write — secret-key-only. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleSetCampaignBiddingMutation = (options?: Partial<Options<GoogleSetCampaignBiddingData>>): UseMutationOptions<GoogleSetCampaignBiddingResponse, GoogleSetCampaignBiddingError, Options<GoogleSetCampaignBiddingData>> => {\n const mutationOptions: UseMutationOptions<GoogleSetCampaignBiddingResponse, GoogleSetCampaignBiddingError, Options<GoogleSetCampaignBiddingData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSetCampaignBidding({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes a campaign by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveCampaignMutation = (options?: Partial<Options<GoogleRemoveCampaignData>>): UseMutationOptions<GoogleRemoveCampaignResponse, GoogleRemoveCampaignError, Options<GoogleRemoveCampaignData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveCampaignResponse, GoogleRemoveCampaignError, Options<GoogleRemoveCampaignData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveCampaign({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Pause a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses a campaign by its numeric id (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseCampaignMutation = (options?: Partial<Options<GooglePauseCampaignData>>): UseMutationOptions<GooglePauseCampaignResponse, GooglePauseCampaignError, Options<GooglePauseCampaignData>> => {\n const mutationOptions: UseMutationOptions<GooglePauseCampaignResponse, GooglePauseCampaignError, Options<GooglePauseCampaignData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googlePauseCampaign({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Enable a Google Ads campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) a campaign by its numeric id. Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableCampaignMutation = (options?: Partial<Options<GoogleEnableCampaignData>>): UseMutationOptions<GoogleEnableCampaignResponse, GoogleEnableCampaignError, Options<GoogleEnableCampaignData>> => {\n const mutationOptions: UseMutationOptions<GoogleEnableCampaignResponse, GoogleEnableCampaignError, Options<GoogleEnableCampaignData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEnableCampaign({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleSearchGeoTargetsQueryKey = (options: Options<GoogleSearchGeoTargetsData>) => createQueryKey('googleSearchGeoTargets', options);\n\n/**\n * Search Google Ads geo targets\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Resolves a free-text location name (e.g. \"New York\") to matching geo target constants — each with id, name, canonical name, country code, target type, and status. Use a result’s `resource_name` (e.g. `geoTargetConstants/2840`), NOT the bare `id`, as the `geo_target_constant` of a location criterion.\n */\nexport const googleSearchGeoTargetsOptions = (options: Options<GoogleSearchGeoTargetsData>) => queryOptions<GoogleSearchGeoTargetsResponse, GoogleSearchGeoTargetsError, GoogleSearchGeoTargetsResponse, ReturnType<typeof googleSearchGeoTargetsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleSearchGeoTargets({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleSearchGeoTargetsQueryKey(options)\n});\n\nexport const googleListCampaignCriteriaQueryKey = (options: Options<GoogleListCampaignCriteriaData>) => createQueryKey('googleListCampaignCriteria', options);\n\n/**\n * List Google Ads campaign targeting criteria\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists a campaign’s targeting criteria. LOCATION and LANGUAGE are fully modelled (geo_target_constant / language_constant, status, negative flag); any other criterion type is returned as { type, criterion_id }.\n */\nexport const googleListCampaignCriteriaOptions = (options: Options<GoogleListCampaignCriteriaData>) => queryOptions<GoogleListCampaignCriteriaResponse, GoogleListCampaignCriteriaError, GoogleListCampaignCriteriaResponse, ReturnType<typeof googleListCampaignCriteriaQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListCampaignCriteria({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListCampaignCriteriaQueryKey(options)\n});\n\n/**\n * Add a Google Ads campaign targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Adds a geo (location) or language targeting criterion to a campaign. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateCampaignCriterionMutation = (options?: Partial<Options<GoogleCreateCampaignCriterionData>>): UseMutationOptions<GoogleCreateCampaignCriterionResponse, GoogleCreateCampaignCriterionError, Options<GoogleCreateCampaignCriterionData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateCampaignCriterionResponse, GoogleCreateCampaignCriterionError, Options<GoogleCreateCampaignCriterionData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateCampaignCriterion({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads campaign targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes a campaign targeting criterion by its criterion id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveCampaignCriterionMutation = (options?: Partial<Options<GoogleRemoveCampaignCriterionData>>): UseMutationOptions<GoogleRemoveCampaignCriterionResponse, GoogleRemoveCampaignCriterionError, Options<GoogleRemoveCampaignCriterionData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveCampaignCriterionResponse, GoogleRemoveCampaignCriterionError, Options<GoogleRemoveCampaignCriterionData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveCampaignCriterion({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Set a Google Ads campaign’s geo target type\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets a campaign’s geo target type — presence (people in the location) vs presence-or-interest (also people interested in it) — for positive and/or excluded locations. Pass `dry_run: true` to validate without applying.\n */\nexport const googleSetCampaignGeoSettingsMutation = (options?: Partial<Options<GoogleSetCampaignGeoSettingsData>>): UseMutationOptions<GoogleSetCampaignGeoSettingsResponse, GoogleSetCampaignGeoSettingsError, Options<GoogleSetCampaignGeoSettingsData>> => {\n const mutationOptions: UseMutationOptions<GoogleSetCampaignGeoSettingsResponse, GoogleSetCampaignGeoSettingsError, Options<GoogleSetCampaignGeoSettingsData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSetCampaignGeoSettings({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListAdGroupsQueryKey = (options: Options<GoogleListAdGroupsData>) => createQueryKey('googleListAdGroups', options);\n\n/**\n * List Google Ads ad groups\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the ad groups (Google’s equivalent of an ad set) in the Google Ads account backing this connection — id, name, status, type, and parent campaign. Pass `campaign_id` to return only the ad groups under one campaign. By default REMOVED ad groups are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListAdGroupsOptions = (options: Options<GoogleListAdGroupsData>) => queryOptions<GoogleListAdGroupsResponse, GoogleListAdGroupsError, GoogleListAdGroupsResponse, ReturnType<typeof googleListAdGroupsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListAdGroups({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListAdGroupsQueryKey(options)\n});\n\n/**\n * Create a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates an ad group (the `ad_group` resource) under a campaign on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name to chain into ads and keywords.\n */\nexport const googleCreateAdGroupMutation = (options?: Partial<Options<GoogleCreateAdGroupData>>): UseMutationOptions<GoogleCreateAdGroupResponse, GoogleCreateAdGroupError, Options<GoogleCreateAdGroupData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateAdGroupResponse, GoogleCreateAdGroupError, Options<GoogleCreateAdGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateAdGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetAdGroupQueryKey = (options: Options<GoogleGetAdGroupData>) => createQueryKey('googleGetAdGroup', options);\n\n/**\n * Retrieve a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single ad group by its numeric id from the Google Ads account backing this connection — id, name, status, type, and parent campaign.\n */\nexport const googleGetAdGroupOptions = (options: Options<GoogleGetAdGroupData>) => queryOptions<GoogleGetAdGroupResponse, GoogleGetAdGroupError, GoogleGetAdGroupResponse, ReturnType<typeof googleGetAdGroupQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetAdGroup({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetAdGroupQueryKey(options)\n});\n\n/**\n * Edit a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates an ad group’s non-money fields (its name) by numeric id. Status has its own pause/enable endpoints; bids are a separate money write. Pass `dry_run: true` to validate without applying.\n */\nexport const googleEditAdGroupMutation = (options?: Partial<Options<GoogleEditAdGroupData>>): UseMutationOptions<GoogleEditAdGroupResponse, GoogleEditAdGroupError, Options<GoogleEditAdGroupData>> => {\n const mutationOptions: UseMutationOptions<GoogleEditAdGroupResponse, GoogleEditAdGroupError, Options<GoogleEditAdGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEditAdGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Set a Google Ads ad group’s bids\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets an ad group’s manual bids (cpc/cpm/target CPA in micros, target ROAS as a ratio) by numeric id. Money write — secret-key-only. Pass `dry_run: true` to validate without applying.\n */\nexport const googleSetAdGroupBidsMutation = (options?: Partial<Options<GoogleSetAdGroupBidsData>>): UseMutationOptions<GoogleSetAdGroupBidsResponse, GoogleSetAdGroupBidsError, Options<GoogleSetAdGroupBidsData>> => {\n const mutationOptions: UseMutationOptions<GoogleSetAdGroupBidsResponse, GoogleSetAdGroupBidsError, Options<GoogleSetAdGroupBidsData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSetAdGroupBids({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes an ad group by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAdGroupMutation = (options?: Partial<Options<GoogleRemoveAdGroupData>>): UseMutationOptions<GoogleRemoveAdGroupResponse, GoogleRemoveAdGroupError, Options<GoogleRemoveAdGroupData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveAdGroupResponse, GoogleRemoveAdGroupError, Options<GoogleRemoveAdGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveAdGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Pause a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses an ad group by its numeric id (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseAdGroupMutation = (options?: Partial<Options<GooglePauseAdGroupData>>): UseMutationOptions<GooglePauseAdGroupResponse, GooglePauseAdGroupError, Options<GooglePauseAdGroupData>> => {\n const mutationOptions: UseMutationOptions<GooglePauseAdGroupResponse, GooglePauseAdGroupError, Options<GooglePauseAdGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googlePauseAdGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Enable a Google Ads ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) an ad group by its numeric id. Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableAdGroupMutation = (options?: Partial<Options<GoogleEnableAdGroupData>>): UseMutationOptions<GoogleEnableAdGroupResponse, GoogleEnableAdGroupError, Options<GoogleEnableAdGroupData>> => {\n const mutationOptions: UseMutationOptions<GoogleEnableAdGroupResponse, GoogleEnableAdGroupError, Options<GoogleEnableAdGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEnableAdGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListAdGroupCriteriaQueryKey = (options: Options<GoogleListAdGroupCriteriaData>) => createQueryKey('googleListAdGroupCriteria', options);\n\n/**\n * List Google Ads ad-group targeting criteria\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists an ad group’s targeting criteria. The four demographics (AGE_RANGE, GENDER, INCOME_RANGE, PARENTAL_STATUS) are fully modelled (with their value, status, and negative flag); any other criterion type (e.g. KEYWORD) is returned as { type, criterion_id }.\n */\nexport const googleListAdGroupCriteriaOptions = (options: Options<GoogleListAdGroupCriteriaData>) => queryOptions<GoogleListAdGroupCriteriaResponse, GoogleListAdGroupCriteriaError, GoogleListAdGroupCriteriaResponse, ReturnType<typeof googleListAdGroupCriteriaQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListAdGroupCriteria({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListAdGroupCriteriaQueryKey(options)\n});\n\n/**\n * Add a Google Ads ad-group targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Adds a demographic (age range, gender, income range, or parental status) or audience (user list, audience, or custom audience) targeting criterion to an ad group. Audience criteria reference the `resource_name` returned by the audiences discovery read (`GET .../audiences`). Set `negative: true` to exclude instead of target. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateAdGroupCriterionMutation = (options?: Partial<Options<GoogleCreateAdGroupCriterionData>>): UseMutationOptions<GoogleCreateAdGroupCriterionResponse, GoogleCreateAdGroupCriterionError, Options<GoogleCreateAdGroupCriterionData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateAdGroupCriterionResponse, GoogleCreateAdGroupCriterionError, Options<GoogleCreateAdGroupCriterionData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateAdGroupCriterion({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads ad-group targeting criterion\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes an ad-group targeting criterion by its criterion id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAdGroupCriterionMutation = (options?: Partial<Options<GoogleRemoveAdGroupCriterionData>>): UseMutationOptions<GoogleRemoveAdGroupCriterionResponse, GoogleRemoveAdGroupCriterionError, Options<GoogleRemoveAdGroupCriterionData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveAdGroupCriterionResponse, GoogleRemoveAdGroupCriterionError, Options<GoogleRemoveAdGroupCriterionData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveAdGroupCriterion({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListAudiencesQueryKey = (options: Options<GoogleListAudiencesData>) => createQueryKey('googleListAudiences', options);\n\n/**\n * List Google Ads audiences available to target\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the user lists and audiences available to attach to an ad group, each with the `resource_name` you pass as the user_list / audience of an ad-group audience criterion. Optional `q` filters by name; `kind` narrows to one audience kind.\n */\nexport const googleListAudiencesOptions = (options: Options<GoogleListAudiencesData>) => queryOptions<GoogleListAudiencesResponse, GoogleListAudiencesError, GoogleListAudiencesResponse, ReturnType<typeof googleListAudiencesQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListAudiences({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListAudiencesQueryKey(options)\n});\n\n/**\n * Set a Google Ads campaign’s targeting setting\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets a campaign’s targeting setting for one dimension (e.g. AUDIENCE): Observation (`bid_only: true` — does NOT narrow reach) vs Targeting (`bid_only: false` — narrows reach to the targeted criteria). Campaign + dimension scoped: shared by every audience criterion in the campaign. Pass `dry_run: true` to validate without applying. Note: Google rejects setting this on a campaign whose ad group already has a targeting setting (and vice versa).\n */\nexport const googleSetCampaignTargetingSettingMutation = (options?: Partial<Options<GoogleSetCampaignTargetingSettingData>>): UseMutationOptions<GoogleSetCampaignTargetingSettingResponse, GoogleSetCampaignTargetingSettingError, Options<GoogleSetCampaignTargetingSettingData>> => {\n const mutationOptions: UseMutationOptions<GoogleSetCampaignTargetingSettingResponse, GoogleSetCampaignTargetingSettingError, Options<GoogleSetCampaignTargetingSettingData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSetCampaignTargetingSetting({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListAdsQueryKey = (options: Options<GoogleListAdsData>) => createQueryKey('googleListAds', options);\n\n/**\n * List Google Ads ads\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the ads (the `ad_group_ad` resource) on the connection’s account — id, name, creative type, serving status, and the owning ad group. Pass `ad_group_id` to return only the ads under one ad group. By default REMOVED ads are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListAdsOptions = (options: Options<GoogleListAdsData>) => queryOptions<GoogleListAdsResponse, GoogleListAdsError, GoogleListAdsResponse, ReturnType<typeof googleListAdsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListAds({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListAdsQueryKey(options)\n});\n\n/**\n * Create a Google Ads responsive search ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a Responsive Search Ad (the `ad_group_ad` resource, inline text — no image assets) under an ad group on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateAdMutation = (options?: Partial<Options<GoogleCreateAdData>>): UseMutationOptions<GoogleCreateAdResponse, GoogleCreateAdError, Options<GoogleCreateAdData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateAdResponse, GoogleCreateAdError, Options<GoogleCreateAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetAdQueryKey = (options: Options<GoogleGetAdData>) => createQueryKey('googleGetAd', options);\n\n/**\n * Retrieve a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single ad (the `ad_group_ad` resource) by its composite id ({ad_group_id}~{ad_id}) on the connection’s account — id, name, creative type, serving status, and the owning ad group.\n */\nexport const googleGetAdOptions = (options: Options<GoogleGetAdData>) => queryOptions<GoogleGetAdResponse, GoogleGetAdError, GoogleGetAdResponse, ReturnType<typeof googleGetAdQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetAd({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetAdQueryKey(options)\n});\n\n/**\n * Edit a Google Ads responsive search ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Edits a Responsive Search Ad’s creative (headlines, descriptions, paths) and URLs in place by its composite id ({ad_group_id}~{ad_id}). Editing an ad’s creative returns it to Google review (status Under review); it stops serving until re-approved — Google’s standard ad-review policy. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditAdMutation = (options?: Partial<Options<GoogleEditAdData>>): UseMutationOptions<GoogleEditAdResponse, GoogleEditAdError, Options<GoogleEditAdData>> => {\n const mutationOptions: UseMutationOptions<GoogleEditAdResponse, GoogleEditAdError, Options<GoogleEditAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEditAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Create a Google Ads responsive display ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a Responsive Display Ad (the `ad_group_ad` resource) under a Display ad group on the connection’s account, assembled from already-uploaded image-asset resource_names (upload them first via POST /v1/google/{connection_id}/assets). Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateDisplayAdMutation = (options?: Partial<Options<GoogleCreateDisplayAdData>>): UseMutationOptions<GoogleCreateDisplayAdResponse, GoogleCreateDisplayAdError, Options<GoogleCreateDisplayAdData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateDisplayAdResponse, GoogleCreateDisplayAdError, Options<GoogleCreateDisplayAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateDisplayAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Edit a Google Ads responsive display ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Edits a Responsive Display Ad’s creative (image assets, headlines, descriptions, brand fields) and URLs in place by its composite id ({ad_group_id}~{ad_id}). Image slots take already-uploaded asset resource_names. Editing an ad’s creative returns it to Google review (status Under review); it stops serving until re-approved — Google’s standard ad-review policy. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleEditDisplayAdMutation = (options?: Partial<Options<GoogleEditDisplayAdData>>): UseMutationOptions<GoogleEditDisplayAdResponse, GoogleEditDisplayAdError, Options<GoogleEditDisplayAdData>> => {\n const mutationOptions: UseMutationOptions<GoogleEditDisplayAdResponse, GoogleEditDisplayAdError, Options<GoogleEditDisplayAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEditDisplayAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes an ad (an `ad_group_ad`) by its composite id ({ad_group_id}~{ad_id}) (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAdMutation = (options?: Partial<Options<GoogleRemoveAdData>>): UseMutationOptions<GoogleRemoveAdResponse, GoogleRemoveAdError, Options<GoogleRemoveAdData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveAdResponse, GoogleRemoveAdError, Options<GoogleRemoveAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Pause a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses an ad by its composite id ({ad_group_id}~{ad_id}) (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseAdMutation = (options?: Partial<Options<GooglePauseAdData>>): UseMutationOptions<GooglePauseAdResponse, GooglePauseAdError, Options<GooglePauseAdData>> => {\n const mutationOptions: UseMutationOptions<GooglePauseAdResponse, GooglePauseAdError, Options<GooglePauseAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googlePauseAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Enable a Google Ads ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) an ad by its composite id ({ad_group_id}~{ad_id}). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableAdMutation = (options?: Partial<Options<GoogleEnableAdData>>): UseMutationOptions<GoogleEnableAdResponse, GoogleEnableAdError, Options<GoogleEnableAdData>> => {\n const mutationOptions: UseMutationOptions<GoogleEnableAdResponse, GoogleEnableAdError, Options<GoogleEnableAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEnableAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListKeywordsQueryKey = (options: Options<GoogleListKeywordsData>) => createQueryKey('googleListKeywords', options);\n\n/**\n * List Google Ads keywords\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the keywords (`ad_group_criterion` of type KEYWORD) in the connection’s account — each with its criterion id, text, match type, status, negative flag, and owning ad group. Pass `ad_group_id` to return only the keywords under one ad group. By default REMOVED keywords are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListKeywordsOptions = (options: Options<GoogleListKeywordsData>) => queryOptions<GoogleListKeywordsResponse, GoogleListKeywordsError, GoogleListKeywordsResponse, ReturnType<typeof googleListKeywordsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListKeywords({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListKeywordsQueryKey(options)\n});\n\n/**\n * Create a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a keyword (an `ad_group_criterion` of type KEYWORD) under an ad group on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateKeywordMutation = (options?: Partial<Options<GoogleCreateKeywordData>>): UseMutationOptions<GoogleCreateKeywordResponse, GoogleCreateKeywordError, Options<GoogleCreateKeywordData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateKeywordResponse, GoogleCreateKeywordError, Options<GoogleCreateKeywordData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateKeyword({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetKeywordQueryKey = (options: Options<GoogleGetKeywordData>) => createQueryKey('googleGetKeyword', options);\n\n/**\n * Retrieve a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns one keyword (`ad_group_criterion` of type KEYWORD) by its composite id ({ad_group_id}~{criterion_id}), from the connection’s account — text, match type, status, negative flag, and owning ad group.\n */\nexport const googleGetKeywordOptions = (options: Options<GoogleGetKeywordData>) => queryOptions<GoogleGetKeywordResponse, GoogleGetKeywordError, GoogleGetKeywordResponse, ReturnType<typeof googleGetKeywordQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetKeyword({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetKeywordQueryKey(options)\n});\n\n/**\n * Set a Google Ads keyword’s bid\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets a keyword’s manual CPC bid (in micros) by its composite id ({ad_group_id}~{criterion_id}). Money write — secret-key-only. Pass `dry_run: true` to validate without applying.\n */\nexport const googleSetKeywordBidMutation = (options?: Partial<Options<GoogleSetKeywordBidData>>): UseMutationOptions<GoogleSetKeywordBidResponse, GoogleSetKeywordBidError, Options<GoogleSetKeywordBidData>> => {\n const mutationOptions: UseMutationOptions<GoogleSetKeywordBidResponse, GoogleSetKeywordBidError, Options<GoogleSetKeywordBidData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSetKeywordBid({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes a keyword (an `ad_group_criterion`) by its composite id ({ad_group_id}~{criterion_id}) (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveKeywordMutation = (options?: Partial<Options<GoogleRemoveKeywordData>>): UseMutationOptions<GoogleRemoveKeywordResponse, GoogleRemoveKeywordError, Options<GoogleRemoveKeywordData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveKeywordResponse, GoogleRemoveKeywordError, Options<GoogleRemoveKeywordData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveKeyword({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Pause a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses a keyword (`ad_group_criterion`) by its composite id ({ad_group_id}~{criterion_id}) (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseKeywordMutation = (options?: Partial<Options<GooglePauseKeywordData>>): UseMutationOptions<GooglePauseKeywordResponse, GooglePauseKeywordError, Options<GooglePauseKeywordData>> => {\n const mutationOptions: UseMutationOptions<GooglePauseKeywordResponse, GooglePauseKeywordError, Options<GooglePauseKeywordData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googlePauseKeyword({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Enable a Google Ads keyword\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) a keyword (`ad_group_criterion`) by its composite id ({ad_group_id}~{criterion_id}). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableKeywordMutation = (options?: Partial<Options<GoogleEnableKeywordData>>): UseMutationOptions<GoogleEnableKeywordResponse, GoogleEnableKeywordError, Options<GoogleEnableKeywordData>> => {\n const mutationOptions: UseMutationOptions<GoogleEnableKeywordResponse, GoogleEnableKeywordError, Options<GoogleEnableKeywordData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEnableKeyword({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListConversionActionsQueryKey = (options: Options<GoogleListConversionActionsData>) => createQueryKey('googleListConversionActions', options);\n\n/**\n * List Google Ads conversion actions\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the conversion actions (the `conversion_action` resource) on the connection’s account — id, name, status, type, category, origin, primary-goal flag, counting type, value settings, and tag snippets.\n */\nexport const googleListConversionActionsOptions = (options: Options<GoogleListConversionActionsData>) => queryOptions<GoogleListConversionActionsResponse, GoogleListConversionActionsError, GoogleListConversionActionsResponse, ReturnType<typeof googleListConversionActionsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListConversionActions({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListConversionActionsQueryKey(options)\n});\n\n/**\n * Create a Google Ads conversion action\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a conversion action (the `conversion_action` resource) — a website tag (WEBPAGE) or an offline/API-reported action (UPLOAD_CLICKS) — on the connection’s account. Pass `dry_run: true` to validate against Google without creating. Returns the new resource id + resource_name.\n */\nexport const googleCreateConversionActionMutation = (options?: Partial<Options<GoogleCreateConversionActionData>>): UseMutationOptions<GoogleCreateConversionActionResponse, GoogleCreateConversionActionError, Options<GoogleCreateConversionActionData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateConversionActionResponse, GoogleCreateConversionActionError, Options<GoogleCreateConversionActionData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateConversionAction({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetConversionActionQueryKey = (options: Options<GoogleGetConversionActionData>) => createQueryKey('googleGetConversionAction', options);\n\n/**\n * Retrieve a Google Ads conversion action\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single conversion action (the `conversion_action` resource) by its numeric id on the connection’s account.\n */\nexport const googleGetConversionActionOptions = (options: Options<GoogleGetConversionActionData>) => queryOptions<GoogleGetConversionActionResponse, GoogleGetConversionActionError, GoogleGetConversionActionResponse, ReturnType<typeof googleGetConversionActionQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetConversionAction({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetConversionActionQueryKey(options)\n});\n\n/**\n * Update a Google Ads conversion action\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates the mutable fields of a conversion action (name, category, status, value settings, counting type, lookback windows, primary-for-goal) by numeric id. Only the supplied fields change. Pass `dry_run: true` to validate against Google without applying.\n */\nexport const googleUpdateConversionActionMutation = (options?: Partial<Options<GoogleUpdateConversionActionData>>): UseMutationOptions<GoogleUpdateConversionActionResponse, GoogleUpdateConversionActionError, Options<GoogleUpdateConversionActionData>> => {\n const mutationOptions: UseMutationOptions<GoogleUpdateConversionActionResponse, GoogleUpdateConversionActionError, Options<GoogleUpdateConversionActionData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleUpdateConversionAction({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads conversion action\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes a conversion action by numeric id (Google’s native remove — a soft delete to status REMOVED). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveConversionActionMutation = (options?: Partial<Options<GoogleRemoveConversionActionData>>): UseMutationOptions<GoogleRemoveConversionActionResponse, GoogleRemoveConversionActionError, Options<GoogleRemoveConversionActionData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveConversionActionResponse, GoogleRemoveConversionActionError, Options<GoogleRemoveConversionActionData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveConversionAction({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Send Google Ads conversion events\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sends a batch of conversion events (1–2000) for one conversion action on the connection’s account, via the Data Manager API. Plaintext identifiers (email / phone / address) are hashed server-side. Pass `dry_run: true` to validate against Google without sending. Returns a request id; poll the status read with it for per-reason processing results.\n */\nexport const googleSendConversionsMutation = (options?: Partial<Options<GoogleSendConversionsData>>): UseMutationOptions<GoogleSendConversionsResponse, GoogleSendConversionsError, Options<GoogleSendConversionsData>> => {\n const mutationOptions: UseMutationOptions<GoogleSendConversionsResponse, GoogleSendConversionsError, Options<GoogleSendConversionsData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSendConversions({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleGetConversionStatusQueryKey = (options: Options<GoogleGetConversionStatusData>) => createQueryKey('googleGetConversionStatus', options);\n\n/**\n * Retrieve Google Ads conversion send status\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the per-destination, count-by-reason processing status for a prior conversion send (by its `request_id`) — the total events submitted, the error breakdown (with typed codes), and informational warnings. `destinations` is EMPTY for the first ~minute after a send (Google registers the request asynchronously) — poll until it populates.\n */\nexport const googleGetConversionStatusOptions = (options: Options<GoogleGetConversionStatusData>) => queryOptions<GoogleGetConversionStatusResponse, GoogleGetConversionStatusError, GoogleGetConversionStatusResponse, ReturnType<typeof googleGetConversionStatusQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetConversionStatus({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetConversionStatusQueryKey(options)\n});\n\nexport const googleListConversionRequestsQueryKey = (options: Options<GoogleListConversionRequestsData>) => createQueryKey('googleListConversionRequests', options);\n\n/**\n * List Google Ads conversion sends\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the history of conversion sends made on this connection (newest first) — each with its `request_id`, the conversion action it targeted, and how many events you submitted. Poll the status read with a `request_id` for that send’s per-destination processing result.\n */\nexport const googleListConversionRequestsOptions = (options: Options<GoogleListConversionRequestsData>) => queryOptions<GoogleListConversionRequestsResponse, GoogleListConversionRequestsError, GoogleListConversionRequestsResponse, ReturnType<typeof googleListConversionRequestsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListConversionRequests({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListConversionRequestsQueryKey(options)\n});\n\nexport const googleListConversionRequestsInfiniteQueryKey = (options: Options<GoogleListConversionRequestsData>): QueryKey<Options<GoogleListConversionRequestsData>> => createQueryKey('googleListConversionRequests', options, true);\n\n/**\n * List Google Ads conversion sends\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the history of conversion sends made on this connection (newest first) — each with its `request_id`, the conversion action it targeted, and how many events you submitted. Poll the status read with a `request_id` for that send’s per-destination processing result.\n */\nexport const googleListConversionRequestsInfiniteOptions = (options: Options<GoogleListConversionRequestsData>) => infiniteQueryOptions<GoogleListConversionRequestsResponse, GoogleListConversionRequestsError, InfiniteData<GoogleListConversionRequestsResponse>, QueryKey<Options<GoogleListConversionRequestsData>>, number | Pick<QueryKey<Options<GoogleListConversionRequestsData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<GoogleListConversionRequestsData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await googleListConversionRequests({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListConversionRequestsInfiniteQueryKey(options)\n});\n\nexport const googleListConversionGoalsQueryKey = (options: Options<GoogleListConversionGoalsData>) => createQueryKey('googleListConversionGoals', options);\n\n/**\n * List Google Ads conversion goals\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns the conversion goals (the `customer_conversion_goal` resource) on the connection’s account — category, origin, and whether each is biddable. Google auto-creates these per category × origin.\n */\nexport const googleListConversionGoalsOptions = (options: Options<GoogleListConversionGoalsData>) => queryOptions<GoogleListConversionGoalsResponse, GoogleListConversionGoalsError, GoogleListConversionGoalsResponse, ReturnType<typeof googleListConversionGoalsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListConversionGoals({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListConversionGoalsQueryKey(options)\n});\n\n/**\n * Set a Google Ads conversion goal’s biddable flag\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets whether a conversion goal (selected by category × origin) is biddable — a primary goal Google optimises toward, or a secondary observation-only goal. Pass `dry_run: true` to preview without applying. Returns the goal and whether it executed.\n */\nexport const googleSetConversionGoalMutation = (options?: Partial<Options<GoogleSetConversionGoalData>>): UseMutationOptions<GoogleSetConversionGoalResponse, GoogleSetConversionGoalError, Options<GoogleSetConversionGoalData>> => {\n const mutationOptions: UseMutationOptions<GoogleSetConversionGoalResponse, GoogleSetConversionGoalError, Options<GoogleSetConversionGoalData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleSetConversionGoal({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Upload a Google Ads image asset\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Uploads a Postrun image asset (its validated Google Ads rendition) to the connection’s account as an `image` asset, returning the new resource id + resource_name to chain into an ad/asset assembly. Pass `dry_run: true` to validate against Google without creating anything (Google’s native validate_only). The media asset must have a ready Google Ads rendition, else a 409.\n */\nexport const googleUploadImageAssetMutation = (options?: Partial<Options<GoogleUploadImageAssetData>>): UseMutationOptions<GoogleUploadImageAssetResponse, GoogleUploadImageAssetError, Options<GoogleUploadImageAssetData>> => {\n const mutationOptions: UseMutationOptions<GoogleUploadImageAssetResponse, GoogleUploadImageAssetError, Options<GoogleUploadImageAssetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleUploadImageAsset({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Create a Google Ads YouTube-video asset\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a YouTube-video asset on the connection’s account from a YouTube video URL (watch / youtu.be / shorts / embed), returning the new resource id + resource_name to chain into a Performance Max asset-group attach. Pass `dry_run: true` to validate against Google without creating anything (Google’s native validate_only).\n */\nexport const googleUploadYoutubeVideoAssetMutation = (options?: Partial<Options<GoogleUploadYoutubeVideoAssetData>>): UseMutationOptions<GoogleUploadYoutubeVideoAssetResponse, GoogleUploadYoutubeVideoAssetError, Options<GoogleUploadYoutubeVideoAssetData>> => {\n const mutationOptions: UseMutationOptions<GoogleUploadYoutubeVideoAssetResponse, GoogleUploadYoutubeVideoAssetError, Options<GoogleUploadYoutubeVideoAssetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleUploadYoutubeVideoAsset({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListAssetGroupsQueryKey = (options: Options<GoogleListAssetGroupsData>) => createQueryKey('googleListAssetGroups', options);\n\n/**\n * List Google Ads Performance Max asset groups\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the Performance Max asset groups in the Google Ads account backing this connection — id, name, status, ad strength, and parent campaign. Pass `campaign_id` to return only the asset groups under one campaign. By default REMOVED asset groups are hidden; pass `status` to filter to specific serving states (ENABLED / PAUSED / REMOVED).\n */\nexport const googleListAssetGroupsOptions = (options: Options<GoogleListAssetGroupsData>) => queryOptions<GoogleListAssetGroupsResponse, GoogleListAssetGroupsError, GoogleListAssetGroupsResponse, ReturnType<typeof googleListAssetGroupsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListAssetGroups({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListAssetGroupsQueryKey(options)\n});\n\nexport const googleGetAssetGroupQueryKey = (options: Options<GoogleGetAssetGroupData>) => createQueryKey('googleGetAssetGroup', options);\n\n/**\n * Retrieve a Google Ads Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Returns a single Performance Max asset group by its numeric id from the Google Ads account backing this connection — id, name, status, the output-only ad strength, parent campaign, and URL display paths.\n */\nexport const googleGetAssetGroupOptions = (options: Options<GoogleGetAssetGroupData>) => queryOptions<GoogleGetAssetGroupResponse, GoogleGetAssetGroupError, GoogleGetAssetGroupResponse, ReturnType<typeof googleGetAssetGroupQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleGetAssetGroup({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleGetAssetGroupQueryKey(options)\n});\n\n/**\n * Edit a Google Ads Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Updates an asset group’s non-money fields (name, final URLs, URL display paths) by numeric id. Status has its own pause/enable endpoints. Pass `dry_run: true` to validate without applying.\n */\nexport const googleEditAssetGroupMutation = (options?: Partial<Options<GoogleEditAssetGroupData>>): UseMutationOptions<GoogleEditAssetGroupResponse, GoogleEditAssetGroupError, Options<GoogleEditAssetGroupData>> => {\n const mutationOptions: UseMutationOptions<GoogleEditAssetGroupResponse, GoogleEditAssetGroupError, Options<GoogleEditAssetGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEditAssetGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Add a Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Adds an asset group + its minimum servable asset set under an existing Performance Max campaign on the connection’s account. Image/video assets are referenced by resource_name (create them first via the assets endpoint); text assets are created inline. Pass `dry_run: true` to validate against Google without creating. Returns the new asset group id + resource_name.\n */\nexport const googleCreateAssetGroupMutation = (options?: Partial<Options<GoogleCreateAssetGroupData>>): UseMutationOptions<GoogleCreateAssetGroupResponse, GoogleCreateAssetGroupError, Options<GoogleCreateAssetGroupData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateAssetGroupResponse, GoogleCreateAssetGroupError, Options<GoogleCreateAssetGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateAssetGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Pause a Google Ads Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Pauses an asset group by its numeric id (reversible). Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googlePauseAssetGroupMutation = (options?: Partial<Options<GooglePauseAssetGroupData>>): UseMutationOptions<GooglePauseAssetGroupResponse, GooglePauseAssetGroupError, Options<GooglePauseAssetGroupData>> => {\n const mutationOptions: UseMutationOptions<GooglePauseAssetGroupResponse, GooglePauseAssetGroupError, Options<GooglePauseAssetGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googlePauseAssetGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Enable a Google Ads Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Enables (resumes) an asset group by its numeric id. Pass `dry_run: true` to preview without applying. Returns the new status and whether it executed.\n */\nexport const googleEnableAssetGroupMutation = (options?: Partial<Options<GoogleEnableAssetGroupData>>): UseMutationOptions<GoogleEnableAssetGroupResponse, GoogleEnableAssetGroupError, Options<GoogleEnableAssetGroupData>> => {\n const mutationOptions: UseMutationOptions<GoogleEnableAssetGroupResponse, GoogleEnableAssetGroupError, Options<GoogleEnableAssetGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleEnableAssetGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a Google Ads Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes an asset group by numeric id (Google’s native remove). Set `dry_run: true` in the body to validate the removal against Google without applying it.\n */\nexport const googleRemoveAssetGroupMutation = (options?: Partial<Options<GoogleRemoveAssetGroupData>>): UseMutationOptions<GoogleRemoveAssetGroupResponse, GoogleRemoveAssetGroupError, Options<GoogleRemoveAssetGroupData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveAssetGroupResponse, GoogleRemoveAssetGroupError, Options<GoogleRemoveAssetGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveAssetGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListAssetGroupAssetsQueryKey = (options: Options<GoogleListAssetGroupAssetsData>) => createQueryKey('googleListAssetGroupAssets', options);\n\n/**\n * List a Performance Max asset group’s asset links\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the asset links (`asset_group_asset`) of a Performance Max asset group — each with its triple-composite id handle, field-type role, linked asset resource_name + type, text (for text assets), and link status. By default REMOVED links are hidden; pass `status` to filter to specific serving states.\n */\nexport const googleListAssetGroupAssetsOptions = (options: Options<GoogleListAssetGroupAssetsData>) => queryOptions<GoogleListAssetGroupAssetsResponse, GoogleListAssetGroupAssetsError, GoogleListAssetGroupAssetsResponse, ReturnType<typeof googleListAssetGroupAssetsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListAssetGroupAssets({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListAssetGroupAssetsQueryKey(options)\n});\n\n/**\n * Attach an asset to a Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Attaches an asset to an asset group as a link with a field-type role. `kind: \"asset\"` links an existing image/video by resource_name (create it first via the assets endpoint); `kind: \"text\"` creates + links a literal text asset. Pass `dry_run: true` to validate against Google without applying. Returns the new link’s triple-composite id + resource_name.\n */\nexport const googleAttachAssetGroupAssetMutation = (options?: Partial<Options<GoogleAttachAssetGroupAssetData>>): UseMutationOptions<GoogleAttachAssetGroupAssetResponse, GoogleAttachAssetGroupAssetError, Options<GoogleAttachAssetGroupAssetData>> => {\n const mutationOptions: UseMutationOptions<GoogleAttachAssetGroupAssetResponse, GoogleAttachAssetGroupAssetError, Options<GoogleAttachAssetGroupAssetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleAttachAssetGroupAsset({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove an asset from a Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Unlinks an asset from an asset group (removes the `asset_group_asset`) by its triple-composite id ({asset_group_id}~{asset_id}~{field_type}). Set `dry_run: true` in the body to validate against Google without applying.\n */\nexport const googleRemoveAssetGroupAssetMutation = (options?: Partial<Options<GoogleRemoveAssetGroupAssetData>>): UseMutationOptions<GoogleRemoveAssetGroupAssetResponse, GoogleRemoveAssetGroupAssetError, Options<GoogleRemoveAssetGroupAssetData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveAssetGroupAssetResponse, GoogleRemoveAssetGroupAssetError, Options<GoogleRemoveAssetGroupAssetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveAssetGroupAsset({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const googleListAssetGroupSignalsQueryKey = (options: Options<GoogleListAssetGroupSignalsData>) => createQueryKey('googleListAssetGroupSignals', options);\n\n/**\n * List a Performance Max asset group’s signals\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the signals (`asset_group_signal`) of a Performance Max asset group — each with its composite id handle, type (audience / search_theme), its value (an audience resource_name or a search-theme text), and the output-only approval status + disapproval reasons.\n */\nexport const googleListAssetGroupSignalsOptions = (options: Options<GoogleListAssetGroupSignalsData>) => queryOptions<GoogleListAssetGroupSignalsResponse, GoogleListAssetGroupSignalsError, GoogleListAssetGroupSignalsResponse, ReturnType<typeof googleListAssetGroupSignalsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await googleListAssetGroupSignals({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: googleListAssetGroupSignalsQueryKey(options)\n});\n\n/**\n * Add a signal to a Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Adds an audience or search-theme signal to an asset group. `type: \"audience\"` references an existing audience by resource_name (discover it via the audiences endpoint); `type: \"search_theme\"` is a free-text theme (≤80 chars). Pass `dry_run: true` to validate against Google without applying. Returns the new signal’s composite id + resource_name.\n */\nexport const googleCreateAssetGroupSignalMutation = (options?: Partial<Options<GoogleCreateAssetGroupSignalData>>): UseMutationOptions<GoogleCreateAssetGroupSignalResponse, GoogleCreateAssetGroupSignalError, Options<GoogleCreateAssetGroupSignalData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreateAssetGroupSignalResponse, GoogleCreateAssetGroupSignalError, Options<GoogleCreateAssetGroupSignalData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreateAssetGroupSignal({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Remove a signal from a Performance Max asset group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Removes a signal from an asset group (removes the `asset_group_signal`) by its composite id ({asset_group_id}~{criterion_id}). Set `dry_run: true` in the body to validate against Google without applying.\n */\nexport const googleRemoveAssetGroupSignalMutation = (options?: Partial<Options<GoogleRemoveAssetGroupSignalData>>): UseMutationOptions<GoogleRemoveAssetGroupSignalResponse, GoogleRemoveAssetGroupSignalError, Options<GoogleRemoveAssetGroupSignalData>> => {\n const mutationOptions: UseMutationOptions<GoogleRemoveAssetGroupSignalResponse, GoogleRemoveAssetGroupSignalError, Options<GoogleRemoveAssetGroupSignalData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleRemoveAssetGroupSignal({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Create a Performance Max campaign\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Atomically creates a Performance Max campaign — budget, campaign, asset group, and the minimum servable asset set — in one operation. Image/video assets are referenced by resource_name (create them first via the assets endpoint); text assets are created inline. Money write (carries budget_micros) — secret-key-only. Pass `dry_run: true` to validate against Google without creating. Returns the new campaign + asset group + budget ids.\n */\nexport const googleCreatePerformanceMaxMutation = (options?: Partial<Options<GoogleCreatePerformanceMaxData>>): UseMutationOptions<GoogleCreatePerformanceMaxResponse, GoogleCreatePerformanceMaxError, Options<GoogleCreatePerformanceMaxData>> => {\n const mutationOptions: UseMutationOptions<GoogleCreatePerformanceMaxResponse, GoogleCreatePerformanceMaxError, Options<GoogleCreatePerformanceMaxData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await googleCreatePerformanceMax({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const tiktokCreatorInfoQueryKey = (options: Options<TiktokCreatorInfoData>) => createQueryKey('tiktokCreatorInfo', options);\n\n/**\n * Retrieve TikTok creator info\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `connections:read` scoped to the profile that owns the connection.\n *\n * Retrieves the TikTok creator's publish options live from TikTok — required by TikTok's Content Posting policy to render the publishing UI: the creator nickname + avatar, the privacy options to offer (with no default), and the Comment/Duet/Stitch flags to disable. Returns 404 if the connection does not exist in your account or is not a TikTok connection, 409 if the TikTok account must be reconnected, and 502 if TikTok’s creator-info call fails.\n */\nexport const tiktokCreatorInfoOptions = (options: Options<TiktokCreatorInfoData>) => queryOptions<TiktokCreatorInfoResponse, TiktokCreatorInfoError, TiktokCreatorInfoResponse, ReturnType<typeof tiktokCreatorInfoQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await tiktokCreatorInfo({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokCreatorInfoQueryKey(options)\n});\n\nexport const tiktokAdsListAdvertisersQueryKey = (options: Options<TiktokAdsListAdvertisersData>) => createQueryKey('tiktokAdsListAdvertisers', options);\n\n/**\n * List authorized TikTok advertisers\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the TikTok advertisers (ad accounts) the connection’s grant authorizes — the source for selecting which advertiser this connection operates, and a confirmation the grant is live.\n */\nexport const tiktokAdsListAdvertisersOptions = (options: Options<TiktokAdsListAdvertisersData>) => queryOptions<TiktokAdsListAdvertisersResponse, TiktokAdsListAdvertisersError, TiktokAdsListAdvertisersResponse, ReturnType<typeof tiktokAdsListAdvertisersQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await tiktokAdsListAdvertisers({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokAdsListAdvertisersQueryKey(options)\n});\n\nexport const tiktokAdsListBusinessCentersQueryKey = (options: Options<TiktokAdsListBusinessCentersData>) => createQueryKey('tiktokAdsListBusinessCenters', options);\n\n/**\n * List accessible TikTok Business Centers\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the TikTok Business Centers the connection’s grant can access (the agency picker). A solo advertiser token returns an empty list.\n */\nexport const tiktokAdsListBusinessCentersOptions = (options: Options<TiktokAdsListBusinessCentersData>) => queryOptions<TiktokAdsListBusinessCentersResponse, TiktokAdsListBusinessCentersError, TiktokAdsListBusinessCentersResponse, ReturnType<typeof tiktokAdsListBusinessCentersQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await tiktokAdsListBusinessCenters({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokAdsListBusinessCentersQueryKey(options)\n});\n\nexport const tiktokAdsListCampaignsQueryKey = (options: Options<TiktokAdsListCampaignsData>) => createQueryKey('tiktokAdsListCampaigns', options);\n\n/**\n * List TikTok ad campaigns\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists campaigns under the connection’s selected advertiser. Optional filters narrow by `campaign_ids`, `campaign_name` (fuzzy), `objective_type`, `primary_status`, and `secondary_status`; `limit`/`offset` page the results. Deleted campaigns are excluded unless `primary_status=STATUS_DELETE`.\n */\nexport const tiktokAdsListCampaignsOptions = (options: Options<TiktokAdsListCampaignsData>) => queryOptions<TiktokAdsListCampaignsResponse, TiktokAdsListCampaignsError, TiktokAdsListCampaignsResponse, ReturnType<typeof tiktokAdsListCampaignsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await tiktokAdsListCampaigns({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokAdsListCampaignsQueryKey(options)\n});\n\nexport const tiktokAdsListCampaignsInfiniteQueryKey = (options: Options<TiktokAdsListCampaignsData>): QueryKey<Options<TiktokAdsListCampaignsData>> => createQueryKey('tiktokAdsListCampaigns', options, true);\n\n/**\n * List TikTok ad campaigns\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists campaigns under the connection’s selected advertiser. Optional filters narrow by `campaign_ids`, `campaign_name` (fuzzy), `objective_type`, `primary_status`, and `secondary_status`; `limit`/`offset` page the results. Deleted campaigns are excluded unless `primary_status=STATUS_DELETE`.\n */\nexport const tiktokAdsListCampaignsInfiniteOptions = (options: Options<TiktokAdsListCampaignsData>) => infiniteQueryOptions<TiktokAdsListCampaignsResponse, TiktokAdsListCampaignsError, InfiniteData<TiktokAdsListCampaignsResponse>, QueryKey<Options<TiktokAdsListCampaignsData>>, number | Pick<QueryKey<Options<TiktokAdsListCampaignsData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<TiktokAdsListCampaignsData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await tiktokAdsListCampaigns({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokAdsListCampaignsInfiniteQueryKey(options)\n});\n\n/**\n * Create a TikTok ad campaign\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Creates a campaign under the connection’s selected advertiser. Money write — secret-key-only. Choose an objective (TRAFFIC / REACH / VIDEO_VIEWS / ENGAGEMENT / WEB_CONVERSIONS) and a budget mode: BUDGET_MODE_INFINITE (no budget; budget lives at the ad-group level), or BUDGET_MODE_DAY / BUDGET_MODE_TOTAL with a `budget`. Set `budget_optimize_on: true` for Campaign Budget Optimization (requires BUDGET_MODE_TOTAL + budget). Returns the created campaign.\n */\nexport const tiktokAdsCreateCampaignMutation = (options?: Partial<Options<TiktokAdsCreateCampaignData>>): UseMutationOptions<TiktokAdsCreateCampaignResponse, TiktokAdsCreateCampaignError, Options<TiktokAdsCreateCampaignData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsCreateCampaignResponse, TiktokAdsCreateCampaignError, Options<TiktokAdsCreateCampaignData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsCreateCampaign({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Pause or enable a TikTok ad campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets a campaign’s operation status to ENABLE (resume) or DISABLE (pause). A reversible, non-money write. Returns the campaign and the status now in effect.\n */\nexport const tiktokAdsUpdateCampaignStatusMutation = (options?: Partial<Options<TiktokAdsUpdateCampaignStatusData>>): UseMutationOptions<TiktokAdsUpdateCampaignStatusResponse, TiktokAdsUpdateCampaignStatusError, Options<TiktokAdsUpdateCampaignStatusData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsUpdateCampaignStatusResponse, TiktokAdsUpdateCampaignStatusError, Options<TiktokAdsUpdateCampaignStatusData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsUpdateCampaignStatus({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Set a TikTok ad campaign’s budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets a campaign’s budget while preserving its budget mode and every other setting. Money write — secret-key-only. TikTok requires the new budget to be at least 105% of current spend (rejected otherwise). Returns the campaign id and the budget now in effect.\n */\nexport const tiktokAdsUpdateCampaignBudgetMutation = (options?: Partial<Options<TiktokAdsUpdateCampaignBudgetData>>): UseMutationOptions<TiktokAdsUpdateCampaignBudgetResponse, TiktokAdsUpdateCampaignBudgetError, Options<TiktokAdsUpdateCampaignBudgetData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsUpdateCampaignBudgetResponse, TiktokAdsUpdateCampaignBudgetError, Options<TiktokAdsUpdateCampaignBudgetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsUpdateCampaignBudget({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Delete a TikTok ad campaign\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Permanently deletes a campaign. Deletion cannot be undone — a deleted campaign’s status can no longer be changed. Returns the campaign id and its now-deleted status.\n */\nexport const tiktokAdsRemoveCampaignMutation = (options?: Partial<Options<TiktokAdsRemoveCampaignData>>): UseMutationOptions<TiktokAdsRemoveCampaignResponse, TiktokAdsRemoveCampaignError, Options<TiktokAdsRemoveCampaignData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsRemoveCampaignResponse, TiktokAdsRemoveCampaignError, Options<TiktokAdsRemoveCampaignData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsRemoveCampaign({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const tiktokAdsListAdGroupsQueryKey = (options: Options<TiktokAdsListAdGroupsData>) => createQueryKey('tiktokAdsListAdGroups', options);\n\n/**\n * List TikTok ad groups\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists ad groups under the connection’s selected advertiser. Optional filters narrow by `campaign_ids` (the parent campaigns), `adgroup_ids`, `adgroup_name` (fuzzy), `objective_type`, `primary_status`, and `secondary_status`; `limit`/`offset` page the results. Deleted ad groups are excluded unless `primary_status=STATUS_ALL` or `STATUS_DELETE`.\n */\nexport const tiktokAdsListAdGroupsOptions = (options: Options<TiktokAdsListAdGroupsData>) => queryOptions<TiktokAdsListAdGroupsResponse, TiktokAdsListAdGroupsError, TiktokAdsListAdGroupsResponse, ReturnType<typeof tiktokAdsListAdGroupsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await tiktokAdsListAdGroups({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokAdsListAdGroupsQueryKey(options)\n});\n\nexport const tiktokAdsListAdGroupsInfiniteQueryKey = (options: Options<TiktokAdsListAdGroupsData>): QueryKey<Options<TiktokAdsListAdGroupsData>> => createQueryKey('tiktokAdsListAdGroups', options, true);\n\n/**\n * List TikTok ad groups\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists ad groups under the connection’s selected advertiser. Optional filters narrow by `campaign_ids` (the parent campaigns), `adgroup_ids`, `adgroup_name` (fuzzy), `objective_type`, `primary_status`, and `secondary_status`; `limit`/`offset` page the results. Deleted ad groups are excluded unless `primary_status=STATUS_ALL` or `STATUS_DELETE`.\n */\nexport const tiktokAdsListAdGroupsInfiniteOptions = (options: Options<TiktokAdsListAdGroupsData>) => infiniteQueryOptions<TiktokAdsListAdGroupsResponse, TiktokAdsListAdGroupsError, InfiniteData<TiktokAdsListAdGroupsResponse>, QueryKey<Options<TiktokAdsListAdGroupsData>>, number | Pick<QueryKey<Options<TiktokAdsListAdGroupsData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<TiktokAdsListAdGroupsData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await tiktokAdsListAdGroups({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokAdsListAdGroupsInfiniteQueryKey(options)\n});\n\n/**\n * Create a TikTok ad group\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Creates an ad group under `campaign_id` (the parent) on the connection’s selected advertiser. Money write — secret-key-only. Carries the optimization goal + bidding strategy (Maximum Delivery / Cost Cap / Value), budget mode + budget, schedule, placement, and cheap inline targeting (gender / age / language / OS / locations). `billing_event` is derived from the optimization goal. Returns the created ad group.\n */\nexport const tiktokAdsCreateAdGroupMutation = (options?: Partial<Options<TiktokAdsCreateAdGroupData>>): UseMutationOptions<TiktokAdsCreateAdGroupResponse, TiktokAdsCreateAdGroupError, Options<TiktokAdsCreateAdGroupData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsCreateAdGroupResponse, TiktokAdsCreateAdGroupError, Options<TiktokAdsCreateAdGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsCreateAdGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Pause or enable a TikTok ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets an ad group’s operation status to ENABLE (resume) or DISABLE (pause). A reversible, non-money write. Returns the ad group and the status now in effect.\n */\nexport const tiktokAdsUpdateAdGroupStatusMutation = (options?: Partial<Options<TiktokAdsUpdateAdGroupStatusData>>): UseMutationOptions<TiktokAdsUpdateAdGroupStatusResponse, TiktokAdsUpdateAdGroupStatusError, Options<TiktokAdsUpdateAdGroupStatusData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsUpdateAdGroupStatusResponse, TiktokAdsUpdateAdGroupStatusError, Options<TiktokAdsUpdateAdGroupStatusData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsUpdateAdGroupStatus({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Set a TikTok ad group’s budget\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Sets an ad group’s budget. Money write — secret-key-only. Set `budget_kind: lifetime` for a BUDGET_MODE_TOTAL ad group (takes effect immediately) or `scheduled` for a daily / dynamic-daily ad group (takes effect from 00:00 the following day). A lane that does not match the ad group’s actual budget mode is rejected by TikTok. Returns the ad group id, the budget now in effect, and the lane set.\n */\nexport const tiktokAdsUpdateAdGroupBudgetMutation = (options?: Partial<Options<TiktokAdsUpdateAdGroupBudgetData>>): UseMutationOptions<TiktokAdsUpdateAdGroupBudgetResponse, TiktokAdsUpdateAdGroupBudgetError, Options<TiktokAdsUpdateAdGroupBudgetData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsUpdateAdGroupBudgetResponse, TiktokAdsUpdateAdGroupBudgetError, Options<TiktokAdsUpdateAdGroupBudgetData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsUpdateAdGroupBudget({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Delete a TikTok ad group\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Permanently deletes an ad group. Deletion cannot be undone — a deleted ad group’s status can no longer be changed. Returns the ad group id and its now-deleted status.\n */\nexport const tiktokAdsRemoveAdGroupMutation = (options?: Partial<Options<TiktokAdsRemoveAdGroupData>>): UseMutationOptions<TiktokAdsRemoveAdGroupResponse, TiktokAdsRemoveAdGroupError, Options<TiktokAdsRemoveAdGroupData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsRemoveAdGroupResponse, TiktokAdsRemoveAdGroupError, Options<TiktokAdsRemoveAdGroupData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsRemoveAdGroup({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const tiktokAdsListAdsQueryKey = (options: Options<TiktokAdsListAdsData>) => createQueryKey('tiktokAdsListAds', options);\n\n/**\n * List TikTok ads\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists ads (the campaign → ad group → ad tree leaf) under the connection’s selected advertiser. Optional filters narrow by `adgroup_ids` (the parent ad groups), `campaign_ids`, `ad_ids`, `ad_name` (fuzzy), `objective_type`, `primary_status`, and `secondary_status`; `limit`/`offset` page the results. Deleted ads are excluded unless `primary_status=STATUS_ALL` or `STATUS_DELETE`.\n */\nexport const tiktokAdsListAdsOptions = (options: Options<TiktokAdsListAdsData>) => queryOptions<TiktokAdsListAdsResponse, TiktokAdsListAdsError, TiktokAdsListAdsResponse, ReturnType<typeof tiktokAdsListAdsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await tiktokAdsListAds({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokAdsListAdsQueryKey(options)\n});\n\nexport const tiktokAdsListAdsInfiniteQueryKey = (options: Options<TiktokAdsListAdsData>): QueryKey<Options<TiktokAdsListAdsData>> => createQueryKey('tiktokAdsListAds', options, true);\n\n/**\n * List TikTok ads\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists ads (the campaign → ad group → ad tree leaf) under the connection’s selected advertiser. Optional filters narrow by `adgroup_ids` (the parent ad groups), `campaign_ids`, `ad_ids`, `ad_name` (fuzzy), `objective_type`, `primary_status`, and `secondary_status`; `limit`/`offset` page the results. Deleted ads are excluded unless `primary_status=STATUS_ALL` or `STATUS_DELETE`.\n */\nexport const tiktokAdsListAdsInfiniteOptions = (options: Options<TiktokAdsListAdsData>) => infiniteQueryOptions<TiktokAdsListAdsResponse, TiktokAdsListAdsError, InfiniteData<TiktokAdsListAdsResponse>, QueryKey<Options<TiktokAdsListAdsData>>, number | Pick<QueryKey<Options<TiktokAdsListAdsData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<TiktokAdsListAdsData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await tiktokAdsListAds({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokAdsListAdsInfiniteQueryKey(options)\n});\n\n/**\n * Create a TikTok ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a standalone single-video ad under `adgroup_id` (the parent) on the connection’s selected advertiser, posting as a CUSTOMIZED_USER identity. A reversible, non-money write. The creative is referenced by Postrun media ids: `video_media_id` (a ready `tiktok_ads` video, required) and an optional `cover_media_id` (a ready `tiktok_ads` image — omit to auto-derive the cover from the video). Also carries `identity_id`, `ad_text`, and a call-to-action. Returns the created ad.\n */\nexport const tiktokAdsCreateAdMutation = (options?: Partial<Options<TiktokAdsCreateAdData>>): UseMutationOptions<TiktokAdsCreateAdResponse, TiktokAdsCreateAdError, Options<TiktokAdsCreateAdData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsCreateAdResponse, TiktokAdsCreateAdError, Options<TiktokAdsCreateAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsCreateAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Pause or enable a TikTok ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Sets an ad’s operation status to ENABLE (resume) or DISABLE (pause). A reversible, non-money write. Returns the ad and the status now in effect.\n */\nexport const tiktokAdsUpdateAdStatusMutation = (options?: Partial<Options<TiktokAdsUpdateAdStatusData>>): UseMutationOptions<TiktokAdsUpdateAdStatusResponse, TiktokAdsUpdateAdStatusError, Options<TiktokAdsUpdateAdStatusData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsUpdateAdStatusResponse, TiktokAdsUpdateAdStatusError, Options<TiktokAdsUpdateAdStatusData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsUpdateAdStatus({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Delete a TikTok ad\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:delete` scoped to the profile that owns the connection.\n *\n * Permanently deletes an ad. Deletion cannot be undone — a deleted ad’s status can no longer be changed. Returns the ad id and its now-deleted status.\n */\nexport const tiktokAdsRemoveAdMutation = (options?: Partial<Options<TiktokAdsRemoveAdData>>): UseMutationOptions<TiktokAdsRemoveAdResponse, TiktokAdsRemoveAdError, Options<TiktokAdsRemoveAdData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsRemoveAdResponse, TiktokAdsRemoveAdError, Options<TiktokAdsRemoveAdData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsRemoveAd({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * TikTok ad performance insights\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Performance metrics for the connection’s advertiser, at a chosen level (advertiser / campaign / ad group / ad), for a date range, with optional time breakdowns and id filters. `dimensions` must include the level’s id dimension; each id filter must be valid at that level. Native TikTok metric names — use the curated set or fall back to the entity reads.\n */\nexport const tiktokAdsGetInsightsMutation = (options?: Partial<Options<TiktokAdsGetInsightsData>>): UseMutationOptions<TiktokAdsGetInsightsResponse, TiktokAdsGetInsightsError, Options<TiktokAdsGetInsightsData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsGetInsightsResponse, TiktokAdsGetInsightsError, Options<TiktokAdsGetInsightsData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsGetInsights({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const tiktokAdsGetAdTreeQueryKey = (options: Options<TiktokAdsGetAdTreeData>) => createQueryKey('tiktokAdsGetAdTree', options);\n\n/**\n * TikTok Ads campaign tree\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * The campaign → ad_group → ad tree as flat, native, typed nodes — group them by `parent_id` to assemble the tree. Without `campaign_id`, returns every campaign with a per-level `child_kind`/`expandable` hint. With `campaign_id`, returns that campaign’s whole subtree (ad groups + ads) in one batched fetch at a single window. Each node carries TikTok’s authoritative per-level metrics (no client roll-up) for the date window — metrics aggregate over the window (no time breakdown). There is no serving status on the tree (the basic report carries none); correlate a node id with the entity reads for status.\n */\nexport const tiktokAdsGetAdTreeOptions = (options: Options<TiktokAdsGetAdTreeData>) => queryOptions<TiktokAdsGetAdTreeResponse, TiktokAdsGetAdTreeError, TiktokAdsGetAdTreeResponse, ReturnType<typeof tiktokAdsGetAdTreeQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await tiktokAdsGetAdTree({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokAdsGetAdTreeQueryKey(options)\n});\n\nexport const tiktokAdsListIdentitiesQueryKey = (options: Options<TiktokAdsListIdentitiesData>) => createQueryKey('tiktokAdsListIdentities', options);\n\n/**\n * List TikTok ad identities\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the identities under the connection’s selected advertiser. Optional `identity_type` narrows to one type (e.g. CUSTOMIZED_USER); `page`/`page_size` page the results.\n */\nexport const tiktokAdsListIdentitiesOptions = (options: Options<TiktokAdsListIdentitiesData>) => queryOptions<TiktokAdsListIdentitiesResponse, TiktokAdsListIdentitiesError, TiktokAdsListIdentitiesResponse, ReturnType<typeof tiktokAdsListIdentitiesQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await tiktokAdsListIdentities({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokAdsListIdentitiesQueryKey(options)\n});\n\nexport const tiktokAdsListIdentitiesInfiniteQueryKey = (options: Options<TiktokAdsListIdentitiesData>): QueryKey<Options<TiktokAdsListIdentitiesData>> => createQueryKey('tiktokAdsListIdentities', options, true);\n\n/**\n * List TikTok ad identities\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:read` scoped to the profile that owns the connection.\n *\n * Lists the identities under the connection’s selected advertiser. Optional `identity_type` narrows to one type (e.g. CUSTOMIZED_USER); `page`/`page_size` page the results.\n */\nexport const tiktokAdsListIdentitiesInfiniteOptions = (options: Options<TiktokAdsListIdentitiesData>) => infiniteQueryOptions<TiktokAdsListIdentitiesResponse, TiktokAdsListIdentitiesError, InfiniteData<TiktokAdsListIdentitiesResponse>, QueryKey<Options<TiktokAdsListIdentitiesData>>, number | Pick<QueryKey<Options<TiktokAdsListIdentitiesData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<TiktokAdsListIdentitiesData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n page: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await tiktokAdsListIdentities({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: tiktokAdsListIdentitiesInfiniteQueryKey(options)\n});\n\n/**\n * Create a TikTok CUSTOMIZED_USER identity\n *\n * **Authentication.** Secret `pr_` API key, or a browser-safe frontend token granting `ads:write` scoped to the profile that owns the connection.\n *\n * Creates a synthetic CUSTOMIZED_USER identity for in-feed ads: uploads the avatar from `image_url` (must be 1:1) and creates the identity with `display_name`. Returns the created identity (use its `identity_id` when creating ads).\n */\nexport const tiktokAdsCreateIdentityMutation = (options?: Partial<Options<TiktokAdsCreateIdentityData>>): UseMutationOptions<TiktokAdsCreateIdentityResponse, TiktokAdsCreateIdentityError, Options<TiktokAdsCreateIdentityData>> => {\n const mutationOptions: UseMutationOptions<TiktokAdsCreateIdentityResponse, TiktokAdsCreateIdentityError, Options<TiktokAdsCreateIdentityData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tiktokAdsCreateIdentity({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const logsListQueryKey = (options?: Options<LogsListData>) => createQueryKey('logsList', options);\n\n/**\n * List request logs\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the API activity for your account — one entry per action, newest first. Filter by profile, connection, platform, status, source, action, or time range.\n */\nexport const logsListOptions = (options?: Options<LogsListData>) => queryOptions<LogsListResponse, LogsListError, LogsListResponse, ReturnType<typeof logsListQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await logsList({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: logsListQueryKey(options)\n});\n\nexport const logsListInfiniteQueryKey = (options?: Options<LogsListData>): QueryKey<Options<LogsListData>> => createQueryKey('logsList', options, true);\n\n/**\n * List request logs\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the API activity for your account — one entry per action, newest first. Filter by profile, connection, platform, status, source, action, or time range.\n */\nexport const logsListInfiniteOptions = (options?: Options<LogsListData>) => infiniteQueryOptions<LogsListResponse, LogsListError, InfiniteData<LogsListResponse>, QueryKey<Options<LogsListData>>, number | Pick<QueryKey<Options<LogsListData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<LogsListData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await logsList({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: logsListInfiniteQueryKey(options)\n});\n\nexport const logsGetQueryKey = (options: Options<LogsGetData>) => createQueryKey('logsGet', options);\n\n/**\n * Retrieve a request log\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Retrieves a single request log entry by id.\n */\nexport const logsGetOptions = (options: Options<LogsGetData>) => queryOptions<LogsGetResponse, LogsGetError, LogsGetResponse, ReturnType<typeof logsGetQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await logsGet({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: logsGetQueryKey(options)\n});\n\nexport const webhooksListEndpointsQueryKey = (options?: Options<WebhooksListEndpointsData>) => createQueryKey('webhooksListEndpoints', options);\n\n/**\n * List webhook endpoints\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the webhook endpoints registered for your account.\n */\nexport const webhooksListEndpointsOptions = (options?: Options<WebhooksListEndpointsData>) => queryOptions<WebhooksListEndpointsResponse, WebhooksListEndpointsError, WebhooksListEndpointsResponse, ReturnType<typeof webhooksListEndpointsQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await webhooksListEndpoints({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: webhooksListEndpointsQueryKey(options)\n});\n\nexport const webhooksListEndpointsInfiniteQueryKey = (options?: Options<WebhooksListEndpointsData>): QueryKey<Options<WebhooksListEndpointsData>> => createQueryKey('webhooksListEndpoints', options, true);\n\n/**\n * List webhook endpoints\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the webhook endpoints registered for your account.\n */\nexport const webhooksListEndpointsInfiniteOptions = (options?: Options<WebhooksListEndpointsData>) => infiniteQueryOptions<WebhooksListEndpointsResponse, WebhooksListEndpointsError, InfiniteData<WebhooksListEndpointsResponse>, QueryKey<Options<WebhooksListEndpointsData>>, number | Pick<QueryKey<Options<WebhooksListEndpointsData>>[0], 'body' | 'headers' | 'path' | 'query'>>(\n// @ts-ignore\n{\n queryFn: async ({ pageParam, queryKey, signal }) => {\n // @ts-ignore\n const page: Pick<QueryKey<Options<WebhooksListEndpointsData>>[0], 'body' | 'headers' | 'path' | 'query'> = typeof pageParam === 'object' ? pageParam : {\n query: {\n offset: pageParam\n }\n };\n const params = createInfiniteParams(queryKey, page);\n const { data } = await webhooksListEndpoints({\n ...options,\n ...params,\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: webhooksListEndpointsInfiniteQueryKey(options)\n});\n\n/**\n * Create a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Registers a URL to receive the chosen event types. Delivery, retries, and signing are handled for you.\n */\nexport const webhooksCreateEndpointMutation = (options?: Partial<Options<WebhooksCreateEndpointData>>): UseMutationOptions<WebhooksCreateEndpointResponse, WebhooksCreateEndpointError, Options<WebhooksCreateEndpointData>> => {\n const mutationOptions: UseMutationOptions<WebhooksCreateEndpointResponse, WebhooksCreateEndpointError, Options<WebhooksCreateEndpointData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await webhooksCreateEndpoint({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Delete a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Deletes a webhook endpoint. Delivery to it stops immediately.\n */\nexport const webhooksDeleteEndpointMutation = (options?: Partial<Options<WebhooksDeleteEndpointData>>): UseMutationOptions<WebhooksDeleteEndpointResponse, WebhooksDeleteEndpointError, Options<WebhooksDeleteEndpointData>> => {\n const mutationOptions: UseMutationOptions<WebhooksDeleteEndpointResponse, WebhooksDeleteEndpointError, Options<WebhooksDeleteEndpointData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await webhooksDeleteEndpoint({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const webhooksGetEndpointQueryKey = (options: Options<WebhooksGetEndpointData>) => createQueryKey('webhooksGetEndpoint', options);\n\n/**\n * Retrieve a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Retrieves a single webhook endpoint by id.\n */\nexport const webhooksGetEndpointOptions = (options: Options<WebhooksGetEndpointData>) => queryOptions<WebhooksGetEndpointResponse, WebhooksGetEndpointError, WebhooksGetEndpointResponse, ReturnType<typeof webhooksGetEndpointQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await webhooksGetEndpoint({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: webhooksGetEndpointQueryKey(options)\n});\n\n/**\n * Update a webhook endpoint\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Updates a webhook endpoint. Send only the fields you want to change; provide at least one.\n */\nexport const webhooksUpdateEndpointMutation = (options?: Partial<Options<WebhooksUpdateEndpointData>>): UseMutationOptions<WebhooksUpdateEndpointResponse, WebhooksUpdateEndpointError, Options<WebhooksUpdateEndpointData>> => {\n const mutationOptions: UseMutationOptions<WebhooksUpdateEndpointResponse, WebhooksUpdateEndpointError, Options<WebhooksUpdateEndpointData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await webhooksUpdateEndpoint({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Create a webhook portal link\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Mints a one-time App Portal URL where you (or your customer) self-serve webhook delivery logs and signing secrets.\n */\nexport const webhooksCreatePortalMutation = (options?: Partial<Options<WebhooksCreatePortalData>>): UseMutationOptions<WebhooksCreatePortalResponse, WebhooksCreatePortalError, Options<WebhooksCreatePortalData>> => {\n const mutationOptions: UseMutationOptions<WebhooksCreatePortalResponse, WebhooksCreatePortalError, Options<WebhooksCreatePortalData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await webhooksCreatePortal({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\nexport const webhooksListEventTypesQueryKey = (options?: Options<WebhooksListEventTypesData>) => createQueryKey('webhooksListEventTypes', options);\n\n/**\n * List webhook event types\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Lists the event types you can subscribe an endpoint to (the catalog).\n */\nexport const webhooksListEventTypesOptions = (options?: Options<WebhooksListEventTypesData>) => queryOptions<WebhooksListEventTypesResponse, WebhooksListEventTypesError, WebhooksListEventTypesResponse, ReturnType<typeof webhooksListEventTypesQueryKey>>({\n queryFn: async ({ queryKey, signal }) => {\n const { data } = await webhooksListEventTypes({\n ...options,\n ...queryKey[0],\n signal,\n throwOnError: true\n });\n return data;\n },\n queryKey: webhooksListEventTypesQueryKey(options)\n});\n\n/**\n * Send a test event\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Emits a `webhook.ping` event to your subscribed endpoints so you can verify delivery end to end.\n */\nexport const webhooksPingMutation = (options?: Partial<Options<WebhooksPingData>>): UseMutationOptions<WebhooksPingResponse, WebhooksPingError, Options<WebhooksPingData>> => {\n const mutationOptions: UseMutationOptions<WebhooksPingResponse, WebhooksPingError, Options<WebhooksPingData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await webhooksPing({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n\n/**\n * Mint a scoped frontend token\n *\n * **Authentication.** Secret `pr_` API key only — this endpoint cannot be called with a browser token.\n *\n * Mints a short-lived, profile-scoped token from your secret `pr_` key. Call this from your backend; the returned token is safe to hand to a browser, which then calls the Postrun API directly. The secret key never touches the browser.\n */\nexport const tokensMintMutation = (options?: Partial<Options<TokensMintData>>): UseMutationOptions<TokensMintResponse, TokensMintError, Options<TokensMintData>> => {\n const mutationOptions: UseMutationOptions<TokensMintResponse, TokensMintError, Options<TokensMintData>> = {\n mutationFn: async (fnOptions) => {\n const { data } = await tokensMint({\n ...options,\n ...fnOptions,\n throwOnError: true\n });\n return data;\n }\n };\n return mutationOptions;\n};\n"]}