import {z} from 'zod' export type IntegrationType = 'postgres' | 'acumatica' | 'aircall' | 'amplitude' | 'attio' | 'bigquery' | 'cube' | 'custom' | 'ducklake' | 'excel' | 'facebookads' | 'facebookads_system_user' | 'gcs' | 'googleads' | 'googleanalytics' | 'googlesearchconsole' | 'googlesheets' | 'hubspot' | 'iceberg' | 'linkedinads' | 'linkedinpages' | 'mavenlink' | 'mysql' | 'omnisend' | 'pipedrive' | 'twilio' | 'quickbooks' | 'redshift' | 'salesforce' | 'salesloft' | 'sharepointsites' | 'sheets' | 'shopify' | 'slack' | 'snowflake' | 'sqlserver' | 's3' | 'abicart' | 'abra' | 'activecampaign' | 'acuite' | 'adp' | 'aftership' | 'aha' | 'airtable' | 'amazonadvertising' | 'amazonassociates' | 'amazonsellingpartner' | 'anvil' | 'apaleo' | 'appstore' | 'applehealth' | 'asknicely' | 'atinternet' | 'awscloudtrail' | 'awscognito' | 'awscostexplorer' | 'bamboohr' | 'hellobaton' | 'bazaarvoice' | 'bexio' | 'bigmarker' | 'brillium' | 'canvas' | 'chorusai' | 'clickcast' | 'clickup' | 'clientsuccess' | 'closeio' | 'cloudwatch' | 'coingecko' | 'currencyfreaks' | 'dagster' | 'dashhudson' | 'datadog' | 'dearsystems' | 'dixa' | 'domo' | 'emarsys' | 'fastly' | 'fishbowl' | 'freshdesk' | 'freshcaller' | 'freshworks' | 'fullstory' | 'gainsightpx' | 'github' | 'gladly' | 'gong' | 'greenhouse' | 'holidays' | 'hotjar' | 'immuta' | 'instagram' | 'iterable' | 'intercom' | 'jira' | 'jotform' | 'judgeme' | 'keap' | 'klaviyo' | 'krow' | 'lessonly' | 'lightdash' | 'linear' | 'loopreturns' | 'maestroqa' | 'mailerlite' | 'mailjet' | 'marketo' | 'marketplacer' | 'netohq' | 'megaphone' | 'memberful' | 'mercadopago' | 'meshstack' | 'messagebird' | 'metronome' | 'mixpanel' | 'msgraph' | 'mindstamp' | 'miro' | 'mode' | 'monday' | 'mongodb' | 'montapacking' | 'moosend' | 'netlify' | 'netrivals' | 'netsuite' | 'niceincontact' | 'notion' | 'okta' | 'ordoro' | 'partnerize' | 'partoo' | 'peloton' | 'picqer' | 'plentymarkets' | 'getpocket' | 'podbean' | 'pulumicloud' | 'qls' | 'qualified' | 'readthedocs' | 'recruitee' | 'recurly' | 'sailthru' | 'segment' | 'sellsy' | 'sendinblue' | 'shipbob' | 'shiphero' | 'shipstation' | 'shoplazza' | 'showpad' | 'sleeper' | 'smartsheet' | 'square' | 'stamped' | 'stripe' | 'sumologic' | 'talkable' | 'thinkific' | 'tiktokads' | 'tradera' | 'travefy' | 'trustrace' | 'typeform' | 'udemyforbusiness' | 'unleashed' | 'veeqo' | 'webflow' | 'woocommerce' | 'zammad' | 'zendesk' | 'zohocrm'; export type CreateIntegrationApiRequest = {type: IntegrationType, credentials: {[key: string]: unknown}, name?: (string | null) | undefined}; export type CreateApiV1ApiIntegrationsArgs = {body: CreateIntegrationApiRequest}; export type CreateApiV1ApiIntegrationsOptions = {baseUrl: string, AsyncAPIKeyHeaderAuthenticator?: string | undefined, fetch?: typeof fetch | undefined}; export const integrationType = z.enum(["postgres", "acumatica", "aircall", "amplitude", "attio", "bigquery", "cube", "custom", "ducklake", "excel", "facebookads", "facebookads_system_user", "gcs", "googleads", "googleanalytics", "googlesearchconsole", "googlesheets", "hubspot", "iceberg", "linkedinads", "linkedinpages", "mavenlink", "mysql", "omnisend", "pipedrive", "twilio", "quickbooks", "redshift", "salesforce", "salesloft", "sharepointsites", "sheets", "shopify", "slack", "snowflake", "sqlserver", "s3", "abicart", "abra", "activecampaign", "acuite", "adp", "aftership", "aha", "airtable", "amazonadvertising", "amazonassociates", "amazonsellingpartner", "anvil", "apaleo", "appstore", "applehealth", "asknicely", "atinternet", "awscloudtrail", "awscognito", "awscostexplorer", "bamboohr", "hellobaton", "bazaarvoice", "bexio", "bigmarker", "brillium", "canvas", "chorusai", "clickcast", "clickup", "clientsuccess", "closeio", "cloudwatch", "coingecko", "currencyfreaks", "dagster", "dashhudson", "datadog", "dearsystems", "dixa", "domo", "emarsys", "fastly", "fishbowl", "freshdesk", "freshcaller", "freshworks", "fullstory", "gainsightpx", "github", "gladly", "gong", "greenhouse", "holidays", "hotjar", "immuta", "instagram", "iterable", "intercom", "jira", "jotform", "judgeme", "keap", "klaviyo", "krow", "lessonly", "lightdash", "linear", "loopreturns", "maestroqa", "mailerlite", "mailjet", "marketo", "marketplacer", "netohq", "megaphone", "memberful", "mercadopago", "meshstack", "messagebird", "metronome", "mixpanel", "msgraph", "mindstamp", "miro", "mode", "monday", "mongodb", "montapacking", "moosend", "netlify", "netrivals", "netsuite", "niceincontact", "notion", "okta", "ordoro", "partnerize", "partoo", "peloton", "picqer", "plentymarkets", "getpocket", "podbean", "pulumicloud", "qls", "qualified", "readthedocs", "recruitee", "recurly", "sailthru", "segment", "sellsy", "sendinblue", "shipbob", "shiphero", "shipstation", "shoplazza", "showpad", "sleeper", "smartsheet", "square", "stamped", "stripe", "sumologic", "talkable", "thinkific", "tiktokads", "tradera", "travefy", "trustrace", "typeform", "udemyforbusiness", "unleashed", "veeqo", "webflow", "woocommerce", "zammad", "zendesk", "zohocrm"]); export const integrationETLConfig = z.object({dest_integration_id: z.string(), dest_schema: z.string().optional(), schedule_cron: z.string().nullable().optional(), overwrite_tables: z.boolean().optional(), partition_fields: z.string().nullable().optional(), ducklake_pod_memory_override: z.number().int().nullable().optional(), load_method: z.string().optional(), parallel_draining: z.boolean().optional(), auto_cast_timestamps: z.boolean().optional(), max_record_age_minutes: z.number().int().gte(1).optional(), replace_on_no_pk_extraction: z.boolean().optional(), select_filter: z.string().nullable().optional(), select_custom_objects: z.string().nullable().optional(), metadata: z.string().nullable().optional(), infer_dest_schemas: z.boolean().nullable().optional(), dest_schema_mapping: z.string().nullable().optional(), dates_as_string: z.boolean().optional(), max_record_count: z.number().int().gte(1).nullable().optional()}); export const integrationDetailsSchemaFastly = z.object({name: z.string().optional(), integration_type: z.literal("fastly").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("fastly").optional(), tap_variant: z.string().optional(), api_token: z.string().optional()}); export const integrationDetailsSchemaAirtable = z.object({name: z.string().optional(), integration_type: z.literal("airtable").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("airtable").optional(), tap_variant: z.string().optional(), token: z.string().optional()}); export const integrationDetailsSchemaUdemyForBusiness = z.object({name: z.string().optional(), integration_type: z.literal("udemyforbusiness").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("udemyforbusiness").optional(), tap_variant: z.string().optional(), organization_id: z.number().int(), organization_name: z.string().optional(), client_id: z.string().optional(), client_secret: z.string().optional()}); export const integrationDetailsSchemaGetPocket = z.object({name: z.string().optional(), integration_type: z.literal("getpocket").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("getpocket").optional(), tap_variant: z.string().optional(), consumer_key: z.string().optional(), access_token: z.string().optional()}); export const integrationDetailsSchemaSellsy = z.object({name: z.string().optional(), integration_type: z.literal("sellsy").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("sellsy").optional(), tap_variant: z.string().optional(), client_secret: z.string().optional(), client_id: z.string().optional()}); export const integrationDetailsSchemaShopify = z.object({name: z.string().optional(), integration_type: z.literal("shopify").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("shopify").optional(), access_token: z.string().optional(), client_id: z.string().optional(), client_secret: z.string().optional(), store: z.string()}); export const integrationDetailsSchemaMailjet = z.object({name: z.string().optional(), integration_type: z.literal("mailjet").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("mailjet").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), api_secret: z.string().optional()}); export const integrationDetailsSchemaLinkedinPagesOutput = z.object({name: z.string().optional(), integration_type: z.literal("linkedinpages").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("linkedinpages").optional(), tap_variant: z.string().optional(), orgId: z.string().optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaTrustrace = z.object({name: z.string().optional(), integration_type: z.literal("trustrace").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("trustrace").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaMaestroqa = z.object({name: z.string().optional(), integration_type: z.literal("maestroqa").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("maestroqa").optional(), tap_variant: z.string().optional(), api_token: z.string().optional()}); export const integrationDetailsSchemaOmnisend = z.object({name: z.string().optional(), integration_type: z.literal("omnisend").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("omnisend").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaPeloton = z.object({name: z.string().optional(), integration_type: z.literal("peloton").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("peloton").optional(), tap_variant: z.string().optional(), username: z.string().optional(), password: z.string().optional()}); export const integrationDetailsSchemaKlaviyo = z.object({name: z.string().optional(), integration_type: z.literal("klaviyo").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("klaviyo").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaStamped = z.object({name: z.string().optional(), integration_type: z.literal("stamped").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("stamped").optional(), tap_variant: z.string().optional(), public_key: z.string().optional(), private_key: z.string().optional()}); export const integrationDetailsSchemaAbicart = z.object({name: z.string().optional(), integration_type: z.literal("abicart").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("abicart").optional(), tap_variant: z.string().optional(), password: z.string().optional(), username: z.string().optional(), webshop: z.string().optional()}); export const integrationDetailsSchemaGithub = z.object({name: z.string().optional(), integration_type: z.literal("github").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("github").optional(), tap_variant: z.string().optional(), repository: z.string().optional(), access_token: z.string().optional()}); export const integrationDetailsSchemaRecurly = z.object({name: z.string().optional(), integration_type: z.literal("recurly").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("recurly").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), subdomain: z.string().optional()}); export const integrationDetailsSchemaThinkific = z.object({name: z.string().optional(), integration_type: z.literal("thinkific").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("thinkific").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), subdomain: z.string().optional()}); export const integrationDetailsSchemaBexio = z.object({name: z.string().optional(), integration_type: z.literal("bexio").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("bexio").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaSmartsheet = z.object({name: z.string().optional(), integration_type: z.literal("smartsheet").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("smartsheet").optional(), tap_variant: z.string().optional(), smartsheet_access_token: z.string().optional()}); export const integrationDetailsSchemaKrow = z.object({name: z.string().optional(), integration_type: z.literal("krow").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("krow").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaJudgeme = z.object({name: z.string().optional(), integration_type: z.literal("judgeme").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("judgeme").optional(), tap_variant: z.string().optional(), shop_domain: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaFreshdesk = z.object({name: z.string().optional(), integration_type: z.literal("freshdesk").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("freshdesk").optional(), tap_variant: z.string().optional(), domain: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaAskNicely = z.object({name: z.string().optional(), integration_type: z.literal("asknicely").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("asknicely").optional(), tap_variant: z.string().optional(), subdomain: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaOrdoro = z.object({name: z.string().optional(), integration_type: z.literal("ordoro").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("ordoro").optional(), tap_variant: z.string().optional(), client_secret: z.string().optional(), client_id: z.string().optional()}); export const integrationDetailsSchemaAcumatica = z.object({name: z.string().optional(), integration_type: z.literal("acumatica").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("acumatica").optional(), tap_variant: z.string().optional(), tenant: z.string().optional(), username: z.string().optional(), password: z.string().optional(), select_filter: z.string().nullable().optional()}); export const integrationDetailsSchemaIceberg = z.object({name: z.string().optional(), integration_type: z.literal("iceberg").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("iceberg").optional(), gcs_access_key: z.string().nullable().optional(), gcs_secret: z.string().nullable().optional(), trino_catalog_name: z.string().nullable().optional(), primary_key_mapping: z.string().nullable().optional(), duckdb_sync_config: z.string().nullable().optional()}); export const integrationDetailsSchemaClientSuccess = z.object({name: z.string().optional(), integration_type: z.literal("clientsuccess").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("clientsuccess").optional(), tap_variant: z.string().optional(), username: z.string().optional(), password: z.string().optional()}); export const integrationDetailsSchemaInstagramOutput = z.object({name: z.string().optional(), integration_type: z.literal("instagram").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("instagram").optional(), tap_variant: z.string().optional(), igUserIds: z.string().optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaShipbob = z.object({name: z.string().optional(), integration_type: z.literal("shipbob").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("shipbob").optional(), tap_variant: z.string().optional(), access_token: z.string().optional()}); export const integrationDetailsSchemaJira = z.object({name: z.string().optional(), integration_type: z.literal("jira").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("jira").optional(), tap_variant: z.string().optional(), domain: z.string().optional(), email: z.string().optional(), apiToken: z.string().optional(), startDate: z.string().optional(), cloudId: z.string().nullable().optional()}); export const integrationDetailsSchemaGoogleAnalyticsOutput = z.object({name: z.string().optional(), integration_type: z.literal("googleanalytics").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("googleanalytics").optional(), tap_variant: z.string().optional(), property_id: z.string(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaGoogleAdsOutput = z.object({name: z.string().optional(), integration_type: z.literal("googleads").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("googleads").optional(), tap_variant: z.string().optional(), login_customer_id: z.string(), start_date: z.string().optional(), client_id: z.string(), client_secret: z.string(), developer_token: z.string()}); export const integrationDetailsSchemaMiro = z.object({name: z.string().optional(), integration_type: z.literal("miro").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("miro").optional(), tap_variant: z.string().optional(), organization_id: z.string().optional(), access_token: z.string().optional()}); export const integrationDetailsSchemaDomo = z.object({name: z.string().optional(), integration_type: z.literal("domo").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("domo").optional(), tap_variant: z.string().optional(), data_specs: z.string().optional(), client_secret: z.string().optional(), client_id: z.string().optional()}); export const integrationDetailsSchemaBrillium = z.object({name: z.string().optional(), integration_type: z.literal("brillium").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("brillium").optional(), tap_variant: z.string().optional(), base_uri: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaPlentymarkets = z.object({name: z.string().optional(), integration_type: z.literal("plentymarkets").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("plentymarkets").optional(), tap_variant: z.string().optional(), username: z.string().optional(), password: z.string().optional(), api_url: z.string().optional()}); export const integrationDetailsSchemaMavenLink = z.object({name: z.string().optional(), integration_type: z.literal("mavenlink").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("mavenlink").optional(), tap_variant: z.string().optional(), token: z.string().optional()}); export const integrationDetailsSchemaCloudwatch = z.object({name: z.string().optional(), integration_type: z.literal("cloudwatch").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("cloudwatch").optional(), tap_variant: z.string().optional(), query: z.string().optional(), log_group_name: z.string().optional()}); export const integrationDetailsSchemaWebflow = z.object({name: z.string().optional(), integration_type: z.literal("webflow").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("webflow").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), site_id: z.string().optional()}); export const integrationDetailsSchemaAmazonSellingPartnerOutput = z.object({name: z.string().optional(), integration_type: z.literal("amazonsellingpartner").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("amazonsellingpartner").optional(), tap_variant: z.string().optional(), marketplaces: z.array(z.string()).optional(), start_date: z.string().optional(), client_id: z.string(), client_secret: z.string(), application_id: z.string(), lwa_client_id: z.string(), lwa_client_secret: z.string()}); export const integrationDetailsSchemaMontapacking = z.object({name: z.string().optional(), integration_type: z.literal("montapacking").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("montapacking").optional(), tap_variant: z.string().optional(), username: z.string().optional(), password: z.string().optional()}); export const integrationDetailsSchemaChorusai = z.object({name: z.string().optional(), integration_type: z.literal("chorusai").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("chorusai").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaCurrencyFreaks = z.object({name: z.string().optional(), integration_type: z.literal("currencyfreaks").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("currencyfreaks").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaRecruitee = z.object({name: z.string().optional(), integration_type: z.literal("recruitee").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("recruitee").optional(), tap_variant: z.string().optional(), url: z.string().optional(), company_id: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaHellobaton = z.object({name: z.string().optional(), integration_type: z.literal("hellobaton").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("hellobaton").optional(), tap_variant: z.string().optional(), company: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaFacebookAdsOutput = z.object({name: z.string().optional(), integration_type: z.literal("facebookads").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("facebookads").optional(), tap_variant: z.string().optional(), accountId: z.string().optional(), start_date: z.string().optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaCube = z.object({name: z.string().optional(), integration_type: z.literal("cube").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("cube").optional(), dbIntegrationId: z.string().optional(), enable_cache: z.boolean().optional()}); export const integrationDetailsSchemaZendesk = z.object({name: z.string().optional(), integration_type: z.literal("zendesk").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("zendesk").optional(), tap_variant: z.string().optional(), email: z.string().optional(), api_token: z.string().optional(), subdomain: z.string().optional()}); export const integrationDetailsSchemaPulumiCloud = z.object({name: z.string().optional(), integration_type: z.literal("pulumicloud").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("pulumicloud").optional(), tap_variant: z.string().optional(), token: z.string().optional(), organizations: z.string().optional()}); export const integrationDetailsSchemaNetsuite = z.object({name: z.string().optional(), integration_type: z.literal("netsuite").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("netsuite").optional(), tap_variant: z.string().optional(), ns_account: z.string().optional(), ns_token_key: z.string().optional(), ns_token_secret: z.string().optional(), ns_consumer_key: z.string().optional(), ns_consumer_secret: z.string().optional()}); export const integrationDetailsSchemaShiphero = z.object({name: z.string().optional(), integration_type: z.literal("shiphero").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("shiphero").optional(), tap_variant: z.string().optional(), refresh_token: z.string().optional(), start_date: z.string().optional()}); export const integrationDetailsSchemaAnvil = z.object({name: z.string().optional(), integration_type: z.literal("anvil").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("anvil").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaGainsightPx = z.object({name: z.string().optional(), integration_type: z.literal("gainsightpx").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("gainsightpx").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaSqlServer = z.object({name: z.string().optional(), integration_type: z.literal("sqlserver").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), use_static_egress_ip: z.boolean().optional(), display_name: z.string().optional(), discriminator: z.literal("sqlserver").optional(), username: z.string(), password: z.string(), host: z.string(), port: z.number().int(), database: z.string(), multi_subnet_availability_group: z.boolean().optional()}); export const integrationDetailsSchemaNetlify = z.object({name: z.string().optional(), integration_type: z.literal("netlify").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("netlify").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaTravefy = z.object({name: z.string().optional(), integration_type: z.literal("travefy").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("travefy").optional(), tap_variant: z.string().optional(), public_key: z.string().optional(), private_key: z.string().optional()}); export const integrationDetailsSchemaAmazonAdvertisingOutput = z.object({name: z.string().optional(), integration_type: z.literal("amazonadvertising").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("amazonadvertising").optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaTikTokAds = z.object({name: z.string().optional(), integration_type: z.literal("tiktokads").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("tiktokads").optional(), access_token: z.string().optional(), advertiserId: z.string().optional(), startDate: z.string().optional(), lookback: z.number().int().optional()}); export const integrationDetailsSchemaJotform = z.object({name: z.string().optional(), integration_type: z.literal("jotform").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("jotform").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaMixpanel = z.object({name: z.string().optional(), integration_type: z.literal("mixpanel").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("mixpanel").optional(), tap_variant: z.string().optional(), api_secret: z.string().optional(), project_timezone: z.string().optional(), date_window_size: z.number().int().optional(), attribution_window: z.number().int().optional(), start_date: z.string().optional(), is_eu_data_residency: z.boolean().optional()}); export const integrationDetailsSchemaBambooHr = z.object({name: z.string().optional(), integration_type: z.literal("bamboohr").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("bamboohr").optional(), tap_variant: z.string().optional(), subdomain: z.string().optional(), field_mismatch: z.record(z.string(), z.unknown()).optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaMessagebird = z.object({name: z.string().optional(), integration_type: z.literal("messagebird").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("messagebird").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaPipedrive = z.object({name: z.string().optional(), integration_type: z.literal("pipedrive").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("pipedrive").optional(), tap_variant: z.string().optional(), api_token: z.string().optional(), start_date: z.string().optional()}); export const integrationDetailsSchemaNetohq = z.object({name: z.string().optional(), integration_type: z.literal("netohq").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("netohq").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), username: z.string().optional(), url: z.string().optional()}); export const integrationDetailsSchemaSharepointSitesOutput = z.object({name: z.string().optional(), integration_type: z.literal("sharepointsites").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("sharepointsites").optional(), tap_variant: z.string().optional(), api_url: z.string(), target_table_name: z.string(), file_name: z.string(), folder: z.string().nullable().optional(), file_type: z.string().optional(), sheet_name: z.string().nullable().optional(), min_row: z.number().int().nullable().optional(), max_row: z.number().int().nullable().optional(), min_col: z.number().int().nullable().optional(), max_col: z.number().int().nullable().optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaMemberful = z.object({name: z.string().optional(), integration_type: z.literal("memberful").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("memberful").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaTalkable = z.object({name: z.string().optional(), integration_type: z.literal("talkable").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("talkable").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), site_slug: z.string().optional()}); export const integrationDetailsSchemaNotionOutput = z.object({name: z.string().optional(), integration_type: z.literal("notion").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("notion").optional(), tap_variant: z.string().optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaHolidays = z.object({name: z.string().optional(), integration_type: z.literal("holidays").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("holidays").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaMonday = z.object({name: z.string().optional(), integration_type: z.literal("monday").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("monday").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaAmazonAssociates = z.object({name: z.string().optional(), integration_type: z.literal("amazonassociates").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("amazonassociates").optional(), tap_variant: z.string().optional(), username: z.string().optional(), password: z.string().optional()}); export const integrationDetailsSchemaAwsCognito = z.object({name: z.string().optional(), integration_type: z.literal("awscognito").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("awscognito").optional(), tap_variant: z.string().optional(), pool_id: z.string().optional()}); export const integrationDetailsSchemaShoplazza = z.object({name: z.string().optional(), integration_type: z.literal("shoplazza").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("shoplazza").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaDixa = z.object({name: z.string().optional(), integration_type: z.literal("dixa").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("dixa").optional(), tap_variant: z.string().optional(), api_token: z.string().optional()}); export const integrationDetailsSchemaOkta = z.object({name: z.string().optional(), integration_type: z.literal("okta").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("okta").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), service_url: z.string().optional()}); export const integrationDetailsSchemaMarketplacer = z.object({name: z.string().optional(), integration_type: z.literal("marketplacer").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("marketplacer").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaKeap = z.object({name: z.string().optional(), integration_type: z.literal("keap").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("keap").optional(), tap_variant: z.string().optional(), client_id: z.string().optional(), client_secret: z.string().optional()}); export const integrationDetailsSchemaAcuite = z.object({name: z.string().optional(), integration_type: z.literal("acuite").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("acuite").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaActiveCampaign = z.object({name: z.string().optional(), integration_type: z.literal("activecampaign").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("activecampaign").optional(), tap_variant: z.string().optional(), api_url: z.string().optional(), api_token: z.string().optional(), start_date: z.string().optional(), user_agent: z.string().optional()}); export const integrationDetailsSchemaLightdash = z.object({name: z.string().optional(), integration_type: z.literal("lightdash").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("lightdash").optional(), tap_variant: z.string().optional(), url: z.string().optional()}); export const integrationDetailsSchemaTypeform = z.object({name: z.string().optional(), integration_type: z.literal("typeform").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("typeform").optional(), tap_variant: z.string().optional(), personal_access_token: z.string().optional()}); export const integrationDetailsSchemaSegment = z.object({name: z.string().optional(), integration_type: z.literal("segment").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("segment").optional(), tap_variant: z.string().optional(), api_token: z.string().optional()}); export const integrationDetailsSchemaMailerlite = z.object({name: z.string().optional(), integration_type: z.literal("mailerlite").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("mailerlite").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaIterable = z.object({name: z.string().optional(), integration_type: z.literal("iterable").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("iterable").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), api_window_in_days: z.number().int().optional()}); export const integrationDetailsSchemaTwilio = z.object({name: z.string().optional(), integration_type: z.literal("twilio").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("twilio").optional(), tap_variant: z.string().optional(), account_sid: z.string().optional(), auth_token: z.string().optional(), start_date: z.string().optional()}); export const integrationDetailsSchemaRedshift = z.object({name: z.string().optional(), integration_type: z.literal("redshift").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), username: z.string(), password: z.string(), host: z.string(), port: z.number().int(), database: z.string(), use_static_egress_ip: z.boolean().optional(), display_name: z.string().optional(), discriminator: z.literal("redshift").optional()}); export const integrationDetailsSchemaBigMarker = z.object({name: z.string().optional(), integration_type: z.literal("bigmarker").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("bigmarker").optional(), tap_variant: z.string().optional(), api_url: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaLoopreturns = z.object({name: z.string().optional(), integration_type: z.literal("loopreturns").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("loopreturns").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaLessonly = z.object({name: z.string().optional(), integration_type: z.literal("lessonly").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("lessonly").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), subdomain: z.string().optional()}); export const sshConfig = z.object({server: z.string().optional(), port: z.number().int().optional(), user: z.string().optional(), private_key: z.string().nullable().optional()}); export const integrationDetailsSchemaMySql = z.object({name: z.string().optional(), integration_type: z.literal("mysql").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), username: z.string(), password: z.string(), host: z.string(), port: z.number().int(), database: z.string(), use_static_egress_ip: z.boolean().optional(), display_name: z.string().optional(), discriminator: z.literal("mysql").optional(), ssh_config: sshConfig.nullable().optional()}); export const integrationDetailsSchemaPartoo = z.object({name: z.string().optional(), integration_type: z.literal("partoo").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("partoo").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaFacebookAdsSystemUser = z.object({name: z.string().optional(), integration_type: z.literal("facebookads_system_user").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("facebookads_system_user").optional(), tap_variant: z.string().optional(), access_token: z.string().optional(), accountId: z.string().optional(), startDate: z.string().optional()}); export const integrationDetailsSchemaSquare = z.object({name: z.string().optional(), integration_type: z.literal("square").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("square").optional(), tap_variant: z.string().optional(), access_token: z.string().optional()}); export const integrationDetailsSchemaBigquery = z.object({name: z.string().optional(), integration_type: z.literal("bigquery").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), serviceAccountKey: z.record(z.string(), z.unknown()).nullable().optional(), project_id: z.string().nullable().optional(), discriminator: z.literal("bigquery").optional(), display_name: z.string().optional()}); export const integrationDetailsSchemaSleeper = z.object({name: z.string().optional(), integration_type: z.literal("sleeper").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("sleeper").optional(), tap_variant: z.string().optional(), sport: z.string().optional()}); export const integrationDetailsSchemaDatadog = z.object({name: z.string().optional(), integration_type: z.literal("datadog").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("datadog").optional(), tap_variant: z.string().optional(), app_key: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaSumologic = z.object({name: z.string().optional(), integration_type: z.literal("sumologic").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("sumologic").optional(), tap_variant: z.string().optional(), sumologic_access_id: z.string().optional(), sumologic_access_key: z.string().optional(), sumologic_root_url: z.string().optional()}); export const integrationDetailsSchemaGreenhouse = z.object({name: z.string().optional(), integration_type: z.literal("greenhouse").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("greenhouse").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaZohoCrmOutput = z.object({name: z.string().optional(), integration_type: z.literal("zohocrm").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("zohocrm").optional(), tap_variant: z.string().optional(), start_date: z.string().optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaShipstation = z.object({name: z.string().optional(), integration_type: z.literal("shipstation").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("shipstation").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), api_secret: z.string().optional(), default_start_datetime: z.string().optional()}); export const integrationDetailsSchemaSalesforceOutput = z.object({name: z.string().optional(), integration_type: z.literal("salesforce").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("salesforce").optional(), tap_variant: z.string().optional(), login_domain: z.string().optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaNiceIncontact = z.object({name: z.string().optional(), integration_type: z.literal("niceincontact").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("niceincontact").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), api_secret: z.string().optional(), api_cluster: z.string().optional()}); export const integrationDetailsSchemaFullstory = z.object({name: z.string().optional(), integration_type: z.literal("fullstory").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("fullstory").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaSendinblue = z.object({name: z.string().optional(), integration_type: z.literal("sendinblue").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("sendinblue").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaZammad = z.object({name: z.string().optional(), integration_type: z.literal("zammad").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("zammad").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional(), api_base_url: z.string().optional()}); export const integrationDetailsSchemaSlackOutput = z.object({name: z.string().optional(), integration_type: z.literal("slack").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("slack").optional(), slack_team_id: z.string().optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaPodBean = z.object({name: z.string().optional(), integration_type: z.literal("podbean").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("podbean").optional(), tap_variant: z.string().optional(), client_secret: z.string().optional(), client_id: z.string().optional()}); export const integrationDetailsSchemaMindstamp = z.object({name: z.string().optional(), integration_type: z.literal("mindstamp").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("mindstamp").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaAppleHealth = z.object({name: z.string().optional(), integration_type: z.literal("applehealth").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("applehealth").optional(), tap_variant: z.string().optional(), file_path: z.string().optional()}); export const integrationDetailsSchemaClickcast = z.object({name: z.string().optional(), integration_type: z.literal("clickcast").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("clickcast").optional(), tap_variant: z.string().optional(), partner_token: z.string().optional()}); export const integrationDetailsSchemaMarketo = z.object({name: z.string().optional(), integration_type: z.literal("marketo").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("marketo").optional(), tap_variant: z.string().optional(), client_id: z.string().optional(), client_secret: z.string().optional(), endpoint: z.string().optional()}); export const integrationDetailsSchemaS3 = z.object({name: z.string().optional(), integration_type: z.literal("s3").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("S3").optional(), tap_variant: z.string().optional(), access_key: z.string(), access_key_secret: z.string(), region: z.string(), bucket: z.string().nullable().optional(), dataset: z.string().nullable().optional(), primary_key: z.string().nullable().optional(), path_pattern: z.string().nullable().optional(), format: z.string().nullable().optional(), is_posthog: z.boolean().optional()}); export const integrationDetailsSchemaAtInternet = z.object({name: z.string().optional(), integration_type: z.literal("atinternet").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("atinternet").optional(), tap_variant: z.string().optional(), site_id: z.number().int().optional(), secret_key: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaImmuta = z.object({name: z.string().optional(), integration_type: z.literal("immuta").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("immuta").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), hostname: z.string().optional()}); export const integrationDetailsSchemaClickup = z.object({name: z.string().optional(), integration_type: z.literal("clickup").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("clickup").optional(), tap_variant: z.string().optional(), api_token: z.string().optional()}); export const integrationDetailsSchemaDagster = z.object({name: z.string().optional(), integration_type: z.literal("dagster").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("dagster").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional(), api_url: z.string().optional()}); export const integrationDetailsSchemaFishbowl = z.object({name: z.string().optional(), integration_type: z.literal("fishbowl").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("fishbowl").optional(), tap_variant: z.string().optional(), username: z.string().optional(), password: z.string().optional(), instance: z.string().optional(), app_name: z.string().optional(), app_id: z.string().optional()}); export const integrationDetailsSchemaPicqer = z.object({name: z.string().optional(), integration_type: z.literal("picqer").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("picqer").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaStripe = z.object({name: z.string().optional(), integration_type: z.literal("stripe").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("stripe").optional(), tap_variant: z.string().optional(), account_id: z.string().optional(), client_secret: z.string().optional(), sigma_queries: z.string().nullable().optional()}); export const integrationDetailsSchemaIntercomOutput = z.object({name: z.string().optional(), integration_type: z.literal("intercom").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("intercom").optional(), tap_variant: z.string().optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaDucklake = z.object({name: z.string().optional(), integration_type: z.literal("ducklake").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), discriminator: z.literal("ducklake").optional(), display_name: z.string().optional(), region: z.enum(["US", "EU", "EUROPE-WEST2", "ASIA", "AUSTRALIA-SOUTHEAST1"]).optional(), history_days: z.number().int().gte(0).optional(), batch_size_rows_override: z.number().int().nullable().optional(), pg_host: z.string().nullable().optional(), pg_port: z.number().int().nullable().optional(), pg_supavisor_port: z.number().int().nullable().optional(), pg_database: z.string().nullable().optional(), pg_schema: z.string().nullable().optional(), pg_user: z.string().nullable().optional(), pg_password: z.string().nullable().optional(), pg_role: z.string().nullable().optional(), usePgbouncer: z.boolean().optional(), pgbouncerFlaggedAt: z.string().nullable().optional(), usesSharedRuntime: z.boolean().optional(), gcs_bucket_path: z.string().nullable().optional(), gcs_access_key_id: z.string().nullable().optional(), gcs_secret_access_key: z.string().nullable().optional(), gcp_service_account_email: z.string().nullable().optional(), serviceAccountKey: z.record(z.string(), z.unknown()).nullable().optional(), ducklake_max_retry_count: z.number().int().gte(0).nullable().optional(), ducklake_retry_wait_ms: z.number().int().gte(0).nullable().optional(), ducklake_retry_backoff: z.number().gte(1).nullable().optional(), server_url: z.string().nullable().optional(), default_schema: z.string().nullable().optional(), rewrite_to_integration_id: z.string().nullable().optional()}); export const integrationDetailsSchemaSailthru = z.object({name: z.string().optional(), integration_type: z.literal("sailthru").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("sailthru").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), api_secret: z.string().optional(), account_name: z.string().optional()}); export const integrationDetailsSchemaVeeqo = z.object({name: z.string().optional(), integration_type: z.literal("veeqo").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("veeqo").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaTradera = z.object({name: z.string().optional(), integration_type: z.literal("tradera").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("tradera").optional(), tap_variant: z.string().optional(), app_key: z.string().optional(), app_id: z.string().optional()}); export const integrationDetailsSchemaAppStore = z.object({name: z.string().optional(), integration_type: z.literal("appstore").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("appstore").optional(), tap_variant: z.string().optional(), vendor: z.string().optional(), key_id: z.string().optional(), key_file: z.string().optional(), issuer_id: z.string().optional()}); export const integrationDetailsSchemaCloseio = z.object({name: z.string().optional(), integration_type: z.literal("closeio").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("closeio").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaDashHudson = z.object({name: z.string().optional(), integration_type: z.literal("dashhudson").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("dashhudson").optional(), tap_variant: z.string().optional(), brand_id: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaPartnerize = z.object({name: z.string().optional(), integration_type: z.literal("partnerize").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("partnerize").optional(), tap_variant: z.string().optional(), username: z.string().optional(), publisher_id: z.string().optional(), password: z.string().optional()}); export const integrationDetailsSchemaAircall = z.object({name: z.string().optional(), integration_type: z.literal("aircall").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("aircall").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), api_token: z.string().optional()}); export const integrationDetailsSchemaHubspot = z.object({name: z.string().optional(), integration_type: z.literal("hubspot").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("hubspot").optional(), access_token: z.string().optional()}); export const integrationDetailsSchemaQualified = z.object({name: z.string().optional(), integration_type: z.literal("qualified").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("qualified").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaGong = z.object({name: z.string().optional(), integration_type: z.literal("gong").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("gong").optional(), tap_variant: z.string().optional(), access_key: z.string().optional(), access_key_secret: z.string().optional()}); export const integrationDetailsSchemaCanvas = z.object({name: z.string().optional(), integration_type: z.literal("canvas").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("canvas").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaMegaphone = z.object({name: z.string().optional(), integration_type: z.literal("megaphone").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("megaphone").optional(), tap_variant: z.string().optional(), organization_id: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaGoogleSheetsOutput = z.object({name: z.string().optional(), integration_type: z.literal("googlesheets").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("googlesheets").optional(), tap_variant: z.string().optional(), sheet_id: z.string(), key_properties: z.string().nullable().optional(), child_sheet_name: z.string().nullable().optional(), stream_name: z.string().nullable().optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaSalesloft = z.object({name: z.string().optional(), integration_type: z.literal("salesloft").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("salesloft").optional(), api_key: z.string()}); export const integrationDetailsSchemaGoogleSearchConsoleOutput = z.object({name: z.string().optional(), integration_type: z.literal("googlesearchconsole").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("googlesearchconsole").optional(), tap_variant: z.string().optional(), site_urls: z.string().nullable().optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaCoinGecko = z.object({name: z.string().optional(), integration_type: z.literal("coingecko").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("coingecko").optional(), tap_variant: z.string().optional(), token: z.string().optional()}); export const integrationDetailsSchemaMode = z.object({name: z.string().optional(), integration_type: z.literal("mode").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("mode").optional(), tap_variant: z.string().optional(), workspace: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaFreshworks = z.object({name: z.string().optional(), integration_type: z.literal("freshworks").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("freshworks").optional(), tap_variant: z.string().optional(), org_name: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaADP = z.object({name: z.string().optional(), integration_type: z.literal("adp").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("adp").optional(), tap_variant: z.string().optional(), client_id: z.string().optional(), client_secret: z.string().optional(), public_ssl_certificate: z.string().optional(), private_ssl_key: z.string().optional()}); export const integrationDetailsSchemaGcs = z.object({name: z.string().optional(), integration_type: z.literal("gcs").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), serviceAccountKey: z.record(z.string(), z.unknown()).nullable().optional(), project_id: z.string().nullable().optional(), discriminator: z.literal("gcs").optional(), display_name: z.string().optional()}); export const integrationDetailsSchemaLinkedinAds = z.object({name: z.string().optional(), integration_type: z.literal("linkedinads").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("linkedinads").optional(), access_token: z.string().optional(), accounts: z.string().optional(), campaign: z.string().optional(), campaign_group: z.string().optional(), creative: z.string().optional(), owner: z.string().optional()}); export const integrationDetailsSchemaApaleo = z.object({name: z.string().optional(), integration_type: z.literal("apaleo").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("apaleo").optional(), tap_variant: z.string().optional(), client_secret: z.string().optional(), client_id: z.string().optional()}); export const integrationDetailsSchemaCustom = z.object({name: z.string().optional(), integration_type: z.literal("custom").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), discriminator: z.literal("custom").optional(), display_name: z.string().optional(), secrets: z.record(z.string(), z.string()).optional()}).and(z.record(z.string(), z.unknown())); export const integrationDetailsSchemaEmarsys = z.object({name: z.string().optional(), integration_type: z.literal("emarsys").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("emarsys").optional(), tap_variant: z.string().optional(), username: z.string().optional(), secret: z.string().optional()}); export const sslConfig = z.object({certificate_authority: z.string().optional(), client_certificate: z.string().optional(), client_certificate_enable: z.boolean().optional(), client_private_key: z.string().optional(), mode: z.string().optional()}); export const integrationDetailsSchemaPostgres = z.object({name: z.string().optional(), integration_type: z.literal("postgres").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), username: z.string(), password: z.string(), host: z.string(), port: z.number().int().optional(), database: z.string(), use_static_egress_ip: z.boolean().optional(), display_name: z.string().optional(), discriminator: z.literal("postgres").optional(), use_ssh: z.boolean().optional(), ssh_config: sshConfig.nullable().optional(), use_ssl: z.boolean().optional(), ssl_config: sslConfig.nullable().optional()}); export const integrationDetailsSchemaAmplitude = z.object({name: z.string().optional(), integration_type: z.literal("amplitude").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("amplitude").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), secret_key: z.string().optional(), is_eu_data_region: z.boolean().optional(), start_date: z.string().optional()}); export const integrationDetailsSchemaHotjar = z.object({name: z.string().optional(), integration_type: z.literal("hotjar").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("hotjar").optional(), tap_variant: z.string().optional(), email: z.string().optional(), password: z.string().optional()}); export const integrationDetailsSchemaExcelOutput = z.object({name: z.string().optional(), integration_type: z.literal("excel").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("excel").optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaWoocommerce = z.object({name: z.string().optional(), integration_type: z.literal("woocommerce").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("woocommerce").optional(), tap_variant: z.string().optional(), consumer_key: z.string().optional(), consumer_secret: z.string().optional(), site_url: z.string().optional()}); export const integrationDetailsSchemaSheetsOutput = z.object({name: z.string().optional(), integration_type: z.literal("sheets").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("sheets").optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaMongoDB = z.object({name: z.string().optional(), integration_type: z.literal("mongodb").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("mongodb").optional(), tap_variant: z.string().optional(), username: z.string(), password: z.string(), host: z.string(), port: z.number().int().optional(), database_includes: z.string().optional(), database_excludes: z.string().optional(), use_ssh: z.boolean().optional(), ssh_config: sshConfig.nullable().optional(), use_static_egress_ip: z.boolean().optional()}); export const integrationDetailsSchemaNetrivals = z.object({name: z.string().optional(), integration_type: z.literal("netrivals").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("netrivals").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaMsGraph = z.object({name: z.string().optional(), integration_type: z.literal("msgraph").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("msgraph").optional(), tap_variant: z.string().optional(), client_secret: z.string().optional(), tenant: z.string().optional(), client_id: z.string().optional()}); export const integrationDetailsSchemaSnowflake = z.object({name: z.string().optional(), integration_type: z.literal("snowflake").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), use_static_egress_ip: z.boolean().optional(), display_name: z.string().optional(), discriminator: z.literal("snowflake").optional(), username: z.string(), password: z.string(), account: z.string(), role: z.string(), warehouse: z.string().nullable(), database: z.string(), asyncExec: z.boolean().nullable().optional()}); export const integrationDetailsSchemaMoosend = z.object({name: z.string().optional(), integration_type: z.literal("moosend").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("moosend").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaUnleashed = z.object({name: z.string().optional(), integration_type: z.literal("unleashed").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("unleashed").optional(), tap_variant: z.string().optional(), api_auth_signature: z.string().optional(), api_auth_id: z.string().optional(), startDate: z.string().optional()}); export const integrationDetailsSchemaBazaarvoice = z.object({name: z.string().optional(), integration_type: z.literal("bazaarvoice").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("bazaarvoice").optional(), tap_variant: z.string().optional(), api_version: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaQuickbooksOutput = z.object({name: z.string().optional(), integration_type: z.literal("quickbooks").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), code: z.string(), redirectUri: z.string().optional(), accessToken: z.string().optional(), timestamp: z.string().optional(), expires_in: z.number().int().optional(), refreshToken: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("quickbooks").optional(), tap_variant: z.string().optional(), realmId: z.string(), start_date: z.string().optional(), client_id: z.string(), client_secret: z.string()}); export const integrationDetailsSchemaMetronome = z.object({name: z.string().optional(), integration_type: z.literal("metronome").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("metronome").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaAwsCostExplorer = z.object({name: z.string().optional(), integration_type: z.literal("awscostexplorer").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("awscostexplorer").optional(), tap_variant: z.string().optional(), secret_key: z.string().optional(), metrics: z.array(z.string()).optional(), granularity: z.string().optional(), access_key: z.string().optional()}); export const integrationDetailsSchemaAbra = z.object({name: z.string().optional(), integration_type: z.literal("abra").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("abra").optional(), tap_variant: z.string().optional(), username: z.string().optional(), password: z.string().optional()}); export const integrationDetailsSchemaLinear = z.object({name: z.string().optional(), integration_type: z.literal("linear").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("linear").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional(), start_date: z.string().optional()}); export const integrationDetailsSchemaMercadopago = z.object({name: z.string().optional(), integration_type: z.literal("mercadopago").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("mercadopago").optional(), tap_variant: z.string().optional(), auth_token: z.string().optional()}); export const integrationDetailsSchemaGladly = z.object({name: z.string().optional(), integration_type: z.literal("gladly").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("gladly").optional(), tap_variant: z.string().optional(), username: z.string().optional(), password: z.string().optional()}); export const integrationDetailsSchemaAttio = z.object({name: z.string().optional(), integration_type: z.literal("attio").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("attio").optional(), tap_variant: z.string().optional(), access_token: z.string().optional()}); export const integrationDetailsSchemaShowpad = z.object({name: z.string().optional(), integration_type: z.literal("showpad").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("showpad").optional(), tap_variant: z.string().optional(), api_key: z.string().optional(), subdomain: z.string().optional()}); export const integrationDetailsSchemaAftership = z.object({name: z.string().optional(), integration_type: z.literal("aftership").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("aftership").optional(), tap_variant: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaFreshcaller = z.object({name: z.string().optional(), integration_type: z.literal("freshcaller").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("freshcaller").optional(), tap_variant: z.string().optional(), org_name: z.string().optional(), api_key: z.string().optional()}); export const integrationDetailsSchemaQls = z.object({name: z.string().optional(), integration_type: z.literal("qls").optional(), category: z.string().optional(), etlConfig: integrationETLConfig.nullable().optional(), internal: z.boolean().optional(), is_valid: z.boolean().optional(), error: z.string().optional(), display_name: z.string().optional(), discriminator: z.literal("qls").optional(), tap_variant: z.string().optional(), company_id: z.string().optional(), username: z.string().optional(), password: z.string().optional()}); export const anyIntegrationDetailsSchemaOutput = z.discriminatedUnion("integration_type", [integrationDetailsSchemaFastly, integrationDetailsSchemaAirtable, integrationDetailsSchemaUdemyForBusiness, integrationDetailsSchemaGetPocket, integrationDetailsSchemaSellsy, integrationDetailsSchemaShopify, integrationDetailsSchemaMailjet, integrationDetailsSchemaLinkedinPagesOutput, integrationDetailsSchemaTrustrace, integrationDetailsSchemaMaestroqa, integrationDetailsSchemaOmnisend, integrationDetailsSchemaPeloton, integrationDetailsSchemaKlaviyo, integrationDetailsSchemaStamped, integrationDetailsSchemaAbicart, integrationDetailsSchemaGithub, integrationDetailsSchemaRecurly, integrationDetailsSchemaThinkific, integrationDetailsSchemaBexio, integrationDetailsSchemaSmartsheet, integrationDetailsSchemaKrow, integrationDetailsSchemaJudgeme, integrationDetailsSchemaFreshdesk, integrationDetailsSchemaAskNicely, integrationDetailsSchemaOrdoro, integrationDetailsSchemaAcumatica, integrationDetailsSchemaIceberg, integrationDetailsSchemaClientSuccess, integrationDetailsSchemaInstagramOutput, integrationDetailsSchemaShipbob, integrationDetailsSchemaJira, integrationDetailsSchemaGoogleAnalyticsOutput, integrationDetailsSchemaGoogleAdsOutput, integrationDetailsSchemaMiro, integrationDetailsSchemaDomo, integrationDetailsSchemaBrillium, integrationDetailsSchemaPlentymarkets, integrationDetailsSchemaMavenLink, integrationDetailsSchemaCloudwatch, integrationDetailsSchemaWebflow, integrationDetailsSchemaAmazonSellingPartnerOutput, integrationDetailsSchemaMontapacking, integrationDetailsSchemaChorusai, integrationDetailsSchemaCurrencyFreaks, integrationDetailsSchemaRecruitee, integrationDetailsSchemaHellobaton, integrationDetailsSchemaFacebookAdsOutput, integrationDetailsSchemaCube, integrationDetailsSchemaZendesk, integrationDetailsSchemaPulumiCloud, integrationDetailsSchemaNetsuite, integrationDetailsSchemaShiphero, integrationDetailsSchemaAnvil, integrationDetailsSchemaGainsightPx, integrationDetailsSchemaSqlServer, integrationDetailsSchemaNetlify, integrationDetailsSchemaTravefy, integrationDetailsSchemaAmazonAdvertisingOutput, integrationDetailsSchemaTikTokAds, integrationDetailsSchemaJotform, integrationDetailsSchemaMixpanel, integrationDetailsSchemaBambooHr, integrationDetailsSchemaMessagebird, integrationDetailsSchemaPipedrive, integrationDetailsSchemaNetohq, integrationDetailsSchemaSharepointSitesOutput, integrationDetailsSchemaMemberful, integrationDetailsSchemaTalkable, integrationDetailsSchemaNotionOutput, integrationDetailsSchemaHolidays, integrationDetailsSchemaMonday, integrationDetailsSchemaAmazonAssociates, integrationDetailsSchemaAwsCognito, integrationDetailsSchemaShoplazza, integrationDetailsSchemaDixa, integrationDetailsSchemaOkta, integrationDetailsSchemaMarketplacer, integrationDetailsSchemaKeap, integrationDetailsSchemaAcuite, integrationDetailsSchemaActiveCampaign, integrationDetailsSchemaLightdash, integrationDetailsSchemaTypeform, integrationDetailsSchemaSegment, integrationDetailsSchemaMailerlite, integrationDetailsSchemaIterable, integrationDetailsSchemaTwilio, integrationDetailsSchemaRedshift, integrationDetailsSchemaBigMarker, integrationDetailsSchemaLoopreturns, integrationDetailsSchemaLessonly, integrationDetailsSchemaMySql, integrationDetailsSchemaPartoo, integrationDetailsSchemaFacebookAdsSystemUser, integrationDetailsSchemaSquare, integrationDetailsSchemaBigquery, integrationDetailsSchemaSleeper, integrationDetailsSchemaDatadog, integrationDetailsSchemaSumologic, integrationDetailsSchemaGreenhouse, integrationDetailsSchemaZohoCrmOutput, integrationDetailsSchemaShipstation, integrationDetailsSchemaSalesforceOutput, integrationDetailsSchemaNiceIncontact, integrationDetailsSchemaFullstory, integrationDetailsSchemaSendinblue, integrationDetailsSchemaZammad, integrationDetailsSchemaSlackOutput, integrationDetailsSchemaPodBean, integrationDetailsSchemaMindstamp, integrationDetailsSchemaAppleHealth, integrationDetailsSchemaClickcast, integrationDetailsSchemaMarketo, integrationDetailsSchemaS3, integrationDetailsSchemaAtInternet, integrationDetailsSchemaImmuta, integrationDetailsSchemaClickup, integrationDetailsSchemaDagster, integrationDetailsSchemaFishbowl, integrationDetailsSchemaPicqer, integrationDetailsSchemaStripe, integrationDetailsSchemaIntercomOutput, integrationDetailsSchemaDucklake, integrationDetailsSchemaSailthru, integrationDetailsSchemaVeeqo, integrationDetailsSchemaTradera, integrationDetailsSchemaAppStore, integrationDetailsSchemaCloseio, integrationDetailsSchemaDashHudson, integrationDetailsSchemaPartnerize, integrationDetailsSchemaAircall, integrationDetailsSchemaHubspot, integrationDetailsSchemaQualified, integrationDetailsSchemaGong, integrationDetailsSchemaCanvas, integrationDetailsSchemaMegaphone, integrationDetailsSchemaGoogleSheetsOutput, integrationDetailsSchemaSalesloft, integrationDetailsSchemaGoogleSearchConsoleOutput, integrationDetailsSchemaCoinGecko, integrationDetailsSchemaMode, integrationDetailsSchemaFreshworks, integrationDetailsSchemaADP, integrationDetailsSchemaGcs, integrationDetailsSchemaLinkedinAds, integrationDetailsSchemaApaleo, integrationDetailsSchemaCustom, integrationDetailsSchemaEmarsys, integrationDetailsSchemaPostgres, integrationDetailsSchemaAmplitude, integrationDetailsSchemaHotjar, integrationDetailsSchemaExcelOutput, integrationDetailsSchemaWoocommerce, integrationDetailsSchemaSheetsOutput, integrationDetailsSchemaMongoDB, integrationDetailsSchemaNetrivals, integrationDetailsSchemaMsGraph, integrationDetailsSchemaSnowflake, integrationDetailsSchemaMoosend, integrationDetailsSchemaUnleashed, integrationDetailsSchemaBazaarvoice, integrationDetailsSchemaQuickbooksOutput, integrationDetailsSchemaMetronome, integrationDetailsSchemaAwsCostExplorer, integrationDetailsSchemaAbra, integrationDetailsSchemaLinear, integrationDetailsSchemaMercadopago, integrationDetailsSchemaGladly, integrationDetailsSchemaAttio, integrationDetailsSchemaShowpad, integrationDetailsSchemaAftership, integrationDetailsSchemaFreshcaller, integrationDetailsSchemaQls]); export const integration = z.object({id: z.union([z.string(), z.string()]).optional(), team_id: z.union([z.string(), z.string()]).optional(), user_id: z.union([z.string(), z.string()]).optional(), type: integrationType, details: anyIntegrationDetailsSchemaOutput, sync_enabled: z.boolean().nullable().optional(), created_at: z.string().optional(), updated_at: z.string().optional()}); export const createIntegrationApiResponse = z.object({integration: integration, message: 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 }; /** * Create integration * * POST /v1/api/integrations */ export const createApiV1ApiIntegrations = async (args: CreateApiV1ApiIntegrationsArgs, options: CreateApiV1ApiIntegrationsOptions) => { const {baseUrl, fetch: fetchFn = fetch, AsyncAPIKeyHeaderAuthenticator} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (AsyncAPIKeyHeaderAuthenticator !== undefined) headers.set("Authorization", AsyncAPIKeyHeaderAuthenticator) const url = `${baseUrl.replace(/\/+$/, '')}/v1/api/integrations${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(createIntegrationApiResponse, await res.json()) };