> ## Documentation Index
> Fetch the complete documentation index at: https://docs.forterulesengine.io/llms.txt
> Use this file to discover all available pages before exploring further.

# policyJSONValidator

> v0.20.5

> `const` **policyJSONValidator**: `ZodEffects`\<`ZodEffects`\<`ZodObject`\<\{ `CallingFunctions`: `ZodArray`\<`ZodObject`\<\{ `EncodedValues`: `ZodString`; `FunctionSignature`: `ZodString`; `Name`: `ZodString`; }, `"strip"`, `ZodTypeAny`, \{ `EncodedValues`: `string`; `FunctionSignature`: `string`; `Name`: `string`; }, \{ `EncodedValues`: `string`; `FunctionSignature`: `string`; `Name`: `string`; }>, `"many"`>; `Description`: `ZodDefault`\<`ZodString`>; `ForeignCalls`: `ZodArray`\<`ZodObject`\<\{ `Address`: `ZodEffects`\<`ZodEffects`\<`ZodString`, `` `0x${string}` ``, `string`>, `` `0x${string}` ``, `string`>; `CallingFunction`: `ZodString`; `Function`: `ZodEffects`\<`ZodString`, `string`, `string`>; `Id`: `ZodOptional`\<`ZodNumber`>; `MappedTrackerKeyValues`: `ZodString`; `Name`: `ZodString`; `ReturnType`: `ZodEffects`\<`ZodLiteral`\<`Primitive`>, `Primitive`, `unknown`>; `ValuesToPass`: `ZodEffects`\<`ZodString`, `string`, `string`>; }, `"strip"`, `ZodTypeAny`, \{ `Address`: `` `0x${string}` ``; `CallingFunction`: `string`; `Function`: `string`; `Id`: `number`; `MappedTrackerKeyValues`: `string`; `Name`: `string`; `ReturnType`: `Primitive`; `ValuesToPass`: `string`; }, \{ `Address`: `string`; `CallingFunction`: `string`; `Function`: `string`; `Id`: `number`; `MappedTrackerKeyValues`: `string`; `Name`: `string`; `ReturnType`: `unknown`; `ValuesToPass`: `string`; }>, `"many"`>; `Id`: `ZodOptional`\<`ZodNumber`>; `MappedTrackers`: `ZodArray`\<`ZodEffects`\<`ZodEffects`\<`ZodEffects`\<`ZodEffects`\<`ZodObject`\<\{ `Id`: ...; `InitialKeys`: ...; `InitialValues`: ...; `KeyType`: ...; `Name`: ...; `ValueType`: ...; }, `"strip"`, `ZodTypeAny`, \{ `Id`: ...; `InitialKeys`: ...; `InitialValues`: ...; `KeyType`: ...; `Name`: ...; `ValueType`: ...; }, \{ `Id`: ...; `InitialKeys`: ...; `InitialValues`: ...; `KeyType`: ...; `Name`: ...; `ValueType`: ...; }>, \{ `Id`: ... | ...; `InitialKeys`: ...\[]; `InitialValues`: ...\[]; `KeyType`: `Primitive`; `Name`: `string`; `ValueType`: `Primitive`; }, \{ `Id`: ... | ...; `InitialKeys`: ...\[]; `InitialValues`: ...\[]; `KeyType`: `unknown`; `Name`: `string`; `ValueType`: `unknown`; }>, \{ `Id`: `number`; `InitialKeys`: `string`\[]; `InitialValues`: (... | ...)\[]; `KeyType`: `Primitive`; `Name`: `string`; `ValueType`: `Primitive`; }, \{ `Id`: `number`; `InitialKeys`: `string`\[]; `InitialValues`: (... | ...)\[]; `KeyType`: `unknown`; `Name`: `string`; `ValueType`: `unknown`; }>, \{ `Id`: `number`; `InitialKeys`: `string`\[]; `InitialValues`: (`string` | ...\[])\[]; `KeyType`: `Primitive`; `Name`: `string`; `ValueType`: `Primitive`; }, \{ `Id`: `number`; `InitialKeys`: `string`\[]; `InitialValues`: (`string` | ...\[])\[]; `KeyType`: `unknown`; `Name`: `string`; `ValueType`: `unknown`; }>, \{ `Id`: `number`; `InitialKeys`: `string`\[]; `InitialValues`: (`string` | `string`\[])\[]; `KeyType`: `Primitive`; `Name`: `string`; `ValueType`: `Primitive`; }, \{ `Id`: `number`; `InitialKeys`: `string`\[]; `InitialValues`: (`string` | `string`\[])\[]; `KeyType`: `unknown`; `Name`: `string`; `ValueType`: `unknown`; }>, `"many"`>; `Policy`: `ZodDefault`\<`ZodString`>; `PolicyType`: `ZodString`; `Rules`: `ZodArray`\<`ZodObject`\<\{ `CallingFunction`: `ZodString`; `Condition`: `ZodString`; `Description`: `ZodDefault`\<`ZodString`>; `Id`: `ZodOptional`\<`ZodNumber`>; `Name`: `ZodDefault`\<`ZodString`>; `NegativeEffects`: `ZodArray`\<`ZodString`, `"many"`>; `PositiveEffects`: `ZodArray`\<`ZodString`, `"many"`>; }, `"strip"`, `ZodTypeAny`, \{ `CallingFunction`: `string`; `Condition`: `string`; `Description`: `string`; `Id`: `number`; `Name`: `string`; `NegativeEffects`: `string`\[]; `PositiveEffects`: `string`\[]; }, \{ `CallingFunction`: `string`; `Condition`: `string`; `Description`: `string`; `Id`: `number`; `Name`: `string`; `NegativeEffects`: `string`\[]; `PositiveEffects`: `string`\[]; }>, `"many"`>; `Trackers`: `ZodArray`\<`ZodEffects`\<`ZodObject`\<\{ `Id`: `ZodOptional`\<`ZodNumber`>; `InitialValue`: `ZodUnion`\<\[`ZodString`, `ZodArray`\<..., ...>]>; `Name`: `ZodString`; `Type`: `ZodEffects`\<`ZodLiteral`\<`Primitive`>, `Primitive`, `unknown`>; }, `"strip"`, `ZodTypeAny`, \{ `Id`: `number`; `InitialValue`: `string` | `string`\[]; `Name`: `string`; `Type`: `Primitive`; }, \{ `Id`: `number`; `InitialValue`: `string` | `string`\[]; `Name`: `string`; `Type`: `unknown`; }>, \{ `Id`: `number`; `InitialValue`: `string` | `string`\[]; `Name`: `string`; `Type`: `Primitive`; }, \{ `Id`: `number`; `InitialValue`: `string` | `string`\[]; `Name`: `string`; `Type`: `unknown`; }>, `"many"`>; }, `"strip"`, `ZodTypeAny`, \{ `CallingFunctions`: `object`\[]; `Description`: `string`; `ForeignCalls`: `object`\[]; `Id`: `number`; `MappedTrackers`: `object`\[]; `Policy`: `string`; `PolicyType`: `string`; `Rules`: `object`\[]; `Trackers`: `object`\[]; }, \{ `CallingFunctions`: `object`\[]; `Description`: `string`; `ForeignCalls`: `object`\[]; `Id`: `number`; `MappedTrackers`: `object`\[]; `Policy`: `string`; `PolicyType`: `string`; `Rules`: `object`\[]; `Trackers`: `object`\[]; }>, \{ `CallingFunctions`: `object`\[]; `Description`: `string`; `ForeignCalls`: `object`\[]; `Id`: `number`; `MappedTrackers`: `object`\[]; `Policy`: `string`; `PolicyType`: `string`; `Rules`: `object`\[]; `Trackers`: `object`\[]; }, \{ `CallingFunctions`: `object`\[]; `Description`: `string`; `ForeignCalls`: `object`\[]; `Id`: `number`; `MappedTrackers`: `object`\[]; `Policy`: `string`; `PolicyType`: `string`; `Rules`: `object`\[]; `Trackers`: `object`\[]; }>, \{ `CallingFunctions`: `object`\[]; `Description`: `string`; `ForeignCalls`: `object`\[]; `Id`: `number`; `MappedTrackers`: `object`\[]; `Policy`: `string`; `PolicyType`: `string`; `Rules`: `object`\[]; `Trackers`: `object`\[]; }, \{ `CallingFunctions`: `object`\[]; `Description`: `string`; `ForeignCalls`: `object`\[]; `Id`: `number`; `MappedTrackers`: `object`\[]; `Policy`: `string`; `PolicyType`: `string`; `Rules`: `object`\[]; `Trackers`: `object`\[]; }>

Defined in: [src/modules/validation.ts:643](https://github.com/Forte-Service-Company-Ltd/forte-rules-engine-sdk/blob/40cc8388cecd8ee445b00b9df2b681cff8552ece/src/modules/validation.ts#L643)
