import {z} from 'zod' export type GetApiNetworksReportingConversionsConversionIdArgs = {conversionId: string}; export type GetApiNetworksReportingConversionsConversionIdOptions = {baseUrl?: string | undefined, APIKey?: string | undefined, fetch?: typeof fetch | undefined}; export const getApiNetworksReportingConversionsConversionIdResponse = z.object({adv1: z.string().optional(), adv2: z.string().optional(), adv3: z.string().optional(), adv4: z.string().optional(), adv5: z.string().optional(), adv6: z.string().optional(), adv7: z.string().optional(), adv8: z.string().optional(), adv9: z.string().optional(), adv10: z.string().optional(), android_id: z.string().optional(), android_id_md5: z.string().optional(), android_id_sha1: z.string().optional(), app_id: z.string().optional(), brand: z.string().optional(), browser: z.string().optional(), carrier: z.string().optional(), city: z.string().optional(), click_unix_timestamp: z.number().int().optional(), conversion_id: z.string().optional(), conversion_unix_timestamp: z.number().int().optional(), conversion_user_ip: z.string().optional(), country: z.string().optional(), coupon_code: z.string().optional(), currency_id: z.string().optional(), device_model: z.string().optional(), device_type: z.string().optional(), dma: z.number().int().optional(), email: z.string().optional(), error_code: z.number().int().optional(), error_message: z.string().optional(), event: z.string().optional(), google_ad_id: z.string().optional(), google_ad_id_md5: z.string().optional(), google_ad_id_sha1: z.string().optional(), http_user_agent: z.string().optional(), idfa: z.string().optional(), idfa_md5: z.string().optional(), idfa_sha1: z.string().optional(), is_event: z.boolean().optional(), is_scrub: z.boolean().optional(), is_view_through: z.boolean().optional(), isp: z.string().optional(), language: z.string().optional(), network_offer_payout_revenue_id: z.number().int().optional(), notes: z.string().optional(), order_id: z.string().optional(), os_version: z.string().optional(), payout: z.number().optional(), payout_type: z.string().optional(), platform: z.string().optional(), previous_network_offer_id: z.number().int().optional(), referer: z.string().optional(), region: z.string().optional(), relationship: z.object({account_manager: z.object({account_status: z.enum(["active", "inactive", "suspended", "pending"]).optional(), first_name: z.string().optional(), full_name: z.string().optional(), last_name: z.string().optional(), network_employee_id: z.number().int().optional(), network_id: z.number().int().optional()}).optional(), adv_global_event: z.object({advertiser_id: z.number().int().optional(), entry_name: z.string().optional(), network_advertiser_global_event_id: z.number().int().optional(), network_id: z.number().int().optional()}).optional(), advertiser: z.object({account_status: z.enum(["active", "inactive", "pending", "suspended"]).optional(), name: z.string().optional(), network_advertiser_id: z.number().int().optional(), network_id: z.number().int().optional()}).optional(), affiliate: z.object({account_status: z.enum(["active", "inactive", "pending", "suspended"]).optional(), name: z.string().optional(), network_affiliate_id: z.number().int().optional(), network_id: z.number().int().optional()}).optional(), affiliate_manager: z.object({account_status: z.enum(["active", "inactive", "suspended", "pending"]).optional(), first_name: z.string().optional(), full_name: z.string().optional(), last_name: z.string().optional(), network_employee_id: z.number().int().optional(), network_id: z.number().int().optional()}).optional(), affiliate_tier: z.object({name: z.string().optional(), network_affiliate_tier_id: z.number().int().optional(), network_id: z.number().int().optional(), status: z.enum(["active", "paused", "deleted"]).optional()}).optional(), attribution_method: z.enum(["cookie", "transaction_id", "coupon_code", "email", "fingerprinting", "manual_upload", "clickless", "skad", "csv_upload", "webhook", "integration", "user_management"]).optional(), campaign: z.object({campaign_name: z.string().optional(), campaign_status: z.enum(["active", "paused", "deleted"]).optional(), network_campaign_id: z.number().int().optional(), network_id: z.number().int().optional()}).optional(), candidate_clicks: z.object({relationship: z.object({affiliate: z.object({account_status: z.enum(["active", "inactive", "pending", "suspended"]).optional(), name: z.string().optional(), network_affiliate_id: z.number().int().optional(), network_id: z.number().int().optional()}).optional()}).optional(), transaction_id: z.string().optional(), unix_timestamp: z.number().int().optional()}).optional(), click_attribution_method: z.string().optional(), conversion_referer: z.string().optional(), custom_payout_revenue: z.object({name: z.string().optional(), network_custom_payout_revenue_setting_id: z.number().int().optional(), network_id: z.number().int().optional()}).optional(), events_count: z.number().int().optional(), is_enforce_caps: z.boolean().optional(), line_items_custom_payout_revenue_settings: z.object({name: z.string().optional(), network_custom_payout_revenue_setting_id: z.number().int().optional(), network_id: z.number().int().optional()}).optional(), offer: z.object({name: z.string().optional(), network_id: z.number().int().optional(), network_offer_id: z.number().int().optional(), offer_status: z.enum(["active", "paused", "pending", "deleted"]).optional()}).optional(), offer_group: z.object({name: z.string().optional(), network_advertiser_id: z.number().int().optional(), network_id: z.number().int().optional(), network_offer_group_id: z.number().int().optional(), offer_count: z.number().int().optional(), offer_group_status: z.enum(["active", "paused", "deleted"]).optional()}).optional(), offer_url: z.object({name: z.string().optional(), network_id: z.number().int().optional(), network_offer_id: z.number().int().optional(), network_offer_url_id: z.number().int().optional()}).optional(), on_hold_snapshots: z.object({initiator: z.enum(["manual", "conversion_processing", "conversion_update", "csv"]).optional(), network_employee: z.object({account_status: z.enum(["active", "inactive", "suspended", "pending"]).optional(), first_name: z.string().optional(), full_name: z.string().optional(), last_name: z.string().optional(), network_employee_id: z.number().int().optional(), network_id: z.number().int().optional()}).optional(), network_id: z.number().int().optional(), on_hold_conversion_history_snapshot_id: z.number().int().optional(), on_hold_conversion_id: z.string().optional(), snapshot_type: z.enum(["status", "payout_revenue"]).optional(), status: z.enum(["on_hold", "approved", "rejected"]).optional(), unix_timestamp: z.number().int().optional()}).optional(), order_line_items: z.object({discount: z.number().optional(), name: z.string().optional(), network_order_line_item_id: z.number().int().optional(), order_id: z.number().int().optional(), order_number: z.number().int().optional(), price: z.number().optional(), product_id: z.number().int().optional(), quantity: z.number().int().optional(), sku: z.string().optional()}).optional(), postback_control: z.object({name: z.string().optional(), network_id: z.number().int().optional(), network_postback_control_id: z.number().int().optional()}).optional(), redirect_url: z.string().optional(), referer: z.string().optional(), snapshots: z.object({conversion_history_snapshot_id: z.number().int().optional(), conversion_id: z.string().optional(), error_code: z.number().int().optional(), initiator: z.enum(["manual", "csv", "bulk_payout_adjustment", "twenty_four_metrics", "reversal", "avow", "retroactive_tiered_commission"]).optional(), network_employee: z.object({account_status: z.enum(["active", "inactive", "suspended", "pending"]).optional(), first_name: z.string().optional(), full_name: z.string().optional(), last_name: z.string().optional(), network_employee_id: z.number().int().optional(), network_id: z.number().int().optional()}).optional(), network_id: z.number().int().optional(), payout: z.number().optional(), revenue: z.number().optional(), sale_amount: z.number().optional(), snapshot_type: z.enum(["status", "payout_revenue", "sale_amount", "payout_revenue_and_sale_amount"]).optional(), status: z.enum(["approved", "rejected", "pending", "invalid"]).optional(), unix_timestamp: z.number().int().optional()}).optional(), tiered_commission: z.object({name: z.string().optional(), network_id: z.number().int().optional(), network_tiered_commission_id: z.number().int().optional()}).optional(), unix_timestamp_postback: z.number().int().optional(), usm_data: z.object({}).nullable().optional(), query_parameters: z.object({}).optional()}).optional(), revenue: z.number().optional(), revenue_type: z.string().optional(), sale_amount: z.number().optional(), session_user_ip: z.string().optional(), source_id: z.string().optional(), status: z.enum(["approved", "rejected", "pending", "invalid"]).optional(), sub1: z.string().optional(), sub2: z.string().optional(), sub3: z.string().optional(), sub4: z.string().optional(), sub5: z.string().optional(), sub6: z.string().optional(), sub7: z.string().optional(), sub8: z.string().optional(), sub9: z.string().optional(), sub10: z.string().optional(), transaction_id: z.string().optional(), url: z.string().optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Get Conversion by ID * * GET /networks/reporting/conversions/{conversionId} */ export const getApiNetworksReportingConversionsConversionId = async (args: GetApiNetworksReportingConversionsConversionIdArgs, options?: GetApiNetworksReportingConversionsConversionIdOptions) => { const {baseUrl = "https://api.eflow.team/v1", fetch: fetchFn = fetch, APIKey} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (APIKey !== undefined) headers.set("X-Eflow-Api-Key", APIKey) const url = `${baseUrl.replace(/\/+$/, '')}/networks/reporting/conversions/${encodeURIComponent(String(args.conversionId))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(getApiNetworksReportingConversionsConversionIdResponse, await res.json()) };