import {z} from 'zod' export type IdRequest = {id: string}; export type KeyValueRequest = {key: string, value: string}; export type FieldValueRequest = {name: string, value: string}; export type ConditionsRequest = {queries?: Array | undefined, fieldValues?: Array | undefined, queryProfiles?: Array | undefined, effectiveStart?: string | undefined, effectiveEnd?: string | undefined}; export type ParamAndValueRequest = {name: string, value: string, updatePolicy?: ('APPEND' | 'REMOVE' | 'REPLACE' | 'DEFAULT') | undefined}; export type SetParamsRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', params?: Array | undefined}; export type FieldFacetConfigRequest = {field: string, rollupFieldCount?: string | undefined, filterExclusion?: boolean | undefined, displayZeroCount?: boolean | undefined, boostValues?: Array | undefined, buryValues?: Array | undefined, suppressValues?: Array | undefined, prefix?: string | undefined, sort?: ('COUNT' | 'INDEX') | undefined, limit?: number | undefined, offset?: number | undefined, mincount?: number | undefined, missing?: boolean | undefined, method?: ('SMART' | 'ENUM' | 'FC' | 'FCS' | 'UIF' | 'DVHASH') | undefined}; export type RangeFacetConfigRequest = {field: string, rollupFieldCount?: string | undefined, filterExclusion?: boolean | undefined, displayZeroCount?: boolean | undefined, boostValues?: Array | undefined, buryValues?: Array | undefined, suppressValues?: Array | undefined, start?: string | undefined, end?: string | undefined, gap?: string | undefined, hardend?: boolean | undefined, include?: (Array<'LOWER' | 'UPPER' | 'EDGE' | 'OUTER' | 'ALL'>) | undefined, other?: (Array<'BEFORE' | 'AFTER' | 'BETWEEN' | 'NONE' | 'ALL'>) | undefined}; export type SetJSONFacetsRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', fieldFacets?: Array | undefined, rangeFacets?: Array | undefined}; export type FacetDataRequest = {fieldName: string, selectType?: ('MULTI' | 'SINGLE') | undefined, type?: ('FIELD' | 'RANGE') | undefined, sort?: ('COUNT' | 'INDEX') | undefined, rangeStart?: string | undefined, rangeEnd?: string | undefined, rangeGap?: string | undefined, minCount?: number | undefined, boostValues?: Array | undefined, buryValues?: Array | undefined, suppressValues?: Array | undefined}; export type SetFacetsRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', facetData?: Array | undefined}; export type ResponseValueRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER'}; export type RedirectRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', url?: string | undefined}; export type PinnedValueRequest = {value: string, position: number}; export type PinRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', fieldName?: string | undefined, pinnedValues?: Array | undefined, useQec?: boolean | undefined}; export type JsonBlobRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', blobType?: string | undefined, jsonBlob?: string | undefined}; export type InGroupPinRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', fieldName?: string | undefined, pinnedValues?: Array | undefined, groupField?: string | undefined, groupValue?: string | undefined}; export type InGroupBuryListRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', fieldName?: string | undefined, fieldValues?: Array | undefined, groupField?: string | undefined}; export type InGroupBoostListRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', fieldName?: string | undefined, fieldValues?: Array | undefined, groupField?: string | undefined}; export type FilterListRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', fieldName?: string | undefined, fieldValues?: Array | undefined, useQec?: boolean | undefined, termsQuerySeparator?: string | undefined, termsQueryMethod?: ('termsFilter' | 'booleanQuery' | 'automaton' | 'docValuesTermsFilter') | undefined}; export type BuryListRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', fieldName?: string | undefined, fieldValues?: Array | undefined}; export type BuryAttributesRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', boostParam?: string | undefined, boostQuery?: string | undefined}; export type BoostListRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', fieldName?: string | undefined, fieldValues?: Array | undefined, useQec?: boolean | undefined}; export type BlockConditionRequest = {field: string, operator: 'EQUAL' | 'GREATER_THAN' | 'LESS_THAN' | 'GREATER_THAN_OR_EQUAL' | 'LESS_THAN_OR_EQUAL' | 'BETWEEN' | 'NOT_EQUAL', value?: string | undefined, minValue?: string | undefined, maxValue?: string | undefined}; export type BlockGroupRequest = {operator?: ('AND' | 'OR') | undefined, blocks?: Array | undefined}; export type BlockGroupsChainRequest = {boostFactor?: number | undefined, blockGroups?: Array | undefined}; export type BoostAttributesRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', boostParam?: string | undefined, boostQuery?: string | undefined, blockGroupsList?: Array | undefined}; export type BlockListRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', fieldName?: string | undefined, fieldValues?: Array | undefined, termsQuerySeparator?: string | undefined, termsQueryMethod?: ('termsFilter' | 'booleanQuery' | 'automaton' | 'docValuesTermsFilter') | undefined}; export type BlockByAttributeRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', fieldName?: string | undefined, fieldValues?: Array | undefined, termsQuerySeparator?: string | undefined, termsQueryMethod?: ('termsFilter' | 'booleanQuery' | 'automaton' | 'docValuesTermsFilter') | undefined, blockGroupsList?: Array | undefined}; export type BannerRuleRequest = {name: string, description?: string | undefined, conditionType?: ('SEARCH' | 'CATEGORY') | undefined, externalId?: string | undefined, tags?: Array | undefined, published?: boolean | undefined, groups?: Array | undefined, segments?: Array | undefined, additionalProperties?: Record | undefined, precedence?: number | undefined, deleted?: boolean | undefined, responseValues?: Array | undefined, matchSearchQueryUsing?: ('KEYWORDS' | 'TEXT' | 'PHRASE' | 'STARTS_WITH' | 'ENDS_WITH') | undefined, conditions?: ConditionsRequest | undefined, stagingContent?: (BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest) | undefined, type: 'BANNER', url?: string | undefined, zone?: string | undefined}; export type CreateApiEmRulesArgs = {fields?: (Array<'TARGETED_DOCUMENTS' | 'CONFLICTS' | 'IS_PENDING_BULK_OPERATION' | 'FUSION_SYNC_STATUS' | 'MIGRATION'>) | undefined, body: BannerRuleRequest | BlockByAttributeRuleRequest | BlockListRuleRequest | BoostAttributesRuleRequest | BoostListRuleRequest | BuryAttributesRuleRequest | BuryListRuleRequest | FilterListRuleRequest | InGroupBoostListRuleRequest | InGroupBuryListRuleRequest | InGroupPinRuleRequest | JsonBlobRuleRequest | PinRuleRequest | RedirectRuleRequest | ResponseValueRuleRequest | SetFacetsRuleRequest | SetJSONFacetsRuleRequest | SetParamsRuleRequest}; export type CreateApiEmRulesOptions = {baseUrl?: string | undefined, authToken?: string | undefined, fetch?: typeof fetch | undefined}; export const fieldValueSummary = z.object({name: z.string(), value: z.string()}); export const conditionsSummary = z.object({queries: z.array(z.string()).optional(), fieldValues: z.array(fieldValueSummary).optional(), queryProfiles: z.array(z.string()).optional(), effectiveStart: z.string().optional(), effectiveEnd: z.string().optional()}); export const fusionSyncStatusSummary = z.object({version: z.string().optional(), lastSyncedVersion: z.string().optional(), fusionVersion: z.string().optional()}); export const migrationSummary = z.object({sourceId: z.string().optional(), sourceEmInstanceId: z.string().optional(), sourceBulkOperationId: z.string().optional()}); export const keyValueSummary = z.object({key: z.string(), value: z.string()}); export const segmentSummary = z.object({id: z.string().optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), lastModifiedBy: z.string().optional(), lastModified: z.string().optional(), name: z.string().optional(), value: z.string().optional(), type: z.string().optional(), ruleCount: z.number().int().optional()}); export const paramAndValueSummary = z.object({name: z.string().optional(), value: z.string().optional(), updatePolicy: z.enum(["APPEND", "REMOVE", "REPLACE", "DEFAULT"]).optional()}); export const setParamsRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), z.lazy(() => jsonBlobRuleSummary), z.lazy(() => pinRuleSummary), z.lazy(() => redirectRuleSummary), z.lazy(() => responseValueRuleSummary), z.lazy(() => setJSONFacetsRuleSummary), z.lazy(() => setParamsRuleSummary)])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), z.lazy(() => jsonBlobRuleSummary), z.lazy(() => pinRuleSummary), z.lazy(() => redirectRuleSummary), z.lazy(() => responseValueRuleSummary), z.lazy(() => setJSONFacetsRuleSummary), z.lazy(() => setParamsRuleSummary)]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), params: z.array(paramAndValueSummary).optional()}); export const fieldFacetConfigSummary = z.object({field: z.string().optional(), rollupFieldCount: z.string().optional(), filterExclusion: z.boolean().optional(), displayZeroCount: z.boolean().optional(), boostValues: z.array(z.string()).optional(), buryValues: z.array(z.string()).optional(), suppressValues: z.array(z.string()).optional(), prefix: z.string().optional(), sort: z.enum(["COUNT", "INDEX"]).optional(), limit: z.number().int().optional(), offset: z.number().int().optional(), mincount: z.number().int().optional(), missing: z.boolean().optional(), method: z.enum(["SMART", "ENUM", "FC", "FCS", "UIF", "DVHASH"]).optional()}); export const rangeFacetConfigSummary = z.object({field: z.string().optional(), rollupFieldCount: z.string().optional(), filterExclusion: z.boolean().optional(), displayZeroCount: z.boolean().optional(), boostValues: z.array(z.string()).optional(), buryValues: z.array(z.string()).optional(), suppressValues: z.array(z.string()).optional(), start: z.string().optional(), end: z.string().optional(), gap: z.string().optional(), hardend: z.boolean().optional(), include: z.array(z.enum(["LOWER", "UPPER", "EDGE", "OUTER", "ALL"])).optional(), other: z.array(z.enum(["BEFORE", "AFTER", "BETWEEN", "NONE", "ALL"])).optional()}); export const setJSONFacetsRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), z.lazy(() => jsonBlobRuleSummary), z.lazy(() => pinRuleSummary), z.lazy(() => redirectRuleSummary), z.lazy(() => responseValueRuleSummary), z.lazy(() => setJSONFacetsRuleSummary), setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), z.lazy(() => jsonBlobRuleSummary), z.lazy(() => pinRuleSummary), z.lazy(() => redirectRuleSummary), z.lazy(() => responseValueRuleSummary), z.lazy(() => setJSONFacetsRuleSummary), setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), fieldFacets: z.array(fieldFacetConfigSummary).optional(), rangeFacets: z.array(rangeFacetConfigSummary).optional()}); export const responseValueRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), z.lazy(() => jsonBlobRuleSummary), z.lazy(() => pinRuleSummary), z.lazy(() => redirectRuleSummary), z.lazy(() => responseValueRuleSummary), setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), z.lazy(() => jsonBlobRuleSummary), z.lazy(() => pinRuleSummary), z.lazy(() => redirectRuleSummary), z.lazy(() => responseValueRuleSummary), setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER")}); export const redirectRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), z.lazy(() => jsonBlobRuleSummary), z.lazy(() => pinRuleSummary), z.lazy(() => redirectRuleSummary), responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), z.lazy(() => jsonBlobRuleSummary), z.lazy(() => pinRuleSummary), z.lazy(() => redirectRuleSummary), responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), url: z.string().optional()}); export const targetedDocumentGroupSummary = z.object({fieldValue: z.string().optional(), representatives: z.array(z.object({})).optional(), memberCount: z.number().int().optional()}); export const arrayNode = z.object({}); export const jsonNode = z.object({}); export const fusionPreviewQueryRequest = z.object({stageOverrides: arrayNode.optional(), executionModifiers: z.record(z.string(), jsonNode).optional(), params: z.record(z.string(), jsonNode).optional()}); export const pinnedValueSummary = z.object({value: z.string(), position: z.number().int()}); export const pinRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), z.lazy(() => jsonBlobRuleSummary), z.lazy(() => pinRuleSummary), redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), z.lazy(() => jsonBlobRuleSummary), z.lazy(() => pinRuleSummary), redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), targetedDocumentGroups: z.array(targetedDocumentGroupSummary).optional(), targetedDocumentsErrorMessage: z.string().optional(), targetedDocumentsQueryUrl: z.string().optional(), targetedDocumentsFormParams: z.record(z.string(), z.array(z.string())).optional(), targetedDocumentsBody: fusionPreviewQueryRequest.optional(), fieldName: z.string().optional(), pinnedValues: z.array(pinnedValueSummary).optional(), useQec: z.boolean().optional()}); export const jsonBlobRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), z.lazy(() => jsonBlobRuleSummary), pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), z.lazy(() => jsonBlobRuleSummary), pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), blobType: z.string().optional(), jsonBlob: z.string().optional()}); export const inGroupPinRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), z.lazy(() => inGroupPinRuleSummary), jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), targetedDocumentGroups: z.array(targetedDocumentGroupSummary).optional(), targetedDocumentsErrorMessage: z.string().optional(), targetedDocumentsQueryUrl: z.string().optional(), targetedDocumentsFormParams: z.record(z.string(), z.array(z.string())).optional(), targetedDocumentsBody: fusionPreviewQueryRequest.optional(), fieldName: z.string().optional(), pinnedValues: z.array(pinnedValueSummary).optional(), groupField: z.string().optional(), groupValue: z.string().optional()}); export const inGroupBuryListRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), z.lazy(() => inGroupBuryListRuleSummary), inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), targetedDocumentGroups: z.array(targetedDocumentGroupSummary).optional(), targetedDocumentsErrorMessage: z.string().optional(), targetedDocumentsQueryUrl: z.string().optional(), targetedDocumentsFormParams: z.record(z.string(), z.array(z.string())).optional(), targetedDocumentsBody: fusionPreviewQueryRequest.optional(), fieldName: z.string().optional(), fieldValues: z.array(z.string()).optional(), groupField: z.string().optional()}); export const inGroupBoostListRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), z.lazy(() => inGroupBoostListRuleSummary), inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), targetedDocumentGroups: z.array(targetedDocumentGroupSummary).optional(), targetedDocumentsErrorMessage: z.string().optional(), targetedDocumentsQueryUrl: z.string().optional(), targetedDocumentsFormParams: z.record(z.string(), z.array(z.string())).optional(), targetedDocumentsBody: fusionPreviewQueryRequest.optional(), fieldName: z.string().optional(), fieldValues: z.array(z.string()).optional(), groupField: z.string().optional()}); export const filterListRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), z.lazy(() => filterListRuleSummary), inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), targetedDocumentGroups: z.array(targetedDocumentGroupSummary).optional(), targetedDocumentsErrorMessage: z.string().optional(), targetedDocumentsQueryUrl: z.string().optional(), targetedDocumentsFormParams: z.record(z.string(), z.array(z.string())).optional(), targetedDocumentsBody: fusionPreviewQueryRequest.optional(), fieldName: z.string().optional(), fieldValues: z.array(z.string()).optional(), useQec: z.boolean().optional(), termsQuerySeparator: z.string().optional(), termsQueryMethod: z.enum(["termsFilter", "booleanQuery", "automaton", "docValuesTermsFilter"]).optional()}); export const buryListRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), z.lazy(() => buryListRuleSummary), filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), targetedDocumentGroups: z.array(targetedDocumentGroupSummary).optional(), targetedDocumentsErrorMessage: z.string().optional(), targetedDocumentsQueryUrl: z.string().optional(), targetedDocumentsFormParams: z.record(z.string(), z.array(z.string())).optional(), targetedDocumentsBody: fusionPreviewQueryRequest.optional(), fieldName: z.string().optional(), fieldValues: z.array(z.string()).optional()}); export const buryAttributesRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), z.lazy(() => buryAttributesRuleSummary), buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), boostParam: z.string().optional(), boostQuery: z.string().optional()}); export const boostListRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), buryAttributesRuleSummary, buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), z.lazy(() => boostListRuleSummary), buryAttributesRuleSummary, buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), targetedDocumentGroups: z.array(targetedDocumentGroupSummary).optional(), targetedDocumentsErrorMessage: z.string().optional(), targetedDocumentsQueryUrl: z.string().optional(), targetedDocumentsFormParams: z.record(z.string(), z.array(z.string())).optional(), targetedDocumentsBody: fusionPreviewQueryRequest.optional(), fieldName: z.string().optional(), fieldValues: z.array(z.string()).optional(), useQec: z.boolean().optional()}); export const blockConditionSummary = z.object({field: z.string().optional(), operator: z.enum(["EQUAL", "GREATER_THAN", "LESS_THAN", "GREATER_THAN_OR_EQUAL", "LESS_THAN_OR_EQUAL", "BETWEEN", "NOT_EQUAL"]).optional(), value: z.string().optional(), minValue: z.string().optional(), maxValue: z.string().optional()}); export const blockGroupSummary = z.object({operator: z.enum(["AND", "OR"]).optional(), blocks: z.array(blockConditionSummary).optional()}); export const blockGroupsChainSummary = z.object({boostFactor: z.number().optional(), blockGroups: z.array(blockGroupSummary).optional()}); export const boostAttributesRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), boostListRuleSummary, buryAttributesRuleSummary, buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), z.lazy(() => boostAttributesRuleSummary), boostListRuleSummary, buryAttributesRuleSummary, buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), boostParam: z.string().optional(), boostQuery: z.string().optional(), blockGroupsList: z.array(blockGroupsChainSummary).optional()}); export const blockListRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), boostAttributesRuleSummary, boostListRuleSummary, buryAttributesRuleSummary, buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), z.lazy(() => blockListRuleSummary), boostAttributesRuleSummary, boostListRuleSummary, buryAttributesRuleSummary, buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), targetedDocumentGroups: z.array(targetedDocumentGroupSummary).optional(), targetedDocumentsErrorMessage: z.string().optional(), targetedDocumentsQueryUrl: z.string().optional(), targetedDocumentsFormParams: z.record(z.string(), z.array(z.string())).optional(), targetedDocumentsBody: fusionPreviewQueryRequest.optional(), fieldName: z.string().optional(), fieldValues: z.array(z.string()).optional(), termsQuerySeparator: z.string().optional(), termsQueryMethod: z.enum(["termsFilter", "booleanQuery", "automaton", "docValuesTermsFilter"]).optional()}); export const blockByAttributeRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), blockListRuleSummary, boostAttributesRuleSummary, boostListRuleSummary, buryAttributesRuleSummary, buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), z.lazy(() => blockByAttributeRuleSummary), blockListRuleSummary, boostAttributesRuleSummary, boostListRuleSummary, buryAttributesRuleSummary, buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), targetedDocumentGroups: z.array(targetedDocumentGroupSummary).optional(), targetedDocumentsErrorMessage: z.string().optional(), targetedDocumentsQueryUrl: z.string().optional(), targetedDocumentsFormParams: z.record(z.string(), z.array(z.string())).optional(), targetedDocumentsBody: fusionPreviewQueryRequest.optional(), fieldName: z.string().optional(), fieldValues: z.array(z.string()).optional(), termsQuerySeparator: z.string().optional(), termsQueryMethod: z.enum(["termsFilter", "booleanQuery", "automaton", "docValuesTermsFilter"]).optional(), blockGroupsList: z.array(blockGroupsChainSummary).optional()}); export const bannerRuleSummary: z.ZodType = z.object({additionalProperties: z.object({}).optional(), conditionType: z.enum(["SEARCH", "CATEGORY"]).optional(), conditions: conditionsSummary.optional(), conflicts: z.array(z.union([z.lazy(() => bannerRuleSummary), blockByAttributeRuleSummary, blockListRuleSummary, boostAttributesRuleSummary, boostListRuleSummary, buryAttributesRuleSummary, buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), createdBy: z.string().optional(), creationDate: z.string().optional(), deleted: z.boolean().optional(), description: z.string().optional(), externalId: z.string().optional(), groups: z.array(z.string()).optional(), hasConflicts: z.boolean().optional(), id: z.string().optional(), lastModified: z.string().optional(), lastModifiedBy: z.string().optional(), liveFusionSyncStatus: fusionSyncStatusSummary.optional(), markedForDeletion: z.boolean().optional(), matchSearchQueryUsing: z.enum(["KEYWORDS", "TEXT", "PHRASE", "STARTS_WITH", "ENDS_WITH"]).optional(), migratedId: z.string().optional(), migration: migrationSummary.optional(), name: z.string().optional(), pendingBulkOperation: z.boolean().optional(), precedence: z.number().int().optional(), publishState: z.enum(["DRAFT", "PUBLISHED", "PUBLISHED_WITH_DRAFT_EDITS"]).optional(), published: z.boolean().optional(), responseValues: z.array(keyValueSummary).optional(), segments: z.array(segmentSummary).optional(), stagingContent: z.union([z.lazy(() => bannerRuleSummary), blockByAttributeRuleSummary, blockListRuleSummary, boostAttributesRuleSummary, boostListRuleSummary, buryAttributesRuleSummary, buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]).optional(), stagingFusionSyncStatus: fusionSyncStatusSummary.optional(), tags: z.array(z.string()).optional(), type: z.literal("BANNER"), url: z.string().optional(), zone: z.string().optional()}); export const createApiEmRulesResponse = z.discriminatedUnion("type", [bannerRuleSummary, blockByAttributeRuleSummary, blockListRuleSummary, boostAttributesRuleSummary, boostListRuleSummary, buryAttributesRuleSummary, buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary]); 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 a rule * * POST /em-rules */ export const createApiEmRules = async (args: CreateApiEmRulesArgs, options?: CreateApiEmRulesOptions) => { const {baseUrl = "https://commerce_studio_id.experiencemanager.lucidworks.com", fetch: fetchFn = fetch, authToken} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") for (const item of args.fields ?? []) query.append("fields", String(item)) if (authToken !== undefined) headers.set('authorization', `Bearer ${authToken}`) const url = `${baseUrl.replace(/\/+$/, '')}/em-rules${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(createApiEmRulesResponse, await res.json()) };