import {z} from 'zod' export type GetApiApiV1AiJobsJobIdVisArgs = {jobId: string, auto_vis?: string | undefined, debug?: string | undefined, format?: ('png' | 'html') | undefined, theme?: ('light' | 'dark') | undefined}; export type GetApiApiV1AiJobsJobIdVisOptions = {baseUrl: string, bearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const aiJobVisNonNullJsonValue: z.ZodType = z.union([z.string(), z.number(), z.boolean(), z.array(z.lazy(() => aiJobVisNonNullJsonValue.nullable())), z.record(z.string(), z.lazy(() => aiJobVisNonNullJsonValue.nullable()))]); export const jsonValue: z.ZodType = z.union([z.string(), z.number(), z.boolean(), z.record(z.string(), z.lazy(() => jsonValue.nullable())), z.array(z.lazy(() => jsonValue.nullable()))]).nullable(); export const compositeFilter: z.ZodType = z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), conjunction: z.enum(["OR", "AND"]), filters: z.array(z.union([z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), appliedLabels: z.record(z.string(), z.string()).optional(), case_insensitive: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), kind: z.enum(["CONTAINS", "ENDS_WITH", "STARTS_WITH", "EQUALS", "IS_EMPTY", "SQL_LIKE"]), type: z.literal("string"), values: z.array(z.string())}), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), is_inclusive: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), kind: z.enum(["LESS_THAN", "GREATER_THAN", "EQUALS", "BETWEEN"]), type: z.literal("number"), values: z.array(z.union([z.string(), z.number()]))}), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), isFiscal: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), kind: z.enum(["IS_ON_DAY_OF_WEEK", "IS_ON_DAY_OF_QUARTER", "IS_IN_MONTH_OF_YEAR", "IS_ON_DAY_OF_YEAR", "IS_AT_HOUR_OF_DAY", "IS_IN_QUARTER_OF_YEAR", "IS_IN_WEEK_OF_YEAR", "IS_ON_DAY_OF_MONTH", "BETWEEN", "ON_OR_AFTER", "BEFORE", "TIME_FOR_INTERVAL_DURATION", "TIME_FOR_UNIT_DURATION", "QUERY_OFFSET"]), left_side: z.string().nullable().optional(), offset_interval_string: z.string().nullable().optional(), right_side: z.string().nullable().optional(), type: z.literal("date"), ui_type: z.enum(["ANY_TIME", "BEFORE", "BETWEEN", "MONTH_OF_YEAR", "PAST", "YEAR", "DAY", "IS_ON_DAY_OF_WEEK", "ON_OR_AFTER", "IS_IN_THE_MONTH", "IS_IN_THE_QUARTER", "IS_IN_THE_FISCAL_QUARTER", "IS_IN_THE_FISCAL_YEAR", "TIME_FOR_INTERVAL_DURATION", "TIME_FOR_UNIT_DURATION", "CUSTOM", "null"]).nullable().optional()}), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), type: z.literal("null")}), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), treat_nulls_as_false: z.boolean().optional(), type: z.literal("boolean")}), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), disregard_limit: z.boolean().optional(), field_name: z.string().optional(), is_negative: z.boolean().nullable().optional(), query_id: z.string().optional(), type: z.literal("query"), view_query: z.object({fields: z.array(z.string()), filters: z.record(z.string(), z.unknown()).optional(), limit: z.number().optional(), sorts: z.array(z.unknown()).optional(), table: z.string().optional()}).and(z.record(z.string(), z.unknown())).optional()}), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), type: z.literal("user_attribute"), user_attribute_name: z.string()}), z.lazy(() => compositeFilter)])), is_negative: z.boolean().nullable().optional(), type: z.literal("composite")}); export const omniQuery = z.object({aiGenerated: z.boolean().optional(), branch_id: z.string().optional(), calculations: z.array(z.object({allow_refs_to_unselected_fields: z.boolean().optional(), anchor_row: z.number().int().gt(0).optional(), calc_name: z.string(), description: z.string().optional(), format: z.string().optional(), label: z.string().optional(), original_formula: z.string().optional(), outside_pivot: z.boolean().optional(), pushdown: z.boolean().nullable().optional(), sql: z.string().optional(), sql_expression: z.unknown(), swallow_errors: z.boolean().optional()}).and(z.record(z.string(), z.unknown()))), column_limit: z.number().optional(), column_totals: z.record(z.string(), z.object({type: z.literal("aggregation")})), controls: z.array(z.union([z.object({description: z.string().optional(), hidden: z.boolean().optional(), id: z.string(), label: z.string().optional(), display: z.enum(["SELECT", "BUTTON_TOGGLE"]).optional(), field: z.string(), kind: z.enum(["FIELD", "TIMEFRAME"]), options: z.array(z.object({isDimension: z.boolean().optional(), label: z.string(), topicLabel: z.string().optional(), value: z.string(), viewLabel: z.string().optional()})), type: z.literal("FIELD_SELECTION")}), z.object({description: z.string().optional(), hidden: z.boolean().optional(), id: z.string(), label: z.string().optional(), display: z.enum(["SELECT", "BUTTON_TOGGLE"]).optional(), options: z.array(z.object({label: z.string(), value: z.string()})), selectionMap: z.record(z.string(), z.record(z.string(), z.string())), type: z.literal("MULTI_FIELD_SELECTION"), value: z.string().optional()}), z.object({computations: z.array(z.object({filterId: z.string().optional(), isDynamicPreviousPeriod: z.boolean().optional(), periodsAgo: z.number().nullable(), timeUnitName: z.string().nullable()})), filterFieldName: z.string(), filterId: z.string().optional(), id: z.string(), type: z.literal("PERIOD_OVER_PERIOD")}), z.object({description: z.string().optional(), hidden: z.boolean().optional(), id: z.string(), label: z.string().optional(), fieldOrder: z.enum(["query", "control"]).optional(), options: z.array(z.object({isDimension: z.boolean().optional(), label: z.string(), topicLabel: z.string().optional(), value: z.string(), viewLabel: z.string().optional()})), type: z.literal("FIELD_PICKER"), values: z.array(z.string()).optional()}), z.object({description: z.string().optional(), hidden: z.boolean().optional(), id: z.string(), label: z.string().optional(), conjunction: z.literal("OR"), filters: z.array(z.object({fieldName: z.string(), filter: jsonValue, id: z.string()})), type: z.literal("MULTI_FIELD_FILTER")}), z.object({description: z.string().optional(), hidden: z.boolean().optional(), id: z.string(), label: z.string().optional(), fieldSelection: z.union([z.object({mode: z.literal("full-model")}), z.object({mode: z.literal("auto"), topics: z.array(z.string())}), z.object({fields: z.array(z.object({fieldName: z.string(), topicName: z.string().optional()})), mode: z.literal("specific")})]), includeViewNameInLabels: z.boolean().optional(), type: z.literal("DYNAMIC_FILTER")}), z.object({description: z.string().optional(), hidden: z.boolean().optional(), id: z.string(), label: z.string().optional(), defaultValue: z.number().int().gte(1), field: z.string(), max: z.number().int().gte(1).optional(), min: z.number().int().gte(1).optional(), type: z.literal("TOP_N"), value: z.number().int().gte(1)})])).optional(), cube_metadata: z.object({cube_name: z.string(), hash_key: z.string(), topic_name: z.string()}).and(z.record(z.string(), z.unknown())).optional(), custom_summary_types: z.record(z.string(), z.string()).optional(), dbtFileName: z.string().optional(), dbtMode: z.boolean().optional(), default_group_by: z.boolean().optional(), dimensionIndex: z.number().optional(), executableSQL: z.string().optional(), fields: z.array(z.string()), fill_fields: z.array(z.string()), filters: z.record(z.string(), z.union([z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), appliedLabels: z.record(z.string(), z.string()).optional(), case_insensitive: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), kind: z.enum(["CONTAINS", "ENDS_WITH", "STARTS_WITH", "EQUALS", "IS_EMPTY", "SQL_LIKE"]), type: z.literal("string"), values: z.array(z.string()), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), is_inclusive: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), kind: z.enum(["LESS_THAN", "GREATER_THAN", "EQUALS", "BETWEEN"]), type: z.literal("number"), values: z.array(z.union([z.string(), z.number()])), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), isFiscal: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), kind: z.enum(["IS_ON_DAY_OF_WEEK", "IS_ON_DAY_OF_QUARTER", "IS_IN_MONTH_OF_YEAR", "IS_ON_DAY_OF_YEAR", "IS_AT_HOUR_OF_DAY", "IS_IN_QUARTER_OF_YEAR", "IS_IN_WEEK_OF_YEAR", "IS_ON_DAY_OF_MONTH", "BETWEEN", "ON_OR_AFTER", "BEFORE", "TIME_FOR_INTERVAL_DURATION", "TIME_FOR_UNIT_DURATION", "QUERY_OFFSET"]), left_side: z.string().nullable().optional(), offset_interval_string: z.string().nullable().optional(), right_side: z.string().nullable().optional(), type: z.literal("date"), ui_type: z.enum(["ANY_TIME", "BEFORE", "BETWEEN", "MONTH_OF_YEAR", "PAST", "YEAR", "DAY", "IS_ON_DAY_OF_WEEK", "ON_OR_AFTER", "IS_IN_THE_MONTH", "IS_IN_THE_QUARTER", "IS_IN_THE_FISCAL_QUARTER", "IS_IN_THE_FISCAL_YEAR", "TIME_FOR_INTERVAL_DURATION", "TIME_FOR_UNIT_DURATION", "CUSTOM", "null"]).nullable().optional(), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), type: z.literal("null"), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), treat_nulls_as_false: z.boolean().optional(), type: z.literal("boolean"), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), disregard_limit: z.boolean().optional(), field_name: z.string().optional(), is_negative: z.boolean().nullable().optional(), query_id: z.string().optional(), type: z.literal("query"), view_query: z.object({fields: z.array(z.string()), filters: z.record(z.string(), z.unknown()).optional(), limit: z.number().optional(), sorts: z.array(z.unknown()).optional(), table: z.string().optional()}).and(z.record(z.string(), z.unknown())).optional(), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), type: z.literal("user_attribute"), user_attribute_name: z.string(), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), conjunction: z.enum(["OR", "AND"]), filters: z.array(compositeFilter), is_negative: z.boolean().nullable().optional(), type: z.literal("composite"), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown()))])), filtersUsedInSql: z.record(z.string(), z.union([z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), appliedLabels: z.record(z.string(), z.string()).optional(), case_insensitive: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), kind: z.enum(["CONTAINS", "ENDS_WITH", "STARTS_WITH", "EQUALS", "IS_EMPTY", "SQL_LIKE"]), type: z.literal("string"), values: z.array(z.string()), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), is_inclusive: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), kind: z.enum(["LESS_THAN", "GREATER_THAN", "EQUALS", "BETWEEN"]), type: z.literal("number"), values: z.array(z.union([z.string(), z.number()])), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), isFiscal: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), kind: z.enum(["IS_ON_DAY_OF_WEEK", "IS_ON_DAY_OF_QUARTER", "IS_IN_MONTH_OF_YEAR", "IS_ON_DAY_OF_YEAR", "IS_AT_HOUR_OF_DAY", "IS_IN_QUARTER_OF_YEAR", "IS_IN_WEEK_OF_YEAR", "IS_ON_DAY_OF_MONTH", "BETWEEN", "ON_OR_AFTER", "BEFORE", "TIME_FOR_INTERVAL_DURATION", "TIME_FOR_UNIT_DURATION", "QUERY_OFFSET"]), left_side: z.string().nullable().optional(), offset_interval_string: z.string().nullable().optional(), right_side: z.string().nullable().optional(), type: z.literal("date"), ui_type: z.enum(["ANY_TIME", "BEFORE", "BETWEEN", "MONTH_OF_YEAR", "PAST", "YEAR", "DAY", "IS_ON_DAY_OF_WEEK", "ON_OR_AFTER", "IS_IN_THE_MONTH", "IS_IN_THE_QUARTER", "IS_IN_THE_FISCAL_QUARTER", "IS_IN_THE_FISCAL_YEAR", "TIME_FOR_INTERVAL_DURATION", "TIME_FOR_UNIT_DURATION", "CUSTOM", "null"]).nullable().optional(), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), type: z.literal("null"), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), is_negative: z.boolean().nullable().optional(), treat_nulls_as_false: z.boolean().optional(), type: z.literal("boolean"), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), disregard_limit: z.boolean().optional(), field_name: z.string().optional(), is_negative: z.boolean().nullable().optional(), query_id: z.string().optional(), type: z.literal("query"), view_query: z.object({fields: z.array(z.string()), filters: z.record(z.string(), z.unknown()).optional(), limit: z.number().optional(), sorts: z.array(z.unknown()).optional(), table: z.string().optional()}).and(z.record(z.string(), z.unknown())).optional(), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), type: z.literal("user_attribute"), user_attribute_name: z.string(), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown())), z.object({cancel_query_filter: z.boolean().optional(), exclude_from_bind_all: z.boolean().optional(), exclude_from_level_of_detail: z.boolean().optional(), ignore_if_unjoinable: z.boolean().optional(), conjunction: z.enum(["OR", "AND"]), filters: z.array(compositeFilter), is_negative: z.boolean().nullable().optional(), type: z.literal("composite"), appliedLabels: z.record(z.string(), z.string()).optional(), base_view: z.string().optional(), description: z.string().optional(), fieldName: z.string().optional(), filterControlType: z.union([z.enum(["multiValueEquals", "singleValueEquals"]), z.enum(["singleDay", "timeframe"])]).optional(), hidden: z.boolean().optional(), label: z.string().optional(), required: z.boolean().optional(), requiredScope: z.enum(["dashboard", "tiles"]).optional(), topic: z.string().optional(), watchedContainerIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown()))])).optional(), imported_model_ids: z.array(z.string()).optional(), join_paths_from_topic_name: z.string().optional(), join_via_map: z.record(z.string(), z.array(z.string())).optional(), limit: z.number().optional(), manualSort: z.boolean().optional(), metadata: z.record(z.string(), z.object({format: z.string().optional(), label: z.string().optional(), order: z.number().optional()}).and(z.record(z.string(), z.unknown()))).optional(), modelId: z.string(), model_extension_id: z.string().optional(), offset: z.number().optional(), parsed: z.boolean().optional(), periodOverPeriodTransposed: z.boolean().optional(), period_over_period_computations: z.array(z.object({date_filter_field_name: z.string(), date_filter_id: z.string().optional(), is_dynamic_previous_period: z.boolean().optional(), periods_ago: z.number().nullable(), time_unit_name: z.string().nullable()}).and(z.record(z.string(), z.unknown()))).optional(), pivots: z.array(z.string()), rewriteSql: z.boolean().optional(), row_totals: z.record(z.string(), z.object({type: z.literal("aggregation")})), sorts: z.array(z.object({column_name: z.string(), is_column_sort: z.boolean().optional(), pivot_value_map: z.record(z.string(), z.string().nullable()).optional(), sort_descending: z.boolean(), subtotal_sort: z.string().optional()}).and(z.record(z.string(), z.unknown()))), sqlSortsEnabled: z.boolean().optional(), staticQueryReferences: z.record(z.string(), z.unknown()).optional(), table: z.string(), transposed_measures: z.array(z.string()).optional(), userEditedSQL: z.string(), version: z.number().optional()}).and(z.record(z.string(), z.unknown())); export const aiJobVisDebugResponse = z.union([z.object({compiledVegaLiteSpec: z.record(z.string(), aiJobVisNonNullJsonValue).nullable(), dataSource: z.literal("arrow"), hasQuery: z.literal(true), hasResultFields: z.literal(true), query: omniQuery, resultFields: z.array(z.object({label: z.string(), name: z.string(), type: z.object({typeId: z.number().int()}).and(z.record(z.string(), aiJobVisNonNullJsonValue)).optional()})), rowCount: z.number().int().gte(0), visConfig: z.object({chartType: z.enum(["auto", "area", "areaStacked", "areaStackedPercentage", "bar", "barLine", "barGrouped", "barStacked", "barStackedPercentage", "boxplot", "code", "column", "columnGrouped", "columnStacked", "columnStackedPercentage", "heatmap", "kpi", "line", "lineColor", "map", "regionMap", "markdown", "omni-ai-summary-markdown", "pie", "funnel", "sankey", "point", "pointColor", "pointSize", "pointSizeColor", "singleRecord", "omni-spreadsheet", "summaryValue", "svgMap", "table", "treemap"]).optional(), visualization: z.record(z.string(), aiJobVisNonNullJsonValue).optional()})}), z.object({error: z.string(), hasQuery: z.literal(false), jobId: z.string()})]); 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 }; /** * Render AI job visualization * * GET /api/v1/ai/jobs/{jobId}/vis */ export const getApiApiV1AiJobsJobIdVis = async (args: GetApiApiV1AiJobsJobIdVisArgs, options: GetApiApiV1AiJobsJobIdVisOptions) => { const {baseUrl, fetch: fetchFn = fetch, bearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.auto_vis != null) query.append("auto_vis", String(args.auto_vis)) if (args.debug != null) query.append("debug", String(args.debug)) if (args.format != null) query.append("format", String(args.format)) if (args.theme != null) query.append("theme", String(args.theme)) if (bearerAuth !== undefined) headers.set('authorization', `Bearer ${bearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/api/v1/ai/jobs/${encodeURIComponent(String(args.jobId))}/vis${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(aiJobVisDebugResponse, await res.json()) };