import {z} from 'zod' export type GetApiEmRulesArgs = {searchQuery?: string | undefined, tags?: Array | undefined, groups?: Array | undefined, types?: Array | undefined, publishState?: ('DRAFT' | 'PUBLISHED' | 'PUBLISHED_WITH_DRAFT_EDITS') | undefined, published?: boolean | undefined, targetedDocumentId?: string | undefined, targetedDocumentIdField?: string | undefined, activeDateStart?: string | undefined, activeDateEnd?: string | undefined, expirationDateStart?: string | undefined, expirationDateEnd?: string | undefined, lastModifiedStart?: string | undefined, lastModifiedEnd?: string | undefined, createdStart?: string | undefined, createdEnd?: string | undefined, contentType?: ('RULE' | 'QUERY_REWRITE') | undefined, page?: number | undefined, size?: number | undefined, sort?: Array | undefined, fields?: (Array<'TARGETED_DOCUMENTS' | 'CONFLICTS' | 'IS_PENDING_BULK_OPERATION' | 'FUSION_SYNC_STATUS' | 'MIGRATION'>) | undefined}; export type GetApiEmRulesOptions = {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 pageMetadata = z.object({size: z.number().int().optional(), number: z.number().int().optional(), totalElements: z.number().int().optional(), totalPages: z.number().int().optional()}); export const pagedModelRuleSummary = z.object({content: z.array(z.union([bannerRuleSummary, blockByAttributeRuleSummary, blockListRuleSummary, boostAttributesRuleSummary, boostListRuleSummary, buryAttributesRuleSummary, buryListRuleSummary, filterListRuleSummary, inGroupBoostListRuleSummary, inGroupBuryListRuleSummary, inGroupPinRuleSummary, jsonBlobRuleSummary, pinRuleSummary, redirectRuleSummary, responseValueRuleSummary, setJSONFacetsRuleSummary, setParamsRuleSummary])).optional(), page: pageMetadata.optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * List rules * * GET /em-rules */ export const getApiEmRules = async (args: GetApiEmRulesArgs, options?: GetApiEmRulesOptions) => { const {baseUrl = "https://commerce_studio_id.experiencemanager.lucidworks.com", fetch: fetchFn = fetch, authToken} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.searchQuery != null) query.append("searchQuery", String(args.searchQuery)) for (const item of args.tags ?? []) query.append("tags", String(item)) for (const item of args.groups ?? []) query.append("groups", String(item)) for (const item of args.types ?? []) query.append("types", String(item)) if (args.publishState != null) query.append("publishState", String(args.publishState)) if (args.published != null) query.append("published", String(args.published)) if (args.targetedDocumentId != null) query.append("targetedDocumentId", String(args.targetedDocumentId)) if (args.targetedDocumentIdField != null) query.append("targetedDocumentIdField", String(args.targetedDocumentIdField)) if (args.activeDateStart != null) query.append("activeDateStart", String(args.activeDateStart)) if (args.activeDateEnd != null) query.append("activeDateEnd", String(args.activeDateEnd)) if (args.expirationDateStart != null) query.append("expirationDateStart", String(args.expirationDateStart)) if (args.expirationDateEnd != null) query.append("expirationDateEnd", String(args.expirationDateEnd)) if (args.lastModifiedStart != null) query.append("lastModifiedStart", String(args.lastModifiedStart)) if (args.lastModifiedEnd != null) query.append("lastModifiedEnd", String(args.lastModifiedEnd)) if (args.createdStart != null) query.append("createdStart", String(args.createdStart)) if (args.createdEnd != null) query.append("createdEnd", String(args.createdEnd)) if (args.contentType != null) query.append("contentType", String(args.contentType)) if (args.page != null) query.append("page", String(args.page)) if (args.size != null) query.append("size", String(args.size)) for (const item of args.sort ?? []) query.append("sort", String(item)) 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: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(pagedModelRuleSummary, await res.json()) };