import {z} from 'zod' export type GetApiEmRulesIdArgs = {id: string, fields?: (Array<'TARGETED_DOCUMENTS' | 'CONFLICTS' | 'IS_PENDING_BULK_OPERATION' | 'FUSION_SYNC_STATUS' | 'MIGRATION'>) | undefined}; export type GetApiEmRulesIdOptions = {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 getApiEmRulesIdResponse = 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 }; /** * Get a rule * * GET /em-rules/{id} */ export const getApiEmRulesId = async (args: GetApiEmRulesIdArgs, options?: GetApiEmRulesIdOptions) => { 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") 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/${encodeURIComponent(String(args.id))}${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(getApiEmRulesIdResponse, await res.json()) };